极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:37
登录|注册

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才找到问题所在。
收起评论
大纲
固定大纲
1. 业务跑得这么快,没时间 Code Review
2. 我们比拼的不是代码行数
3. 有重复使用的量一定要找个地方集中隔离
4. 单测有必要 Code Review 吗?
5. 需要调试来查找错误时,往往是一种对异常处理机制的侮辱
6. 吝啬空行
7. 满天飞的函数式编程好吗?
8. 注释是电影的旁白
显示
设置
留言
2
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部