Vorwort: Nun, das eskalierte schnell. Aber beschlossen, es durchzuziehen. Möge diese Antwort für Sie und andere Leser hilfreich sein.
Code-Hinweis
Während JSLint und JSHint gute Werkzeuge sind, habe ich im Laufe der Jahre gelernt, was mein Freund @ugly_syntax nennt:
kleinerer Gestaltungsraum .
Dies ist ein allgemeines Prinzip, ähnlich wie bei einem "Zen-Mönch", das die Entscheidungen einschränkt, die man treffen muss. Man kann produktiver und kreativer sein.
Daher mein aktueller Lieblings-JS-Codestil ohne Konfiguration:
StandardJS .
UPDATE :
Der Durchfluss hat sich stark verbessert. Damit können Sie Ihrem JS Typen hinzufügen, mit denen Sie viele Fehler vermeiden können. Es kann Ihnen aber auch aus dem Weg gehen, beispielsweise bei der Anbindung von untypisiertem JS. Versuche es!
Schnellstart / TL; DR
Fügen Sie standard
als Abhängigkeit Sie projizieren
npm install --save standard
Dann package.json
fügen Sie den folgenden Testskript:
"scripts": {
"test": "node_modules/.bin/standard && echo put further tests here"
},
Für eine schickere Ausgabe während der Entwicklung npm install --global snazzy
und führen Sie sie stattdessen aus npm test
.
Hinweis: Typprüfung versus Heuristik
Mein Freund, der Designraum erwähnte, bezog sich auf Elm und ich ermutige Sie, diese Sprache auszuprobieren.
Warum? JS ist in der Tat von LISP inspiriert, einer speziellen Sprachklasse, die zufällig untypisiert ist . Sprachen wie Elm oder Purescript sind typisierte funktionale Programmiersprachen.
Geben Sie Ihre Freiheit ein, damit der Compiler Sie überprüfen und anleiten kann, wenn Sie gegen die Sprache oder die Regeln Ihres eigenen Programms verstoßen. unabhängig von der Größe (LOC) Ihres Programms.
Wir haben kürzlich einen Nachwuchskollegen zweimal eine reaktive Schnittstelle implementieren lassen: einmal in Elm, einmal in React; Schauen Sie sich an, um eine Vorstellung davon zu bekommen, wovon ich spreche.
Vergleiche Main.elm
(getippt) ⇔ index.js
(untypisiert, keine Tests)
(ps. beachten Sie, dass der Reaktionscode nicht idiomatisch ist und verbessert werden könnte)
Eine letzte Bemerkung:
die Realität ist , dass JS ist nicht typisiert. Wem soll ich die getippte Programmierung vorschlagen ?
Sehen Sie, mit JS befinden wir uns in einem anderen Bereich: Befreit von Typen können wir leicht Dinge ausdrücken, die schwer oder unmöglich sind, einen richtigen Typ zu geben (was sicherlich ein Vorteil sein kann).
Aber ohne Typen gibt es wenig, um unsere Programme in Schach zu halten, so dass wir gezwungen sind, Tests und (in geringerem Umfang) Codestile einzuführen.
Ich empfehle Ihnen, sich bei LISP (z. B. ClojureScript ) inspirieren zu lassen und in das Testen Ihrer Codes zu investieren. Lesen Sie den Weg des Teilstapels , um sich ein Bild zu machen.
Frieden.
Combine this with the previous 'var' statement
->Do not mix 'require' and other declarations
, paradox.