风格的重要性
如果你已经从事编码工作有一段时间了的话,那你肯定会有一种自己喜欢的风格。当你成百上千次以特定的模式编写代码时,你会发现你的编码方式是令人愉悦的。突然间来了个人,开始把挂在行尾的大括号单起一行。你可能会发牢骚。深呼吸冷静思考一下,你放置括号的位置 或 关键字后加空格 不会让你的程序更加正确,这只是个人喜好。
JavaScript 没有官方的编码风格指南
采用 standard 编码风格意味着 代码清晰性和社区约定的重要性要高于个人的编码风格。这不一定适用于所有项目和开发文化,但是开放项目源码对于新手来说可能非常不适应。建立清晰的、自动的编码风格,满足贡献者期望可以使项目发展更健康。
如果你正在为自己编写一个程序,没有其他人需要为你做贡献,那就使用那些让你最快乐的工具和编码风格。当你在一个团队中工作时,你应该尽量减少摩擦,保持专业,不要因为小事而浪费太多的时间。
在介绍自己的风格之前,花点时间学习现有代码库的风格。
JavaScript Standard Style (JavaScript 标准编码风格)
- 使用两个空格 – 进行缩进
- 字符串使用单引号 – 需要转义的地方除外
- 不再有冗余的变量 – 这是导致 大量 bug 的源头!
- 无分号 – 这里有3篇文章说明不用分号的好处:文章1 文章2 文章3
- 行首不要以
(
,[
, or`
开头 - 这是省略分号时唯一会造成问题的地方 – 工具里已加了自动检测!
- [详情][4]
- 关键字后加空格
if (condition) { ... }
- 函数名后加空格
function name (arg) { ... }
- 坚持使用全等
===
摒弃==
一但在需要检查null || undefined
时可以使用obj == null
。 - 一定要处理 Node.js 中错误回调传递进来的
err
参数。 - 使用浏览器全局变量时加上
window
前缀 –document
和navigator
除外 - 避免无意中使用到了这些命名看上去很普通的全局变量,
open
,length
,event
还有name
。 - 请参阅 完整的规则列表
最有争议的规则无疑是不用分号。多年来人们一直认为,始终使用分号是避免错误的最佳实践,Crockford 做了很多工作来促进这一点,使用封号有很深的根源,在 C 语言里,分号是严格要求的,否则程序不会运行。
JavaScript Standard Style(JavaScript 标准编码风格) 改变了我的想法,不用分号的 JavaScript 非常好。
分号自动插入是 JavaScript 的一个特性,它可以减少噪点、简化程序,我从来没有遇到过由于缺少分号而导致的bug,我也不相信你会遇到。查看 JavaScript 中有必需使用分号的吗? 以了解更多。
并不是所有人都同意,forks semistandard 和 happiness 有点唱反调,强调使用分号。我发现这些 forks 有点伤感,因为它们错过忽略了整个标准的要点。
如果我不同意某条规则,可以改吗?
不行。制定这套
standard
规范的目的就是让大家都不必再花时间浪费在无谓的代码风格之争上面了。关于缩进该用制表符还是空格这个问题已经争论了很久了,永远也没有答案。争论这个都可以把需求提前写完了。遵循standard
规范,你就不用再犹豫了,毕竟不管怎样争论总归会选择一种风格的。希望大家也能在个人语义和普适价值上做一个权衡。
就我个人而言,我已经开始喜欢不使用分号的编码风格了,也许是因为需要编写 Ruby、Python 和 CoffeeScript 的缘故,这些都不使用分号的语法。无论什么原因,当看不到分号的时候,我发现程序更清晰了。
良好的程序层次结构
程序员应该重视:
- 正确性
- 可读性
- 幸福感
- 高效率
事实证明,采用 JavaScript Standard Style(JavaScript 标准编码风格),对以上每一条都有好处。
正确性
在所有程序中使用的任何东西,都必须做你想要的,并且没有错误。
编码风格并不会使程序更正确,但是在发布之前,检查工具可以帮你捕获一些错误。
可读性
作为一个专业的开发人员,除了提供一份能正常运行的程序代码之外,代码的可读性是最重要的。阅读和尝试理解程序比编写代码要花费更多的精力和时间,因此请为未来的自己和维护代码的其他人进行可读性优化。
清晰可预测的风格使代码更容易阅读和理解。
程序员的幸福感
我喜欢 JavaScript Standard Style(JavaScript 标准编码风格) 的原因之一是,它把重点放在人而不是机器上。程序员的幸福感在这个列表中排名第三的唯一原因是团队合作中更需要可读性,功能代码的正确性应该放在我们自己的幸福感之前,这是毋庸置疑的。
你想享受生活,不是吗?如果你很快就能完成工作,而且你的工作又有趣,那不就是我们想要的享受生活吗?这在一定程度上就是我们生活的目的。你的生活会更加美好。
– Yukihiro Matsumoto (愚人呢码头注:松本行弘是一位日本计算机科学家和程序员。他是Ruby程序设计语言的主要设计者和实现者。)
人生苦短,不能因个人偏好的不同而引起意见分歧,设定一个标准并后续推进不是更好吗?如果一个标准的编码风格能够避免团队之间的分歧和摩擦,那么你就会更快乐。
高效率
列在最后,但并非最不重要。
如果你必须在这些要点上进行权衡,那么你应该更加重视代码正确性、可读性,并且使程序员对快速编写代码感到愉悦。
计算机处理速度很快。如果程序高效,那就没事了。如果您发现性能不佳,请花时间寻找性能瓶颈并使代码更高效。
人类处理问题的速度相对来说很慢。让事情变得更有效率对我们来说更有价值。采用一种标准编码风格的清晰性使您的代码能够更快地理解并贡献代码。花在分歧上的时间也少了很多,这是最受欢迎的。
添加一些自己的配置(ESlint和Standard)
1.安装依赖