编码风格不是编码规范
我并不认为程序员是一个情绪特别丰富的群体。但有一些事情却能很容易刺激程序员的神经,那就是代码格式和布局。若是看到一个函数的括弧在同一行上没有闭合,个人眼睛会喷血。若是看到有人没有刚好的在两个函数间留一空行,个人小腿会抽筋。但重点在这里——
除非是在家里开发本身的业余爱好软件,个人这些我的喜爱实际上是可有可无的。一样,做为一个团队中的一员,你的我的编程喜爱也应该放到一边。
编码风格很容易会和编码规范混为一谈,由于这两个词常常会被人换着使用。我认为,
编码规范同时包括了编码风格和其它规范,不只仅指代码格式。
例如,像“返回成功/失败的函数应该用一个整数做为返回值”,这样的规则不属于编码风格。在这篇文章中,编码风格简单的指一个描述如何格式化代码的说明。
编码风格中的规则一般会涉及到下面这些主题:
- 缩进
- 空格使用
- Tab使用
- 注释
- 命名习惯
- 代码行长度
- 语言特色风格,例如是否使用无关紧要的分号
编码风格都是为特定的编程语言制定的,能够把它们看做“咱们共同的约定”。若是在你的公司里,在你在时,在这些事情正在制定完成,你能够提出你的喜爱,那你是幸运。但一般状况是,一种编码风格在其生命期里看着无数的程序员来了又走了。
在个人眼里,遵照编码风格有下面三个主要好处:
1. 遵照编码风格使代码更容易维护
今天由这个程序员实现的软件,明天可能须要另一个程序员维护。若是全部代码中你们使用同一种编码风格,这另一个程序员快速的扫一眼陌生的代码,就能根据你们约定的编程习惯,推断出代码的做用。若是编码风格中指明常量应该全用大写字母表示,那么,当看到一个全是大写字母的变量时,你就能推断出它是常量。一样的,若是编码风格中规定包的引入要有顺序,那你马上就能知道去哪里找这些包。这使得代码很容易维护。
2. 编码风格使造成代码集体全部制
代码集体全部制意味着全体程序员要负责全部代码。集体全部制的做用很大,它能有效的增大
巴士因子
——一个项目能承受多少个程序员被车撞了而不影响项目的正常进行。在整个代码库中坚持延用一种经常使用的编码风格,因此程序员都能更容易的理解、维护。
相反,若是在一个大型的软件项目中,每一个程序员都使用本身的编码风格,最终会引发一场维护版图的战争,就像动物世界里咱们的这些朋友:
气味记号(也称喷洒尿液或领土记号)是动物标记本身领土范围的一种行为。一般是经过留下具备强烈气味的物质来完成,不少时候是经过在领土中突出的物体上小便。-
维基百科
我的编码风格就像是狗撒尿,留下本身的势力记号。
他们在代码中留下本身的符号,在程序员之间创造壁垒。
3. 编码风格能消除那些长久的纷争
每一个程序员都对编码风格有强烈的自我认同。这种感受深植于每一个人的自负中,每当和同事遇到是否应该在关键词周围使用空格时,这种讨论很容易升级而僵持不下。可是,静下来想一想——这真的无所谓。不论是不是在关键词周围使用了空格,只要能达成一致,你们都能从中得到易维护和集体全部制的好处。在这种状况中,闭着眼睛,遵循一种编码风格就好了。
你不须要喜欢这种编码风格。若是你不喜欢里面的某条规定,那就骂几句这个文档,只向文档发脾气,就像人类迁怒于上帝。而后仍是按照约定作事。这样作更具备建设性,比无休无止的吵论这些不重要的事情好的多。
有了一套编码风格并不必定会给你带来好处——除非你们都遵照。
有些时候,你并不必定须要手工去调整代码。不少的程序编程器,例如
Eclipse
,能配置帮你格式化代码,使其符合编码风格。即便你的编辑器没有这种功能,不少其它工具也可以自动按照某种风格格式化一个文件。在咱们的团队中,咱们使用
indent
和
uncrustify
工具。我还据说过一些其它好东西,好比
ReSharper
。那些不能被自动实施的规则,例如命名习惯,能够在代码审查的过程当中落实。
你有什么想法?大家团队中采用了什么标准和约定?它们带来了什么好处?请写在评论里。我会很高兴看到讨论。
英文原文:
The conventions we follow
/ 译:
外刊IT评论
欢迎关注本站公众号,获取更多信息