You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/03-comments/article.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Commenti
2
2
3
-
Come abbiamo già appreso dal capitolo <info:structure>, i commenti possono essere di una singola-riga: ed iniziano con `//` oppure multilinea: `/* ... */`.
3
+
Come abbiamo già appreso dal capitolo <info:structure>, i commenti possono essere di una singolariga: ed iniziano con `//` oppure multilinea: `/* ... */`.
4
4
5
5
Normalmente li utilizziamo per descrivere come e perché funziona il codice.
6
6
@@ -20,11 +20,11 @@ code;
20
20
21
21
Nel buon codice la quantità di commenti "esplicativi" dovrebbe essere minima. In realtà il codice dovrebbe essere facile da comprendere anche senza.
22
22
23
-
C'è una bellissima regola a riguardo: "Se il codice è cosi poco chiaro da richiedere un commento, probabilmente dovrebbe essere riscritto".
23
+
C'è una bellissima citazione a riguardo: "Se il codice è cosi poco chiaro da richiedere un commento, probabilmente dovrebbe essere riscritto".
24
24
25
25
### Ricetta: raccogliere in una funzione
26
26
27
-
Qualche volta può essere un beneficio rimpiazzare un pezzo di codice in una funzione, come in questo esempio:
27
+
Qualche volta può essere un beneficio rimpiazzare un pezzo di codice con una funzione, come in questo esempio:
28
28
29
29
```js
30
30
functionshowPrimes(n) {
@@ -65,7 +65,7 @@ function isPrime(n) {
65
65
}
66
66
```
67
67
68
-
Ora possiamo capire il codice più facilmente. La funzione stessa diventa un commento. Questo tipo di codice viene definito *self-descriptive* (auto-descrittivo).
68
+
Ora possiamo capire il codice più facilmente. La funzione stessa diventa un commento. Questo tipo di codice viene definito *auto-descrittivo*.
69
69
70
70
### Ricetta: creare funzioni
71
71
@@ -79,7 +79,7 @@ for(let i = 0; i < 10; i++) {
79
79
add(drop, glass);
80
80
}
81
81
82
-
// qui aggiungiamo della spremuta (juice)
82
+
// qui aggiungiamo della spremuta
83
83
for(let t =0; t <3; t++) {
84
84
let tomato =getTomato();
85
85
examine(tomato);
@@ -111,16 +111,16 @@ function addJuice(container) {
111
111
}
112
112
```
113
113
114
-
Ripeto nuovamente, le funzioni stesse dicono cosa andranno a fare. Inoltre la struttura del codice è migliore quando è spezzata. E' chiaro cosa ogni funzione faccia, cosa richiede e cosa eventualmente ritorna.
114
+
Ripeto nuovamente, le funzioni stesse dovrebero dire cosa sta succedendo. Non dovrebbe esserci alcun bisogno di commenti. Inoltre anche l'architettura del codice è migliore quando è spezzata. Rende più chiaro lo scopo di ogni funzione.
115
115
116
-
Nella pratica, non possiamo evitare del tutto i commenti "esplicativi". Ci sono algoritmi molto complesso. E ci sono vari "trucchi" con lo scopo di ottimizzare questo tipo di commenti. In linea di massima dovremmo però cercar di tenere il codice semplice ed auto-descrittivo.
116
+
Nella pratica, non possiamo evitare del tutto i commenti "esplicativi". Ci sono algoritmi molto complessi. E ci sono vari "trucchi" con lo scopo di ottimizzare questo tipo di commenti. In linea di massima dovremmo però cercare di tenere il codice semplice ed auto-descrittivo.
117
117
118
118
## Buoni commenti
119
119
120
120
Quindi, solitamente i commenti esplicativi sono sbagliati. Quali sono allora i commenti giusti?
121
121
122
122
Descrivere l'architettura
123
-
: Fornire un visuale di alto livello dei componenti, come interagiscono, come si comporta il flusso d'esecuzione in certe situazioni... In breve -- gli "occhi d'aquila" del codice. C'è uno speciale linguaggio schematico [UML](http://wikipedia.org/wiki/Unified_Modeling_Language) per schematizzare ad alto livello. Assolutamente da conoscere.
123
+
: Fornire un visuale di alto livello dei componenti, come interagiscono, come si comporta il flusso d'esecuzione in certe situazioni... In breve -- gli "occhi d'aquila" del codice. Esiste uno speciale linguaggio di schematizzazione, [UML](http://wikipedia.org/wiki/Unified_Modeling_Language) per per la descrizione dell'architettura ad alto livello. Da studiare assolutamente.
124
124
125
125
Documentare l'utilizzo di una funzione
126
126
: Esiste una particolare sintassi [JSDoc](http://en.wikipedia.org/wiki/JSDoc) per documentare le funzioni: utilizzo, parametri, valori di ritorno.
@@ -141,7 +141,7 @@ Documentare l'utilizzo di una funzione
141
141
142
142
Questi commenti ci consentono di capire lo scopo della funzione e come utilizzarla correttamente senza guardarne il codice.
143
143
144
-
In ogni caso, molti editor come [WebStorm](https://www.jetbrains.com/webstorm/) li comprendono e possono quindi utilizzarli per autocomplete e alcune verifiche automatiche del codice.
144
+
I molti casi, gli editor come [WebStorm](https://www.jetbrains.com/webstorm/) sono in grado di comprenderli e possono quindi utilizzarli per autocompletamenti e alcune verifiche automatiche del codice.
145
145
146
146
Ci sono anche tool come [JSDoc 3](https://github.com/jsdoc3/jsdoc) che possono generare documentazione in HTML a partire dai commenti. Puoi scoprire di più riguardo JSDoc su <http://usejsdoc.org/>.
147
147
@@ -151,20 +151,20 @@ Perché l'azione viene risolta in quel modo?
151
151
Se ci sono diverse modalità di risolvere una determinata azione, perché si è scelta questa? Specialmente quando non risulta la scelta più ovvia.
152
152
153
153
Senza dei commenti si potrebbero generare le seguenti situazioni:
154
-
1. Tu (o un tuo collega) apre il codice un pò di tempo dopo, lo guarda e pensa che il codice è "poco ottimale".
155
-
2. Voi stessi potreste pensare: "Quanto stupido sono stato qui, e quanto intelligente sono adesso", e riscriverla utilizzando "la più ovvia e corretta" variante.
156
-
3. ...Lo stimolo di riscriverla sarebbe corretto. Ma quando l'avete scritta vi siete resi conto che la soluzione "più ovvia" era effettivamente peggiore. Andando a rileggerla potreste non ricordarvi neanche perché. Quindi dopo averla riscritta vi rendete conto che è meglio tornare indietro, avete sprecato tempo.
154
+
1. Tu (o un tuo collega) apri il codice un po' di tempo dopo, lo guardi e pensi che il codice è "poco ottimizzato".
155
+
2. Tu stesso potresti pensare: "Quanto stupido sono stato qui, e quanto intelligente sono adesso", e riscriverla utilizzando la variante "più ovvia e corretta".
156
+
3. ...Lo stimolo di riscriverla sarebbe forte. Ma quando l'hai scritta ti eri reso conto che la soluzione "più ovvia" era effettivamente peggiore. Andando a rileggerla potresti non ricordarti neanche perché. Quindi dopo averla riscritta ti rendi conto che è meglio tornare indietro, hai sprecato tempo.
157
157
158
158
Commenti che spiegano la soluzione sono fondamentali. Vi aiutano a sviluppare mantenendo sempre la strada corretta.
159
159
160
160
Ci sono alcune piccolezze? Dove vengono utilizzate?
161
-
: Se il codice contiene sottigliezze contro-intuitive, vale certamente la pena commentarle.
161
+
: Se il codice contiene sottigliezze controintuitive, vale certamente la pena commentarle.
162
162
163
163
## Riepilogo
164
164
165
-
Un importante valore che possiede un bravo sviluppatore sono i commenti: la loro presenza o assenza.
165
+
Un importante qualità che deve possedere un bravo sviluppatore, è quella di saper scrivere dei buoni commenti.
166
166
167
-
I buoni commenti ci consentono di mantenere bene il codice, di poterci tornare dopo un pò di tempo e capire le scelte prese.
167
+
I buoni commenti ci consentono di mantenere il codice in uno stato ottimale, e di poterci tornare dopo un po' di tempo e capire le scelte prese.
0 commit comments