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