一直有一个疑惑: Standard JS 这个编码规范是为什么火起来的呢?

2020-12-02 15:03:52 +08:00
 shintendo

我理解的 Standard JS 的理念就是:“为哪种编码风格更好而争吵是浪费时间的,我有一种方案可以解决这种无意义的争吵,那就是大家都听我的。”

楼主自己对编码风格没有很强的偏向,基本上项目是什么风格我就适应什么风格,所以并不是觉得 Standard JS 的内容有什么问题,而是觉得这个理念特别奇怪,有点何不食肉糜的感觉。

假设 Standard JS 项目是这样:针对每一条规则(如分号、tab 、括号换行等),统计 npm 上的所有包,取多数人使用的那一种,那么这个项目最终得出来的编码风格可能很奇怪,可能我不喜欢,但我会觉得这个项目是有意义的,至少是有趣的。但像现在这样的我就不太能理解了,不就是一个新时代的 JSLint 吗?为什么 JSLint 已经扫进了垃圾堆的今天,Standard JS 却能火起来,这背后是否有我不了解的差别呢?

Again,这个贴并不是对 Standard JS 的规则内容不满,而是对它流行的原因不太理解。

4569 次点击
所在节点    JavaScript
23 条回复
libook
2020-12-03 10:38:27 +08:00
因为名字吧,至今还有很多人以为这个是 JS 官方要求的标准。。。

ES 标准是有分号的,引擎分号补全本身就是一种容错机制,TC39 也强调了不写分号的风险,以及未来 ES 要加入的新特性会使得引擎的分号补全机制变得异常难以实现。

从好的方面来说,Standard JS 为有需求的团队提供了一个开箱即用的代码风格方案,你不需要自己研究每一项规则,也不需要配置,由 Standard JS 来保证统一、可用、高效。
从不好的方面来说,Standard JS 推荐了一些有风险的代码风格,这些风格和一些写法搭配会有严重的问题,Standard JS 的做法就是把这些会有问题的搭配写法屏蔽掉,从而做到在 Standard JS 约束下不会发生风险;但有的人写习惯后在没有 Standard JS 约束的场景也会使用这些有风险的代码风格,没有 Standard JS 帮忙做检查,很可能最终写出有严重缺陷的代码。

个人推荐的是 Lint 规则仅限制那些真的会导致问题的写法,这些问题包括逻辑问题、语法问题、可读性问题等,至多可以加入一些团队达成共识的风格规则。

另外,风格中很多部分也可以通过 EditorConfig 机制来解决,主流编辑器、IDE 是支持这个机制的,会自动应用项目下的.editorconfig 文件中的配置内容。

JS 是一种极其灵活的语言,入门很简单,但要想用好需要大量的知识储备和使用经验,TS 、Go 等在这方面难度低很多。
ericgui
2020-12-03 14:04:57 +08:00
所以还是 Java 好
dfzj
2020-12-05 20:34:11 +08:00
什么是 Standard JS?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/731388

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX