Un argomento spesso sottovalutato nello sviluppo di codice è quello delle “Naming Conventions” o “Convenzioni di Denominazione” cioè il modo di denominare classi, proprietà, variabili e tutto cioè che può essere presente nel codice di un software.
Si tratta di convenzioni e non di regole e hanno uno scopo ben preciso e cioè
- Dare al codice un aspetto coerente in modo che chi legge possa concentrarsi sul contenuto, non sul layout.
- Dare a chi legge la possibilità di comprendere il codice più rapidamente, formulando presupposti basati sulle esperienze precedenti.
- Facilitare la copia, la modifica e la gestione del codice.
I modi in cui ogni identificatore può essere chiamato sono fondamentalmente i seguenti :
UPPER CASE in cui tutti i caratteri sono scritti in maiuscolo (ad esempio: LARGHEZZA, DURATA, TEST )
Pascal Case (o UpperCamelCase ) in cui il primo carattere di ogni parola deve essere maiuscolo (ad esempio: BackgroundColor )
camel Case in cui il primo carattere di ogni parola deve essere minuscolo (ad esempio: fontColor )
Underscore Prefix in cui si aggiunge il prefisso ( _ ) alla parola e successivamente si usa la terminologia camelCase (ad esempio _variabileIntera)
Vediamo ora quali sono le convenzioni usate
Campi Privati | Underscore Prefix | _costoUnitario |
Campi Pubblici | Pascal Case | PrezzoTotale |
Campi Protected | Pascal Case | TotaleIva |
Campi Internal | Pascal Case | TotaleSenzaIva |
Variabili locali | Camel Case | userName |
Classi | Pascal Case | SiteConfiguration |
Tipi enumerati | Pascal Case | MyColors |
Interfacce | Pascal Case | IDisposable |
Metodi | Pascal Case | ToString |
Namespace | Pascal Case | System.Linq |
Parametri | Camel Case | typeName |
Propietà | Pascal Case | FontColor |
Costanti | Upper Case | LUNGHEZZA |
Oltre a queste convenzioni di sono delle regole non scritte che vengono utilizzate come buone norme di programmazione.
- scegliere i nomi degli identificatori facilmente leggibili :
Ad esempio variabili di nome pippo o pluto sono sicuramente da evitare al contrario totaleCosti, altezzaFinestra, profonditaInBit sono più indicate - privilegiare la leggibilità alla brevità
Anche se a volte può sembrare più comodo avere nomi corti per indicare variabili o campi o classi si deve sempre ragionare in termini di laggibilità per cui ad esempiopublic string GetPosts(string postId { int numberOfPost = 0; }
è molto più leggibile di
public string GetPosts(string postId { int n = 0; }
-
Utilizzare delle abbreviazioni particolari come prefisso quando si devono indicare dei controlli standard:
Ad esempio per indicare il pulsante (button) di invio di una maschera si può usare btnInvioDatiAbbreviazione Controllo btn Button cb CheckBox cbl CheckBoxList ddl DropDownList fu FileUpload hdn HiddenField hlk Hyperlink img Image lbl Label lbtn LinkButton mv MultiView pnl Panel txt TextBox dtg DataGrid imb ImageButton lst ListBox dtl DataList rep Repeater rdo RadioButton rdl RadioButtonList phd Placeholder tbl Table gv GridView dtv DetailView fv FormView Today we learned coding standard na
Sono laureato in Ingegneria Informatica presso l’Univertità degli Studi di Lecce (2008).
Attualmente mi occupo di Sviluppo C#.Net / Mono in ambiente Linux
Sviluppo da anni applicativi ANSI C per terminali POS basati su processori ARM Risc 32Bit con 2-4 MB di Ram.