前言:嗯,升级很快。但决定挺过去。希望这个答案对您和其他读者有所帮助。

代码提示
虽然 JSLint 和 JSHint 是很好用的工具,但多年来我开始欣赏我的朋友@ugly_syntax所说的:
更小的设计空间。
这是一个普遍的原则,就像一个“禅僧”,限制一个人必须做出的选择,一个人可以更有生产力和创造力。
因此我目前最喜欢的零配置 JS 代码风格:
标准JS。
更新:
流量进步了很多。有了它,您可以将类型添加到您的 JS 中,这将帮助您防止很多错误。但它也可以不妨碍您,例如在连接无类型 JS 时。试试看!
快速入门/TL;DR
添加standard
为项目的依赖项
npm install --save standard
然后在 中package.json
,添加以下测试脚本:
"scripts": {
"test": "node_modules/.bin/standard && echo put further tests here"
},
在开发时获得更时髦的输出,npm install --global snazzy
并运行它而不是npm test
.
注意:类型检查与启发式
我的朋友在提到设计空间时提到了Elm,我鼓励你尝试一下这种语言。
为什么?JS 实际上是受到 LISP 的启发,LISP 是一类特殊的语言,恰好是无类型的。Elm 或Purescript等语言是类型化的函数式编程语言。
键入限制您的自由,以便编译器能够在您最终违反语言或您自己的程序规则时检查和指导您;无论您的程序的大小(LOC)如何。
我们最近让一位初级同事实现了两次响应式接口:一次在 Elm 中,一次在 React 中;看看我在说什么。
比较Main.elm
(输入)⇔ index.js
(未输入,无测试)
(ps。请注意,React 代码不是惯用的,可以改进)
最后一句话,
现实情况是 JS是无类型的。我向谁推荐类型化编程?
看,使用 JS,我们处于不同的领域:从类型中解放出来,我们可以轻松地表达难以或不可能给出正确类型的事物(这当然是一个优势)。
但是没有类型,我们的程序就没有什么可以检查的了,所以我们不得不引入测试和(在较小的范围内)代码样式。
我建议您查看 LISP(例如ClojureScript)以获得灵感并投资于测试您的代码。阅读子堆栈的方式以获得一个想法。
和平。