感冒发烧的症状比昨天有所减轻,不过突然开始腰疼,坐着都很难受,半躺着更不行,只有躺平是可以的,不过躺平不利于刷手机...
在日更的督促下,继续写下一个tip: ETC,啥叫etc?如果你像我一样觉得是不停车收费,那恭喜你,非常正确,只是看上去好久没有看编程方面的书了,最好花时间补一补。
ETC 是easy to change的缩写,也就是易变更。这个原则被作者放在了务实的哲学之后的第一条,也就是说从这条开始呢就要开始实战了,按大师的说法,需要Don't BB, show me the code. 不过这条原则被放在了承上启下的一条,个人认为主要有两个原因,一是重要,后续很多的原则都是为了这个目的而存在的。二是笼统,还没有完全脱去哲学的意味,对肯定是对,但怎么做才能做成,没有统一的方式。
说回这条原则,意思当然是没问题咯,容易变更,特别是对于我们这种秉承了敏捷思想的开发模式,代码就是在不断迭代中形成的,每一次迭代就是一个对原有代码进行变更的过程,据不完全统计,我们新开发的代码,包括接口,报表,新功能,占我们全年的需求数量在30%左右,剩下的70%就是改改改。
那么怎么样的代码才是etc的呢?感觉和我之前审视domain模型时提到的,简单,清晰,优雅,六个字殊途同归。
要容易变更无非是做到两步,第一,容易理解,一看就懂,没有歧义,第二,容易下手,条理清楚,责任分明,改在哪里一目了然。
所以首先建议考虑的是是不是能简单做,简单当然就意味着好理解,好下手了。但是BA的需求很多时候没有这么简单,现实世界有更高的复杂性,那么就只能退一步追求清晰,虽然逻辑挺复杂,但是一步两步三步,清清楚楚也是方便下手的。最后呢实在是逻辑进一步复杂后平铺直叙的展开逻辑太长太复杂了,可能尝试用一些现有的pattern来解决,勉强称为优雅,是对复杂逻辑不得不做的设计。
所以我的建议是尽可能简单,简单不了保持清晰,清晰不了尽量优雅(应该只有少量,不多于10%的需求逻辑需要到这一步)
当然etc还有很多具体的原则非常重要,比如解耦,后面会有专题谈到,就不展开了。
之后发现书中tip这个词翻到中文里用提示似乎不是太准确,个人感觉用原则或者洞见更好一点。
网友评论