代码标准之信达雅
CR 是每个称职的架构师每日必做之功课。CR 的目标就是要提升代码的质量,杜绝未达质量标准的代码合并入代码库。但是怎样的代码才算高质量的代码,我们 CR 的标准应该如何界定呢?
对于代码的质量的标准,我认为可以分为两部分:正确性和可读性。
正确性,就是代码的功能需要符合设计的要求,对于正常场景和异常场景都可以做到正确的处理。这部分的保证,其实更多的是通过测试用例来保证的。一个架构师不可能了解所有的功能设计,也不应该深入到各类的实现细节之中。对于这部分的质量标准,架构师只需要把握两个关键点就可以:
核心逻辑正确性的 review。
测试策略和用例覆盖度的 review。
可读性,是代码的非功能性质量标准。指的是优秀的代码应该是能让人快速理解、轻松维护、容易扩展的。
代码的可读性,其实没什么严格的评判标准。在代码可读性上,更多的是一些感受和规约。所以,代码的可读性,其实有点艺术感的意思。所以,对于代码可读性,用翻译上的信达雅的标准来类比,未尝不是一个很好的思路。
信达雅,指的是翻译需要准确、通顺、美观。对于高质量的代码,也可以用这三点来判断。
信,指代码的准确性。这里可以包括几个部分:
代码中的命名需要能准确的表达含义。比如变量应该用合理的英文单词或短语,尽量避免 x1、x2 这种让人看不懂的命名。
异常和错误码能准确的描述错误。
日志的正确性质和完整性。
参数的注释需要清晰的描述参数的含义和约束。
代码的注释需要清晰描述代码的逻辑。
达,指代码的简洁性。代码需要通顺易懂。
代码应该是一个树状的结构,一步步展开,每个步骤是一个方法,内部逻辑是对下层方法的编排。
代码要和写文章一样,用通俗的语言,尽量不要用太特立独行的逻辑。
streaming 和 closure 的使用,使代码紧凑。
雅,这个就是一个比较高的要求了。对于代码的美观性,基本的可以有几点:
代码的格式化。
方法的规模需要控制在一屏之内。
一些设计模式的使用。
代码圈复杂度的控制。
错误描述和日志中文字的组织和英文翻译的准确美观。
等等。
版权声明: 本文为 InfoQ 作者【agnostic】的原创文章。
原文链接:【http://xie.infoq.cn/article/2c6871d51d4c12e2308f98638】。文章转载请联系作者。
评论