外行在谈论流派,大师在讨论颜料
https://book.douban.com/subject/1743043/
第三章 油画颜料结合剂
3.1 脂油类
3.2 挥发性香精油
3.2.1 挥发性松节油
3.2.2 挥发性矿物油
3.2.3 半挥发性油
3.3 香脂
3.4 树脂
3.4.1 软树脂
3.4.2 硬树脂
3.5 蜡和动物脂
每个行业都有门道,编程行业的门道里就有软件设计的这些编码规范。
没看过《极限编程》的可能会对 extreme 翻译成极限这个词有误解,ta 表达的意思是一切好的实践都拿来用,有取其精华去其糟粕之意。用在此处就是说多讨论改进,避免只停留在方法的讨论上。
抛砖引玉
一个函数最多只能有一个 for 和 if。
再进一步,最多只在函数调用栈的最后一层使用 if 和 for;
最后一层之上的调用中出现 if 和 for,表明需要考虑代码设计的时候到了,也是进阶的机会。
for 和 if 是很底层的原语,直接用来描述复杂情况,会显得啰嗦,这时选用高阶语法能让复杂逻辑的表达精炼一些。
如碰到 for,首先考虑用集合来表达,集合提供的接口会迫使你思考,从而让逻辑表达变得清晰,阅读代码也变得容易。
如果非得使用 for,记住不要让 for 变成啥都往里扔的垃圾桶。
最后,为了避免破窗效应,还是尽量避免用 for。
补充个类比:卯榫结构
中国古代建筑靠卯榫结构搭建起框架,软件框架的设计也有结构点/洞之说,集合类型及接口就是这些部件,把整体和个体连接起来。
所以 map,filter,reduce,iterate,collect,fold 就是你要掌握的新语言,要熟悉到对一段逻辑编码时能脱口而出。
版权声明: 本文为 InfoQ 作者【顿晓】的原创文章。
原文链接:【http://xie.infoq.cn/article/5f0555fec4f29894633f89c3b】。文章转载请联系作者。
评论