Premessa: beh, si è intensificato rapidamente. Ma ho deciso di farcela. Possa questa risposta essere utile a te e agli altri lettori.
Suggerimenti sul codice
Mentre JSLint e JSHint sono buoni strumenti da usare, nel corso degli anni ho imparato ad apprezzare ciò che il mio amico @ugly_syntax chiama:
spazio di design più piccolo .
Questo è un principio generale, molto simile a un "monaco zen", che limita le scelte che si devono fare, si può essere più produttivi e creativi.
Pertanto, il mio attuale stile di codice JS preferito a zero config:
StandardJS .
AGGIORNAMENTO :
Il flusso è migliorato molto. Con esso, puoi aggiungere tipi al tuo JS con ti aiuterà a prevenire molti bug. Ma può anche stare lontano dalla tua strada, ad esempio quando si interfaccia JS non tipizzato. Provaci!
Avvio rapido / TL; DR
Aggiungi standard
come dipendenza al tuo progetto
npm install --save standard
Quindi package.json
, aggiungi il seguente script di prova:
"scripts": {
"test": "node_modules/.bin/standard && echo put further tests here"
},
Per output più snazzi durante lo sviluppo npm install --global snazzy
ed eseguirlo invece di npm test
.
Nota: verifica del tipo rispetto all'euristica
Amico mio quando menziono lo spazio di design riferito a Elm e ti incoraggio a provare quella lingua.
Perché? JS è infatti ispirato a LISP, che è una classe speciale di lingue, che sembra essere tipizzata . Linguaggi come Elm o Purescript sono linguaggi di programmazione funzionali digitati .
Digita restringi la tua libertà affinché il compilatore sia in grado di controllarti e guidarti quando finisci per violare la lingua o le regole del tuo programma; indipendentemente dalle dimensioni (LOC) del programma.
Recentemente abbiamo avuto un collega junior implementare due volte un'interfaccia reattiva: una volta a Elm, una volta a React; dai un'occhiata per avere un'idea di cosa sto parlando.
Confronta Main.elm
(digitato) ⇔ index.js
(non tipizzato, nessun test)
(ps. nota che il codice React non è idiomatico e potrebbe essere migliorato)
Un'ultima osservazione,
la realtà è che JS non è tipizzato. Chi sono io per suggerirti una programmazione tipizzata ?
Vedi, con JS siamo in un dominio diverso: liberati dai tipi, possiamo facilmente esprimere cose che sono difficili o impossibili da dare un tipo adeguato (che può certamente essere un vantaggio).
Ma senza i tipi c'è poco da tenere sotto controllo i nostri programmi, quindi siamo costretti a introdurre test e (in misura minore) stili di codice.
Ti consiglio di dare un'occhiata a LISP (ad es. ClojureScript ) come fonte di ispirazione e di investire nel test dei tuoi codici. Leggi Il modo del sottoinsieme per avere un'idea.
Pace.
Combine this with the previous 'var' statement
->Do not mix 'require' and other declarations
, paradosso.