开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。
Google 出品 Java 编码规范,强烈推荐!
Google 出品 Python 编码规范,强烈推荐!
The following article is from InfoQ Author 谷歌官方博客
客观的技术和数据比个人意见和偏好更重要。
在代码风格方面,可以参考谷歌风格指南。任何没有在这个风格指南中出现的东西(比如空格等)都属于个人偏好。代码风格应该与原有代码保持一致,如果之前没有规定代码风格,可以使用代码提交者的代码风格。
软件设计从来就不只风格问题,也不只是个人偏好问题。它们建立在一些基本原则之上,所以我们应该基于这些原则做出权衡,而不只是基于个人偏好。有时候,一个问题有多种解决方案,如果开发人员能够证明(通过数据或基于可靠的工程原理)几种解决方案是同样有效的,那么评审人员应该接受开发人员的选择,否则就应该基于软件设计标准原则做出决定。
如果没有其他适用的原则,评审人员可以要求开发人员与当前代码库保持一致,只要不破坏系统的整体代码质量。
良好的代码设计。
功能对代码用户来说是有用的。
UI 变更应该是合理的。
并行编程是安全的。
代码复杂性不要超过应有的程度
不需要实现可能会在未来出现的需求。
有适当的单元测试。
精心设计的测试用例。
使用了清晰的命名方式。
清晰而有用的代码注释,要解释“为什么”,而不是“什么”。
恰如其分的代码文档化。
代码要遵循风格指南。
代码变更有意义吗?它们有没有良好的描述?
先看一下代码变更中最重要的部分,它整体设计得如何?
按照适当的顺序检查 CL 的其余部分。
开发人员在发出一个 CL 之后会继续开始后续的开发工作。如果你正在评审的 CL 存在严重的设计问题,他们也需要重写后续的 CL。所以,最好赶在开发人员在有问题的设计上花费不必要的时间之前告诉他们。
大的设计变更比小的变更需要更长的时间。为了让开发人员能够在截止日期之前提交代码,同时又能保持代码库的质量,要尽早让他们开始重写工作。
团队的整体开发速度降低了。如果个体开发人员无法快速地对评审做出响应,可能是因为他们有其他事情要做。但是,如果每个 CL 都要等待一次又一次的评审,那么其他成员的新特性和 bug 修复就会被延迟,可能是几天、几周甚至是几个月。
开发人员开始对代码评审流程提出抗议。如果评审人员要隔几天才回复一次,但每次都要求对 CL 进行重大修改,开发人员可能会觉得很沮丧。通常,他们会抱怨评审人员太过严苛。如果评审人员能够快速提供反馈,抱怨就会消失,即使他们要求做出的修改是一样的。代码评审过程的大多数抱怨实际上可以通过加快评审速度来解决。
代码质量受影响。如果评审速度很慢,开发人员的压力也会随之增加,因为他们不能提交不甚完美的 CL。缓慢的评审流程还会阻碍代码清理、重构和对现有 CL 做出进一步改进。
评审人员确信开发人员将会处理好评审人员给出的建议和意见。
其余的改动是次要的,不一定要求开发人员完成。
礼貌。
解释你的理由。
给出明确的方向,指出问题,并让开发人员决定如何在两者之间做出权衡。
鼓励开发人员简化代码,或者添加代码注释,而不只是让他们解释代码的复杂性。
开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。