我为什么使用 JavaScript Standard Style(JavaScript 标准编码风格),而且你应该使用

10年服务1亿Tian开发工程师

让我们看一看 @feross 的 ,这是一个流行的 JavaScript 风格指南。它可以帮助你减少团队之间的摩擦,增加程序员的幸福感。

这是 ,可以使 JavaScript 代码更加一致 ,并且可以防止类似于 tabs缩进 和 空格缩进优缺点这一类无聊的话题讨论。你可以采用多种风格之一,并且与其他 (如 , 和 )是同一种类型的 JavaScript 检测器。

如果你还不知道什么是linter (检查工具),或者为什么需要,请查看我们对 JavaScript 检查(Linting)工具的比较

风格的重要性

如果你已经从事编码工作有一段时间了的话,那你肯定会有一种自己喜欢的风格。当你成百上千次以特定的模式编写代码时,你会发现你的编码方式是令人愉悦的。突然间来了个人,开始把挂在行尾的大括号单起一行。你可能会发牢骚。深呼吸冷静思考一下,你放置括号的位置 或 关键字后加空格 不会让你的程序更加正确,这只是个人喜好。

每种本赛季语言都有一种主流编码风格,比如像 Python,官方提供的 被认为是编写程序的正确方式。那么你是否还会继续讨厌缩进用4个空格的人呢?(注:Python 官方提供的风格指南,建议使用4个空格缩进)。

用主流风格进行编码将有助于你的程序更能适应语言的生态环境。您还会发现,如果您熟悉该语言的主流编码风格,并且一开始就同意这种编码风格,那么您可以更容易地为开源项目贡献代码,同样也更容易让其他人来为你的开源项目贡献代码。

JavaScript 没有官方的编码风格指南,或许 Douglas Crockford 的 是一个实际上的标准。他的书(注:《JavaScript 语言精粹》)提供了一种编写可靠的方法来 JavaScript 程序,他强调了我们应该积极避免的某些特性。他发布了 JSLint 来支持这些观点,而其他的检查工具也紧随其后。大多数的检查工具是高度可配置的,让你选择最适合你自己的风格,并将其强加于别人或团队!JavaScript Standard Style(注:这个项目名,所以没翻译,意思为 JavaScript 标准编码风格) 则不同。你最喜欢的编码风格无关紧要,重要的是,任何选择都可以让每个人理解和合作。

采用 standard 编码风格意味着 代码清晰性和社区约定的重要性要高于个人的编码风格。这不一定适用于所有项目和开发文化,但是开放项目源码对于新手来说可能非常不适应。建立清晰的、自动的编码风格,满足贡献者期望可以使项目发展更健康。

如果你正在为自己编写一个程序,没有其他人需要为你做贡献,那就使用那些让你最快乐的工具和编码风格。当你在一个团队中工作时,你应该尽量减少摩擦,保持专业,不要因为小事而浪费太多的时间。

在介绍自己的风格之前,花点时间学习现有代码库的风格。

