Code Review是一场苦涩但有意思的修行
极客时间编辑部
讲述:丁婵大小:6.34M时长:04:37
你好,欢迎收听极客视点。
技术圈有句俗话,读别人的代码比写代码更难。提起 Code Review,大家总是面露哀状,但是,Code Review 对于代码质量的把控很是关键。最近,阿里孤尽在公众号“阿里巴巴中间件(ID:Aliware_2018)”分享了他对于 Code Review 的切身体会。他认为 Code Review 是一种苦涩的修行,也是一种自我积累,开发者应该见贤思齐,见不贤而内自省也。
1. 业务跑得这么快,没时间 Code Review
这是一个很大的谎言,不要为自己的丑代码找华丽的借口,没有时间 Code Review ,却总有时间焦头烂额地处理故障和投诉。时间是公平的,你在工位上噼里啪啦地打字,可能产出的是一堆没有营养的代码,甚至会对业务造成致命影响。只有在代码健康的情况下才能保证业务持续跑得快,所以,我们要追求 Code Review 的效能,而不是逃避它。
2. 我们比拼的不是代码行数
如果用 3 行代码能够实现功能的价值,就不应该用 4 行来实现。所谓晒出代码行数,并非是单纯地鼓励代码行数要多,而是提倡大家去写优质的代码。而优质代码一定遵循着少即是多的原则。
3. 有重复使用的量一定要找个地方集中隔离
不管是变量,还是常量、工具类,如果被重复使用,沉淀在包中,那么它在未来一定是颗定时炸弹。比如,一个组装 SQL 语句的代码,到处是 “from” 、“where”、“limit” 等,这些单词前后都需要加空格,在复制粘粘时,如果少一个空格,那最后出现的问题往往是致命的。再比如,一个互相约定的分隔符“###”,定义在本类中 Private String ,这明显是两个共同遵守的常量,单独定义的结果就是容易造成不匹配。隔离的目的是复用它,保护程序正常运行,也易于维护。
4. 单测有必要 Code Review 吗?
有时候感觉单测就像阑尾,存不存在都无关紧要,这是错误的观点。单测是 Code Review 的一部分,还包括单测 MOCK 、边界值测试、用例覆盖业务场景等。单测写得好,BUG 肯定少。
5. 需要调试来查找错误时,往往是一种对异常处理机制的侮辱
良好的日志和异常机制,是不应该出现调试的。写日志和抛异常时一定要给出上下文,否则等同于销毁命案现场,给后续处理问题的人制造困难。
6. 吝啬空行
有些人感觉空行是廉价的,到处乱扔,还有些人感觉空行是昂贵的,舍不得用。50 行代码中没有一个空行,等同于 50 句话没有任何标点符号。标点符号有着隔断、语义区分的作用,空行也是同样的道理。以下三种情形一定要使用空行:
在方法的 return、break、continue 等断开性语句后必须使用空行;
在不同语义块之间使用空行;
循环之前和之后需要使用空行。
另外,在方法和类定义下方不需要使用空行。
7. 满天飞的函数式编程好吗?
答案是:不好。如果一个 stream 后边的调用超过 5 个,那么写该代码的人就有炫耀的嫌疑,因为别人不敢轻易改这段代码,这体现出代码创建者的不可替代性。这种多函数式编程的方式,非常让人难受。
8. 注释是电影的旁白
电影的旁白有两个特点:信息量大、适时出现。这对应到代码中,注释就是电影的旁白。需要适当地交代业务背景信息、执行频率、执行条件、维护者注意事项等等,能够识别哪个地方需要写注释,是一项对业务的阅读能力,而不是代码阅读能力。
以上就是今天的内容,你认为在 Code Review 中,有哪些重要的事项呢?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 小斧1. 业务跑得这么快,没时间 Code Review 2. 我们比拼的不是代码行数 3. 有重复使用的量一定要找个地方集中隔离 4. 单测有必要 Code Review 吗? 5. 需要调试来查找错误时,往往是一种对异常处理机制的侮辱 6. 吝啬空行 7. 满天飞的函数式编程好吗? 8. 注释是电影的旁白3
- 蓬stephen蓬我第五点做得不好。导致出问题后还是需要debug才找到问题所在。
收起评论