古人把人生境界分为4重: 看山是山, 山不是山,山还是山。
编程在某种程度上也有这样的理解:
看山是山: 一眼望山,远而不明;编程就是敲代码,直接写就行了。
山不是山:临山看山,唯石而已;渐渐的,有些代码要经常重复使用,开始抽取一些通用模块;渐渐的,代码不能都写在一起开始进行一些拆分;渐渐的,开始关注代码的结构。
山还是山:登山看山,山有其纹;编程就是组织代码,关注的是组织方式而不是代码。
最开始拿到需求就直接开始做;之后发现有一些经常出现的代码,于是开始进行抽取公共代码;由于很多地方都要用,开始注重通用性及效率;将这种思路用在其他代码上,发现耦合不可避免;跳出代码从整体考虑,思考模块的组合方式。