JavaScript Standard Style (JavaScript 标准编码风格)

  • 使用两个空格 – 进行缩进
  • 字符串使用单引号 – 需要转义的地方除外
  • 不再有冗余的变量 – 这是导致 大量 bug 的源头!
  • 无分号 – 这里有3篇文章说明不用分号的好处:
  • 行首不要以 (, [, or ` 开头
  • 这是省略分号时唯一会造成问题的地方 – 工具里已加了自动检测!
  • [详情][4]
  • 关键字后加空格 if (condition) { ... }
  • 函数名后加空格 function name (arg) { ... }
  • 坚持使用全等 === 摒弃 == 一但在需要检查 null || undefined 时可以使用 obj == null
  • 一定要处理 Node.js 中错误回调传递进来的 err 参数。
  • 使用浏览器全局变量时加上 window 前缀 – documentnavigator 除外
  • 避免无意中使用到了这些命名看上去很普通的全局变量, open, length,
    event 还有 name
  • 请参阅

最有争议的规则无疑是不用分号。多年来人们一直认为,始终使用分号是避免错误的最佳实践,Crockford 做了很多工作来促进这一点,使用封号有很深的根源,在 C 语言里,分号是严格要求的,否则程序不会运行。

JavaScript Standard Style(JavaScript 标准编码风格) 改变了我的想法,不用分号的 JavaScript 非常好。

分号自动插入是 JavaScript 的一个特性,它可以减少噪点、简化程序,我从来没有遇到过由于缺少分号而导致的bug,我也不相信你会遇到。查看 以了解更多。

并不是所有人都同意,forks 和 有点唱反调,强调使用分号。我发现这些 forks 有点伤感,因为它们错过忽略了整个标准的要点。

如果我不同意某条规则,可以改吗?

不行。制定这套 standard 规范的目的就是让大家都不必再花时间浪费在无谓的代码风格之争上面了。关于缩进该用制表符还是空格这个问题已经争论了很久了,永远也没有答案。争论这个都可以把需求提前写完了。遵循 standard 规范,你就不用再犹豫了,毕竟不管怎样争论总归会选择一种风格的。希望大家也能在个人语义和普适价值上做一个权衡。

就我个人而言,我已经开始喜欢不使用分号的编码风格了,也许是因为需要编写 Ruby、Python 和 CoffeeScript 的缘故,这些都不使用分号的语法。无论什么原因,当看不到分号的时候,我发现程序更清晰了。

良好的程序层次结构

程序员应该重视:

  1. 正确性
  2. 可读性
  3. 幸福感
  4. 高效率

事实证明,采用 JavaScript Standard Style(JavaScript 标准编码风格),对以上每一条都有好处。

正确性

在所有程序中使用的任何东西,都必须做你想要的,并且没有错误。

编码风格并不会使程序更正确,但是在发布之前,检查工具可以帮你捕获一些错误。

可读性

作为一个专业的开发人员,除了提供一份能正常运行的程序代码之外,代码的可读性是最重要的。阅读和尝试理解程序比编写代码要花费更多的精力和时间,因此请为未来的自己和维护代码的其他人进行可读性优化。

清晰可预测的风格使代码更容易阅读和理解。

程序员的幸福感

我喜欢 JavaScript Standard Style(JavaScript 标准编码风格) 的原因之一是,它把重点放在人而不是机器上。程序员的幸福感在这个列表中排名第三的唯一原因是团队合作中更需要可读性,功能代码的正确性应该放在我们自己的幸福感之前,这是毋庸置疑的。

你想享受生活,不是吗?如果你很快就能完成工作,而且你的工作又有趣,那不就是我们想要的享受生活吗?这在一定程度上就是我们生活的目的。你的生活会更加美好。

– Yukihiro Matsumoto (愚人呢码头注:松本行弘是一位日本计算机科学家和程序员。他是Ruby程序设计语言的主要设计者和实现者。)

人生苦短,不能因个人偏好的不同而引起意见分歧,设定一个标准并后续推进不是更好吗?如果一个标准的编码风格能够避免团队之间的分歧和摩擦,那么你就会更快乐。

高效率

列在最后,但并非最不重要。

如果你必须在这些要点上进行权衡,那么你应该更加重视代码正确性、可读性,并且使程序员对快速编写代码感到愉悦。

计算机处理速度很快。如果程序高效,那就没事了。如果您发现性能不佳,请花时间寻找性能瓶颈并使代码更高效。

人类处理问题的速度相对来说很慢。让事情变得更有效率对我们来说更有价值。采用一种标准编码风格的清晰性使您的代码能够更快地理解并贡献代码。花在分歧上的时间也少了很多,这是最受欢迎的。

实施 JavaScript Standard Style(JavaScript 标准编码风格)

你可以不用任何工具就可以采用这个标准,只要通读一下 就可以,特别注意哪些和你以前习惯不同的规则。尝试一个星期,看看你是否喜欢。如果你不是特别反感,那就用它吧!

还有一个 npm 包,用于检查你的JavaScript代码。

npm install standard --global

通过这个检测器,运行 standard 将执行目录中的所有 JavaScript 文件。

此外,还有所有常见的 ,这里是如何在 Atom 中安装检测器。

apm install linter
apm install linter-js-standard

就我个人而言,当你正在输入代码的时候,自动打印风格警告提示会让你分心。如果你有同样的感觉,在你完成工作后,再来检查会更好。JavaScript 标准编码风格 命令也有一个自动修复某些风格错误的 flag,这可能会节省一些时间。

standard --fix

采用 JavaScript Standard Style(JavaScript 标准编码风格)

你应该采用 JavaScript Standard Style(JavaScript 标准编码风格) 吗?那么这完全取决于你。

如果你没有合适的风格指南,那就准备好面对分歧和冲突吧。

如果你已经完善了一套理想的规则,并希望在整个代码库中执行它,那么 ESLint 可能就是你最好的选择。

如果你不想浪费时间在无聊的语法细节上,那就请用JavaScript Standard Style(JavaScript 标准编码风格) 吧,欢迎评论说出你的想法。

原文链接:

赞(0) 打赏
未经允许不得转载:WEBTian开发 » 我为什么使用 JavaScript Standard Style(JavaScript 标准编码风格),而且你应该使用

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    立即执行函数不是应该用分号吗

    pp2年前 (2017-07-03)回复
  2. #-48

    感觉这篇文章就是在说我正在吃屎
    可能你觉得吃屎不好 但是为了我们不要把时间浪费在无意义的争吵上
    你必须要和我一起吃

    Jemair2年前 (2017-07-04)回复
    • 编码风格就是一个人的习惯,我以前也是非常看不习惯一些人家的风格,比如没封号。这篇文章也只是建议,包括 JavaScript Standard Style 这个项目也是建议,没必要真的这么动粗,嘿嘿。

      2年前 (2017-07-05)回复
      • 没有 可能我用的词的太激烈了一点 不过我觉得这样说比较能表明我的立场
        没必要强制所有人都使用完全一样的编码风格 只要在团队内有一个大家都能接受的标准即可
        尤其是在现在Tian自动化工具已经那么成熟 改变编码风格其实也就是一行命令的事情

        Jemair2年前 (2017-07-12)回复

Tian开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