编程的首要原则(s)是什么?半年前,JoelOnSoftware和CodingHorror合搞的刚上线不久,我兴冲冲地跑过去扔了一个问题: 你们认为编程的首要原则是什么? 作为我的学习原则的一个实践:
5个月过去了,这个问题到现在还有人回复,我得到了一大堆有意思的答案,忍不住翻译过来与大家分享: 1. 获得最多认同的答案:
一点不感到意外吧? 注:DRY原则倒是比较好理解和实践的。但KISS原则则是看上去直白,其实实践起来不那么容易的一个原则,因为simple和stupid的定义并不是每个人、在每个场景下都是一致且明显的,一个人的simple可能是另一个人的stupid,一个人的stupid可能是另一个人的unnecessary。一旦一个标准取决于具体场景,事情就不那么简单了。所以我们经常要说“It depends”。 2. 获得第二认同的答案:
在这个答案后面有人添加到:
有人接着又YY道:
注:其实这个原则在设计API时也有用:
3. 一些众所不一定周知的答案:
弄清问题永远是问题解决过程中的第一步和最重要的一步。
不知道怎么最好地解决你手头的问题(注:需求、架构、算法,技术选型,etc..),写上一万坨代码也是浪费比特。
(类似条目:YAGNI——“你并不需要编写这坨代码!”,针对你的需求编码,“写你所需”,别做“聪明事”,为一个不确定的未来编码。同时也注意模块化设计,以便能在未来新增需求时无痛扩充系统)
4. 一些众所很可能周知的答案:
5. 最幽默的答案:
最后,整个问题的 thread 在这里。 |
|