我参与了几个项目,我们花了很多时间讨论和编写精细的编码标准,涵盖从语法布局到实际最佳实践的所有内容.但是,我也发现这些很少被完全遵循.许多开发人员似乎毫不犹豫地拒绝仅基于编码标准违规的代码审查.即违规将定期提交到存储库.
我的问题是:你有编码标准吗?它们涵盖了什么?他们是否跟着每个人?你做了什么(如果有的话)以确保每个人都遵守标准?
我知道,有一个类似的问题在这里,但我担心的是没有那么多你怎么能做到这一点,但你实际上是如何去了解它,什么是预期收益?
我曾在几乎没有遵循编码习惯的地方工作,而其他地方则接近执行 - 或者至少很容易检查.
一些建议:
最重要的是获得一致性胜过个人喜好风格的想法.在编制标准制定之前和之后都应该对编码标准进行讨论,但是不允许任何人选择退出编码标准.
代码审查应该是强制性的,签到评论包括审阅者的用户名.如果您使用的是功能强大的SCM,请考虑不允许签名没有有效的审阅者名称.
应该有一份文件,每个人都知道如何制定编码标准.有足够的细节,你不应该过多地讨论论点.
在可能的情况下,自动检查约定(通过Lint,CheckStyle,FXCop等),这样提交者和审阅者都可以轻松快速检查订购导入/使用指令,空格等内容.
好处是:
主要的一致性 - 如果你这样做,任何人都可以随时在代码库的任何部分感到"在家",它会给你更多的灵活性.
传播最佳实践 - 如果你禁止公共领域,可变结构等,那么没有人可以在你的代码中意外地制造定时炸弹.(至少,不是标准涵盖的定时炸弹.当然没有完美代码的编码标准:)
编辑:我应该指出,在大公司工作时,编码标准可能是最重要的.我相信它们甚至可以帮助小型公司,但是那时对标准的处理可能更少.当所有开发人员彼此亲自了解并且都位于同一地点时,它会有所帮助.