代码review的"色香味"
上个月下旬有个review的事情,持续了很久吧,当时就想到了这个主题。今天有时间来写写!
味------功能实现或者异常情况的处理。
(框架)流程是否合理。
是否充分考虑各种异常分支,即容错性。
关键参数是否有充分的依据。
香------性能优化和可维护性。
性能优化会更侧重一些细节的设计。
可维护性我觉得更侧重日志的设计。
色------可读性。
规范和注释等等。
风格是否错路有致。
代码的review应该从这三方面着手!
从上到下,从最基本最重要开始。
但是给人的第一印象往往是从“色”开始。
如果看上去,没有“食欲”,写的再好,可能也需要思考半天去理解作者的本意;
而且人的临时记忆是很短暂的,如果没有注释,不出三个月自己都会忘记。
所以我认为注释和文档,其实很多时候是写给自己的;
当然关键时候,拿来交接的。
为了后续工作的交接顺利,未尝不好!
交接也不一定是换工作,也有可能换项目、带徒弟等等。
我也碰到有人跟我说,如果代码写的好,就不需要(看)文档和注释!
这里可以分成两方面。
一方面,确实有这样的高手,但是这些高手一般只是在写开源库的时候;
如果是企业的员工,除了初创阶段,后期应该也是有需要的。
否则,你看哪个著名的软件公司没有出各种语言编码规范?
而且这些高手,代码确实写的好,好在错落有致!
看着不累,层次分明。
另一方面,我认为这是一种借口或者托词或者狂妄,不愿意去改变自己思维而已。
还有,喜欢咬文嚼字的,我觉得讨论起来蛮累的!
i++ 和 ++i的性能区别?
定义不当,多了一次io。
想想就累,现在一块小芯片性能都很强大了,这些让我不知道如何说好。
当然最让人累的就是代码逻辑非常不清晰的,
while多个(大于2)嵌套,结构体多层嵌套;再混合!
讨论会更累,这是人的性格使然,如果碰到这样的(人),只能通过测试来约束了!
最后,回到的“色香”。
除了最重要的流程和设计之外,这里的细节和严谨必须重视!
常见的是前后文,或者说上下文。
每一处关键的地方、每一次改动,都要留意其上下文!
切记!
切莫可大意,或者自以为是!