En aquest tema, aprendrem com organitzar el codi de manera eficient i com documentar-lo adequadament per facilitar el manteniment i la col·laboració en projectes de programació. La bona organització del codi i una documentació clara són essencials per a qualsevol desenvolupador, ja que milloren la llegibilitat, la reutilització i la facilitat de depuració del codi.
- Importància de l'Organització del Codi
1.1. Beneficis de l'Organització del Codi
- Millora la llegibilitat: Un codi ben organitzat és més fàcil de llegir i entendre.
- Facilita el manteniment: Permet identificar i corregir errors més ràpidament.
- Fomenta la reutilització: Codi ben estructurat pot ser reutilitzat en altres projectes.
- Facilita la col·laboració: Altres desenvolupadors poden entendre i treballar amb el teu codi més fàcilment.
1.2. Principis de l'Organització del Codi
- Modularitat: Divideix el codi en mòduls o unitats lògiques.
- Consistència: Utilitza convencions de nomenclatura i estil de codi consistents.
- Simplicitat: Mantén el codi tan simple com sigui possible.
- Documentació: Afegeix comentaris i documentació per explicar el codi.
- Estructura de Projectes en Delphi
2.1. Estructura de Carpetes
Organitzar les carpetes del projecte de manera lògica ajuda a mantenir el codi net i accessible.
MyDelphiProject/
├── src/
│ ├── main.pas
│ ├── utils.pas
│ └── forms/
│ ├── mainform.pas
│ └── settingsform.pas
├── docs/
│ ├── README.md
│ └── API_Documentation.md
├── tests/
│ ├── test_main.pas
│ └── test_utils.pas
└── assets/
├── images/
└── styles/2.2. Nomenclatura de Fitxers i Unitats
- Fitxers de codi: Utilitza noms descriptius i consistents per als fitxers de codi (e.g.,
main.pas,utils.pas). - Unitats: Les unitats han de tenir noms que reflecteixin la seva funcionalitat (e.g.,
TMainForm,TSettingsForm).
- Convencions de Nomenclatura
3.1. Variables i Constants
- Variables locals:
varName - Variables globals:
gVarName - Constants:
CONST_NAME
3.2. Funcions i Procediments
- Funcions:
FunctionName - Procediments:
ProcedureName
3.3. Classes i Objectes
- Classes:
TClassName - Objectes:
ObjectName
- Documentació del Codi
4.1. Comentaris en el Codi
- Comentaris de línia: Utilitza comentaris de línia per explicar línies específiques de codi.
// Aquest és un comentari de línia x := x + 1; // Incrementa x en 1 - Comentaris de bloc: Utilitza comentaris de bloc per explicar seccions més grans de codi.
{ Aquest és un comentari de bloc. Pot ocupar múltiples línies. }
4.2. Documentació de Funcions i Procediments
- Descripció: Proporciona una descripció clara del que fa la funció o procediment.
- Paràmetres: Explica els paràmetres d'entrada.
- Valor de retorn: Descriu el valor de retorn (si n'hi ha).
Exemple:
{
Funció que calcula la suma de dos enters.
@param a Primer enter.
@param b Segon enter.
@return La suma de a i b.
}
function Sum(a, b: Integer): Integer;
begin
Result := a + b;
end;4.3. Documentació de Classes
- Descripció de la classe: Proporciona una descripció general de la classe.
- Descripció dels mètodes: Documenta cada mètode de la classe.
Exemple:
{
Classe que representa un punt en un pla 2D.
}
TPoint = class
private
FX: Integer;
FY: Integer;
public
{
Constructor que inicialitza el punt amb coordenades donades.
@param X Coordenada X.
@param Y Coordenada Y.
}
constructor Create(X, Y: Integer);
{
Mètode que mou el punt a una nova posició.
@param NewX Nova coordenada X.
@param NewY Nova coordenada Y.
}
procedure MoveTo(NewX, NewY: Integer);
end;
- Eines de Documentació
5.1. Doxygen
Doxygen és una eina popular per generar documentació a partir de comentaris en el codi.
5.2. PasDoc
PasDoc és una eina específica per a Delphi/Object Pascal que genera documentació a partir de comentaris en el codi.
Exercicis Pràctics
Exercici 1: Organització de Projecte
- Crea una estructura de carpetes per a un projecte Delphi seguint les bones pràctiques descrites.
- Organitza els fitxers de codi en les carpetes adequades.
Exercici 2: Documentació de Funcions
- Escriu una funció que calculi el factorial d'un nombre enter.
- Afegeix comentaris i documentació a la funció seguint les convencions descrites.
Solucions
Solució Exercici 1
MyDelphiProject/
├── src/
│ ├── main.pas
│ ├── utils.pas
│ └── forms/
│ ├── mainform.pas
│ └── settingsform.pas
├── docs/
│ ├── README.md
│ └── API_Documentation.md
├── tests/
│ ├── test_main.pas
│ └── test_utils.pas
└── assets/
├── images/
└── styles/Solució Exercici 2
{
Funció que calcula el factorial d'un nombre enter.
@param n Nombre enter del qual es vol calcular el factorial.
@return El factorial de n.
}
function Factorial(n: Integer): Integer;
var
i, result: Integer;
begin
result := 1;
for i := 1 to n do
result := result * i;
Result := result;
end;Conclusió
En aquesta secció, hem après la importància de l'organització del codi i la documentació en Delphi/Object Pascal. Hem vist com estructurar projectes, utilitzar convencions de nomenclatura i documentar el codi de manera efectiva. Aquests coneixements són fonamentals per a qualsevol desenvolupador que vulgui escriure codi net, llegible i fàcil de mantenir. En la propera secció, explorarem els patrons de disseny en Delphi.
Curs de Programació Delphi/Object Pascal
Mòdul 1: Introducció a Delphi/Object Pascal
- Introducció a Delphi i Object Pascal
- Configuració de l'Entorn de Desenvolupament
- Primera Aplicació Delphi
- Sintaxi i Estructura Bàsiques
- Variables i Tipus de Dades
Mòdul 2: Estructures de Control i Procediments
- Declaracions Condicionals
- Bucles i Iteració
- Procediments i Funcions
- Abast i Durada de les Variables
- Gestió d'Errors i Depuració
Mòdul 3: Treballant amb Dades
- Arrays i Cadenes
- Registres i Conjunts
- Tipus Enumerats i Subrang
- Gestió d'Arxius
- Accés a Bases de Dades
Mòdul 4: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Herència i Polimorfisme
- Interfícies i Classes Abstractes
- Gestió d'Excepcions en POO
Mòdul 5: Funcions Avançades de Delphi
- Generics i Col·leccions
- Multifil i Programació Paral·lela
- Desenvolupament Basat en Components
- Biblioteca d'Execució de Delphi (RTL)
- Tècniques Avançades de Depuració
Mòdul 6: Desenvolupament d'Interfícies Gràfiques amb VCL i FMX
- Introducció a VCL
- Creació de Formularis i Controls
- Programació Basada en Esdeveniments
- Introducció a FireMonkey (FMX)
- Desenvolupament Multiplataforma amb FMX
Mòdul 7: Desenvolupament Web i Mòbil
- Desenvolupament Web amb Delphi
- Serveis RESTful
- Desenvolupament Mòbil amb Delphi
- Desplegament d'Aplicacions Mòbils
- Integració amb Serveis Web
Mòdul 8: Millors Pràctiques i Patrons de Disseny
- Organització del Codi i Documentació
- Patrons de Disseny en Delphi
- Tècniques de Refactorització
- Proves Unitàries i Desenvolupament Basat en Proves
- Optimització del Rendiment
