下面可以乘凉的不一定是大树,但大树底下一定是可以乘凉的。
RSS icon
  • 

    【转载】编程的首要原则是什么

    发表于 二月 23rd, 2010 大树 没人乘凉

    本文转载自:http://mindhacks.cn/2009/03/09/first-principles-of-programming/

    半年前,JoelOnSoftware和CodingHorror合搞的stackoverflow.com刚上线不久,我兴冲冲地跑过去扔了一个问题:

    你们认为编程的首要原则是什么?

    作为我的学习原则的一个实践:important

    8. 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。

    5个月过去了,这个问题到现在还有人回复,我得到了一大堆有意思的答案,忍不住翻译过来与大家分享:

    1. 获得最多认同的答案

    KISS – Keep It Simple Stupid

    DRY – Don’t Repeat Yourself

    一点不感到意外吧?

    注:DRY原则倒是比较好理解和实践的。但KISS原则则是看上去直白,其实实践起来不那么容易的一个原则,因为simple和stupid的定义并不是每个人、在每个场景下都是一致且明显的,一个人的simple可能是另一个人的stupid,一个人的stupid可能是另一个人的 unnecessary。一旦一个标准取决于具体场景,事情就不那么简单了。所以我们经常要说“It depends”。

    2. 获得第二认同的答案

    写代码时时刻设想你就是将来要来维护这坨代码的人。

    在这个答案后面有人添加到:

    最好设想你的代码会被一个挥着斧头的精神病来维护。

    有人接着又YY道:

    而且这个挥着斧头的精神病还知道你住在哪儿。1

    注:其实这个原则在设计API时也有用:

    写API时时刻设想你就是要去使用这坨API的人。

    3. 一些众所不一定周知的答案

    先弄清你的问题是什么!

    弄清问题永远是问题解决过程中的第一步和最重要的一步。

    代码只是工具,不是手段。

    不知道怎么最好地解决你手头的问题(注:需求、架构、算法,技术选型,etc..),写上一万坨代码也是浪费比特。

    知道什么时候不该编码

    (类似条目:YAGNI——“你并不需要编写这坨代码!”,针对你的需求编码,“写你所需”,别做“聪明事”,为一个不确定的未来编码。同时也注意模块化设计,以便能在未来新增需求时无痛扩充系统)

    永远不要假定你已经了解一切了!

    不作没有证据的推论。

    想清楚了再编写。类似条目:如果方案在你脑子里面或者纸上不能工作,写成代码还是不能工作。

    4. 一些众所很可能周知的答案:

    越懒越好。

    过早优化是一切罪恶的根源。

    不要重新发明轮子。

    测试通过前说什么“它可以工作”都是纯扯淡。

    了解你的工具。

    一切以用户需求为导向。

    利用分治、抽象,解开子问题之间的耦合。

    5. 最幽默的答案

    咖啡进,代码出。(Coffee in, Code out)2

    最后,整个问题的 thread 在这里

    您来到小站很多次了哦,喜欢的话,不妨订阅我吧·!

    相关文章:

    1. Google向开发者提供云存储GSD Google Storage for Developers(GSD)是个全新的RESTful服务,提供的数据存储可以在位于美国的几个数据中心间复制。GSD叫做“for Developers”的原因在于传输与访问数据的API基于常规的HTTP命令,比如GET、POST、PUT、HEAD和DELETE。...
    2. 实验室一周日志–2009.7.6-2009.7.10 2009.7.6 阅读http://osdldbt.sourceforge.net/的Database Test Suite源代码,了解其基本设计思路。 2009-7-7 阅读TPC-C最新文档,了解TPCC测试时的数据库表结构,画TPC-C测试结构图 2009-7-8 继续看文档 2009-7-9 在武义,继续看文档 2009-7-10回来,看文档 ...
    3. PostGreSQL之MVCC分析终结篇 从9月中旬开始的PostGreSQL代码阅读+MVCC,至今总算告一段落。此次分析,既有意料之中,亦有出乎意料。意料之中的是过程复杂曲折,意料之外的是PostGreSQL的MVCC实现居然如此简单。...
    4. 地瓜熊老六的囧生活 姓名:地瓜 性格:熊 排行:老6 性别:男 爱好:女 梦想:钻石王老5 现状:地瓜熊老6 忠告:人生有风险,投胎须谨慎....... 这就是可爱的地瓜熊老6,非常推荐这部漫画,大家欣赏吧!...
    5. 一些人生哲理漫画 陈耶门《沉默集》,一部很不错的人生哲理漫画。...

    

    乘凉说话