代码之丑
识别坏味道,重构问题代码
郑晔  开源项目 Moco 作者
专栏
已完结·共 24 讲
|
2.0w 人已学
|
收藏
一个好的名字应该描述意图,而非细节。
来自:01 | 缺乏业务含义的命名:如何精准命名?
12 人划过
正如我前面所说,这种代码的出现,根本的问题是缺乏对封装的理解,而一个好的封装是需要基于行为的,所以,如果把视角再提升一个角度,我们应该考虑的问题是类应该提供哪些行为,而非简简单单地把数据换一种形式呈现出来。
来自:08 | 缺乏封装:如何应对火车代码和基本类型偏执问题?
6 人划过
正常情况一切顺利,异常情况却考虑不足。
来自:14 | 多久进行一次代码评审最合适?
5 人划过
作为这个类的使用者,你并不需要知道这个类到底是怎么实现的。更重要的是,这里的变化变得可控了。虽然审核状态这个字段还是会修改,但你所有的修改都要通过几个函数作为入口。有任何业务上的调整,都会发生在类的内部,只要保证接口行为不变,就不会影响到其它的代码。
来自:09 | 可变的数据:不要让你的代码“失控”
5 人划过
一个模型的封装应该是以行为为基础的。
来自:06 | 长参数列表:如何处理不同类型的长参数?
4 人划过
最好的 lambda 应该只有一行代码。
来自:13 | 落后的代码风格:使用“新”的语言特性和程序库升级你的代码
4 人划过
卫语句(guard clause)来解决,也就是设置单独的检查条件,不满足这个检查条件时,立刻从函数中返回。
来自:07 | 滥用控制语句:出现控制结构,多半是错误的提示
3 人划过
前面的定时时间确实不该加,而这里的提交时间却是应该加的
来自:15 | 新需求破坏了代码,怎么办?
3 人划过
它们都是一种模块划分的方式。这样,人们面对的就不再是细节,而是模块,模块的数量显然会比细节数量少,人们的理解成本就降低了。
来自:05 | 大类:如何避免写出难以理解的大类?
3 人划过
很多程序员纠结的技术问题,其实是一个软件设计问题
来自:12 | 不一致的代码:为什么你的代码总被吐槽难懂?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
免费试读
讲师

郑晔

开源项目 Moco 作者

郑晔,网名 dreamhead,极客时间《10x 程序员工作法》《软件设计之美》《代码之丑》《程序员的测试课》专栏作者,学习人数 11w+。   他是一位有着 20 多年研发经验的技术老兵,Oracle Duke 选择奖获奖作品 Moco 的作者,曾担任火币网首席架构师、...查看更多
编辑推荐
讲师的其他课程
10x 程序员工作法
郑晔
开源项目 Moco 作者

63讲 | 53442 人已学习

¥68¥199
软件设计之美
郑晔
开源项目 Moco 作者

42讲 | 19897 人已学习

¥59¥129
程序员的测试课
郑晔
开源项目 Moco 作者

23讲 | 18912 人已学习

¥59¥99
看过的人还看了
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123470 人已学习

¥98¥299
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283805 人已学习

¥68¥199
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 181001 人已学习

¥98¥399
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224938 人已学习

¥68¥199
Redis 核心技术与实战
蒋德钧
中科院计算所副研究员

53讲 | 81748 人已学习

¥68¥199
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 152624 人已学习

¥68¥199