人性使然
小
,少
,容易
,简单
这类字眼,恐怕算是编程风格里出现最多的一类了。
到目前为止编程的主力还是人,编程过程中的任何活动都不能忽略人都因素。
人性虽然有多面,但如果面临一些非做不可的事情(如把编程当作职业)时,总会选择容易
的一面。这是编程活动这个复杂适应系统
中,人的智力投入产出比这个选择压力
所决定的。
大事化小,小事化了。
天下没有那么多本来就很小、很容易的问题,碰到大而复杂的问题怎么办?
通过本能的类比
,人们很容易发现复杂问题里自己熟悉的部分,于是复杂问题被划分成2部分:已熟悉的和不熟悉的;借助已有的知识,如人们熟悉的时间、空间,以此做工具,复杂问题终将被拆分为各个小问题。
小为什么有用
有效,好使
- 直接作用
容易阅读,容易理解,容易维护,容易复用 - 间接作用
降低冲突概率,容易发现问题,减少意外发生
误区
-
小
凌驾于功能
之上
如过度设计的情况,以及没有明显提升代码质量的重构 - 低效的投入
如花太多时间来设计或重构
正确的节奏
- 功能快速实现优先
此时不能关注在实现如何小
上,而应该关注在快
上 - 农村包围城市,攻克难题
核心功能如果过大,不能快速实现,则先实现周边的
如一些边界情况,或作为代表的一个具体情况 - 这个阶段有成熟的方法论,即TDD《测试驱动开发》
更进一步,有TCR workflow (test && commit || revert) 来刻意练习小步开发 - 功能实现后,不能止步于此,还需要考虑代码质量
如可维护性,可扩展性等 - 发现坏味道,及时重构
此时就是小
发挥作用的时刻,因为小
的方面基本就是坏味道 - 这个阶段也有成熟的方法论,即《重构》
小
一般是通过重构来达成的
如何识别小
《重构》里有24个坏味道
如何拆
《重构2》里有60个例子
网友评论