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/02-coding-style/article.md
+52-34Lines changed: 52 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Il codice dovrebbe essere il più pulito e leggibile possibile.
4
4
5
-
Questa è l'arte della programmazione -- programmare funzionalità complesse che siano allo stesso tempo correte e leggibili. Un corretto stile di programmazione aiuta molto in questo senso.
5
+
La programmazione è come un arte -- dobbiamo essere in grado di programmare funzionalità complesse che siano allo stesso tempo correte e leggibili. Un corretto stile di programmazione aiuta molto in questo senso.
6
6
7
7
## Sintassi
8
8
@@ -42,7 +42,7 @@ Niente di quello che stiamo dicendo è scolpito sulla pietra. Sono solo delle pr
42
42
43
43
### Parentesi graffe
44
44
45
-
In molti progetti JavaScript le parentesi graffe sono scritte con lo stile "Egiziano" con la parentesi aperta nella stessa linea della keyword -- non in una nuova linea. Dovrebbe comunque esserci spazio prima della parentesi aperta, come in questo esempio:
45
+
In molti progetti JavaScript le parentesi graffe sono scritte seguendo lo stile "Egiziano" con la parentesi aperta nella stessa linea della keyword -- non in una nuova linea. Dovrebbe comunque esserci spazio prima della parentesi aperta, come in questo esempio:
46
46
47
47
```js
48
48
if (condition) {
@@ -56,35 +56,53 @@ Un caso limite è un costrutto con una singola linea. Dovremmo comunque usare le
56
56
57
57
Qui ci sono un paio di varianti, cosi potete giudicare voi stessi:
58
58
59
-
1. 😠 Beginners sometimes do that. Bad! Curly braces are not needed:
59
+
1. 😠 I principianti spesso fanno questo. Sbagliato! Le parentesi graffe nono sono richieste:
60
60
```js
61
61
if (n <0) *!*{*/!*alert(`Power ${n} is not supported`);*!*}*/!*
62
62
```
63
-
2. 😠 Split to a separate line without braces. Never do that, easy to make an error when adding new lines:
63
+
2. 😠 Inserire l'istruzione su nuova riga senza parentesi. Non dovreste mai farlo, poiché rende molto semplice commettere errori nel caso si volesse aggiungere un'altra istruzione:
64
64
```js
65
65
if (n <0)
66
66
alert(`Power ${n} is not supported`);
67
67
```
68
-
3. 😏 One line without braces - acceptable, if it's short:
68
+
3. 😏 In una singola riga senza parantesi -- accettabile, se l'istruzione è semplice:
69
69
```js
70
70
if (n <0) alert(`Power ${n} is not supported`);
71
71
```
72
-
4. 😃 The best variant:
72
+
4. 😃 La variante migliore:
73
73
```js
74
74
if (n <0) {
75
75
alert(`Power ${n} is not supported`);
76
76
}
77
77
```
78
78
79
-
For a very brief code, one line is allowed, e.g. `if (cond) returnnull`. But a code block (the last variant) is usually more readable.
80
-
81
-
In sintesi:
82
-
- Per codici molto brevi, una sola riga è accettabile. Ad esempio: `if (cond) returnnull`.
83
-
- Ma una singola riga per ogni istruzione è generalmente più facile da leggere.
79
+
Per istruzioni molto brevi, è consentito scrivere su una sola riga, ad esempio `if (cond) returnnull`. Ma un blocco di codice risulta essere molto più leggibile.
84
80
85
81
### Lunghezza della riga
86
82
87
-
Nessuno ama leggere lunghe righe orizzontali di codice. Una buona norma è dividere le righe più lunghe in qualcosa di più breve.
83
+
Nessuno ama leggere lunghe righe orizzontali di codice. Una buona norma è quella di dividere le righe più lunghe in righe più brevi.
84
+
85
+
Ad esempio:
86
+
```js
87
+
// i backtick consentono di dividere la stinga in più righe
88
+
let str =`
89
+
ECMA International's TC39 is a group of JavaScript developers,
90
+
implementers, academics, and more, collaborating with the community
91
+
to maintain and evolve the definition of JavaScript.
92
+
`;
93
+
```
94
+
95
+
Invece, per le istruzioni `if`:
96
+
97
+
```js
98
+
if (
99
+
id ===123&&
100
+
moonPhase ==='Waning Gibbous'&&
101
+
zodiacSign ==='Libra'
102
+
) {
103
+
letTheSorceryBegin();
104
+
}
105
+
```
88
106
89
107
La lunghezza massima dovrebbe essere accordata a livello di team. Solitamente tra gli 80-120 caratteri.
90
108
@@ -98,7 +116,7 @@ Ci sono due tipi di indentazione:
98
116
99
117
Un vantaggio degli spazi contro i tabs è che gli spazi permettono configurazioni più flessibili.
100
118
101
-
Ad esempio, possiamo allineare gli argomenti con l'apertura della parentesi, come qui:
119
+
Ad esempio, possiamo allineare gli argomenti con l'apertura della parentesi, come nell'esempio:
102
120
103
121
```js no-beautify
104
122
show(parameters,
@@ -131,15 +149,15 @@ Ci sono due tipi di indentazione:
131
149
132
150
### Punto e virgola
133
151
134
-
Un punto e virgola dovrebbe essere presente alla fine di ogni istruzione, anche se potrebbe essere evitata.
152
+
Il punto e virgola dovrebbe essere presente alla fine di ogni istruzione, anche se non è obbligatorio.
135
153
136
-
Esistono linguaggi in cui il punto e virgola sono realmente opzionali e possono essere evitati. In JavaScript, esistono casi in cui un "a capo" non viene interpretato come un punto e virgola, lasciando quindi il codice vulnerabile agli errori.
154
+
Esistono linguaggi in cui il punto e virgola è realmente opzionale e può essere omesso. In JavaScript, esistono casi in cui un "a capo" non viene interpretato come un punto e virgola, lasciando quindi il codice vulnerabile agli errori.
137
155
138
-
Quando diventerete più maturi come programmatori, potreste scegliere lo stile senza punto e virgola [StandardJS](https://standardjs.com/). Fino a quel momento la miglio scelta è di inserirla alla fine di ogni istruzione per evitare errori.
156
+
Quando diventerete più maturi come programmatori, potreste scegliere lo stile senza punto e virgola [StandardJS](https://standardjs.com/). Fino a quel momento la scelta migliore è quella di inserirlo alla fine di ogni istruzione per evitare errori.
139
157
140
158
### Livelli di annidamento
141
159
142
-
Nel codice vanno evitati elevati liveeli di annidamento.
160
+
Nel codice vanno evitati elevati livelli di annidamento.
143
161
144
162
Qualche volta torna utile la direttiva ["continue"](info:while-for#continue) per evitare annidamenti extra.
145
163
@@ -253,17 +271,17 @@ Se state scrivendo molte funzioni "ausiliarie", ci sono tre modi per organizzarl
253
271
```
254
272
3. Mix: una funzione viene dichiarata nel punto in cui viene utilizzata la prima volta.
255
273
256
-
Nella maggioranza dei casi si preferisce la seconda opzione.
274
+
Nella maggior parte dei casi si preferisce la seconda opzione.
257
275
258
276
Questo perché quando leggiamo il codice vogliamo prima di tutto sapere *cosa fa*. Mettendo prima il codice possiamo fornire queste informazioni. Successivamente, potrebbe non essere necessario leggere le funzioni, soprattutto se i loro nomi sono autodescrittivi.
259
277
260
-
## Guida di stile
278
+
## Style guide
261
279
262
-
Una guida di stile contiene regole generali riguardo a "come scrivere" il codice, ad esempio quali apici utilizzare, di quanti spazi indentare, quando andare a capo, etc. Molti altri dettagli.
280
+
Una style guide contiene regole generali riguardo a "come scrivere" il codice, ad esempio quali apici utilizzare, di quanti spazi indentare, quando andare a capo, e molti altri dettagli.
263
281
264
-
Quando tutti i membri del team utilizzano lo stesso stile tende ad essere uniforme.
282
+
Quando tutti i membri del team utilizzano la stessa guida, il codice tende ad essere più uniforme.
265
283
266
-
Certamente, un team può utilizzare il proprio stile guida. Molte volte non serve. Ci sono molte opzioni tra cui scegliere, quindi scegliere tra una di queste generalmente è la scelta migliore.
284
+
Certamente un team può utilizzare la propria style guide, ma spesso non è necessario definirne una propria. Ce ne sono molte già pronte, scegliere una tra queste è generalmente la scelta migliore.
267
285
268
286
Alcune delle scelte più popolari:
269
287
@@ -275,7 +293,7 @@ Alcune delle scelte più popolari:
275
293
276
294
Se sei un nuovo sviluppatore, inizia con i consigli di questo capitolo. Quando avrai appreso bene lo stile potrai cercare quello che più ti appartiene.
277
295
278
-
## Pulitori automatizzati
296
+
## Linter
279
297
280
298
I linters sono strumenti che controllano automaticamente lo stile del codice e vi danno consigli su come sistemarlo.
281
299
@@ -287,16 +305,16 @@ Alcuni fra i linter più conosciuti:
287
305
- [JSHint](http://www.jshint.com/) -- molte più opzioni di JSLint.
288
306
- [ESLint](http://eslint.org/) -- il più recente.
289
307
290
-
Tutti quelli elencati svolgono molto bene il lavoro. L'autore utilizza [ESLint](http://eslint.org/).
308
+
Tutti quelli elencati svolgono molto bene il lavoro. L'autore della guida utilizza [ESLint](http://eslint.org/).
291
309
292
-
Molti linter sono integrati negli editor più popolari: è sufficiente attivare il plugin e configurare lo stile.
310
+
Molti linter sono integrati negli editor più popolari: è sufficiente attivare il plugin e configurare lo stile desiderato.
293
311
294
-
Ad esempio, per ESLint dovreste seguire quanto segue:
312
+
Ad esempio, per poter utilizzare ESLint è sufficiente:
295
313
296
-
1. Installare [Node.js](https://nodejs.org/).
297
-
2. Installare ESLint con il comando `npm install -g eslint` (npm è package installer di JavaScript).
298
-
3. Create un file di configurazione e rinominatelo`.eslintrc` nella root del vostro progetto JavaScript (la cartella che contiene tutti i file).
299
-
4. Installa/abilita il plugin per il tuo editor per integrare ESLint. La maggior parte degli editor ne ha uno.
314
+
1. Installa [Node.js](https://nodejs.org/).
315
+
2. Installa ESLint con il comando `npm install -g eslint` (npm è un package manager di JavaScript).
316
+
3. Crea un file di configurazione e chiamalo`.eslintrc` nella root del tuo progetto JavaScript (la cartella che contiene tutti i file).
317
+
4. Installa/abilita il plugin per il tuo editor per integrare ESLint. La maggior parte degli editor ne possiede uno.
300
318
301
319
Qui un esempio di di un file `.eslintrc`:
302
320
@@ -317,14 +335,14 @@ Qui un esempio di di un file `.eslintrc`:
317
335
318
336
La direttiva `"extends"` indica che la configurazione è basata sulla lista dei setting "eslint:recommended". Dopodiché potremo specificare il nostro stile personale.
319
337
320
-
E' anche possible scaricare un set di regole dal web ed estenderle a nostro piacimento. Vedi <http://eslint.org/docs/user-guide/getting-started> per maggiori dettagli riguardo l'installazione.
338
+
E' anche possibile scaricare un set di regole dal web ed estenderle a nostro piacimento. Vedi <http://eslint.org/docs/user-guide/getting-started> per maggiori dettagli riguardo l'installazione.
321
339
322
340
Molti IDE hanno dei linter integrati, che sono comodi ma non sono editabili come ESLint.
323
341
324
342
## Riepilogo
325
343
326
-
Tutte le regole sintattiche descritte in questo capitolo (e nei riferimenti dei vari stili di programmazione) aiutano ad incrementare la leggibilità del codice, ma sono tutti contestabili.
344
+
Tutte le regole sintattiche descritte in questo capitolo (e nei riferimenti delle style guides) aiutano ad incrementare la leggibilità del codice, ma sono tutte contestabili.
327
345
328
-
Quando stiamo pensando a come scrivere codice "migliore", la domanda dovrebbe essere "Cosa rende il codice più leggibile e facile da capire?" e "Cosa può aiutarmi ad evitare gli errori?". Queste sono le principali cose da tenere a mente quando stiamo cercando di scegliere uno stile guida.
346
+
Quando stiamo pensando a come scrivere codice "migliore", la domanda dovrebbe essere "Cosa rende il codice più leggibile e facile da capire?" e "Cosa può aiutarmi ad evitare gli errori?". Queste sono le principali cose da tenere a mente quando stiamo cercando di scegliere una style guide.
329
347
330
-
Leggere fra gli stili più popolari vi consentirà di tenervi aggiornati con le ultime idee riguardo gli stili di programmazione e le best practices.
348
+
Conoscere gli stili più popolari vi consentirà di tenervi aggiornati con le ultime idee riguardo gli stili di programmazione e le best practices.
0 commit comments