前言:嗯,那很快就升级了。但是决定要坚持下去。希望这个答案对您和其他读者有帮助。
代码提示
尽管JSLint和JSHint是很好的工具,但多年来,我逐渐欣赏了我的朋友@ugly_syntax所说的:
设计空间较小。
这是一个总的原则,很像“和尚”,它限制了人们必须做出的选择,可以提高生产力和创造力。
因此,我目前最喜欢的零配置JS代码样式:
StandardJS。
更新:
流量改善了很多。有了它,您可以使用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
(未输入,无测试)
(请注意,React代码不是惯用的,可以改进)
最后一句话,
现实是JS 是无类型的。我应该向谁建议打字编程?
看到,使用JS,我们处在不同的领域:从类型中解放出来,我们可以轻松地表达很难或不可能赋予适当类型的东西(这当然是一个优势)。
但是,如果没有类型,几乎没有什么可以检查我们的程序,因此我们被迫引入测试和(较小程度地扩展)代码样式。
我建议您看一下LISP(例如ClojureScript)以获取启发,并投资测试代码。阅读子堆栈的方法以获取想法。
和平。
Combine this with the previous 'var' statement
->Do not mix 'require' and other declarations
,自相矛盾。