用新浪微博登录

只需一步,快速搞定

 找回密码
 立即注册

用新浪微博登录

只需一步,快速搞定

查看: 1818|回复: 1
打印 上一主题 下一主题

编程的首要原则(s)是什么?

[复制链接]

该用户从未签到

667

主题

2111

帖子

5570

积分

LV 11.会员

MS爱好者!!!!

积分
5570

社区居民偶尔光临工蜂最爱沙发在线达人社区平民做个有钱人略有小成常驻会员忠实会员

跳转到指定楼层
楼主
发表于 2012-4-29 10:42:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 |          
  写于2009-3-9
  半年前,JoelOnSoftware和CodingHorror合搞的stackoverflow.com刚上线不久,我兴冲冲地跑过去扔了一个问题
  你们认为编程的首要原则是什么?
  作为我的学习原则的一个实践:[blockquote]
8. 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。[/blockquote]
  5个月过去了,这个问题到现在还有人回复,我得到了一大堆有意思的答案,忍不住翻译过来与大家分享:
  1. 获得最多认同的答案:[blockquote]
KISS – Keep It Simple Stupid
DRY – Don’t Repeat Yourself [/blockquote]
  一点不感到意外吧?
  注:DRY原则倒是比较好理解和实践的。但KISS原则则是看上去直白,其实实践起来不那么容易的一个原则,因为simple和stupid的定义并不是每个人、在每个场景下都是一致且明显的,一个人的simple可能是另一个人的stupid,一个人的stupid可能是另一个人的unnecessary。一旦一个标准取决于具体场景,事情就不那么简单了。所以我们经常要说“It depends”。
  2. 获得第二认同的答案:[blockquote]
写代码时时刻设想你就是将来要来维护这坨代码的人。 [/blockquote]
  在这个答案后面有人添加到:[blockquote]
最好设想你的代码会被一个挥着斧头的精神病来维护。[/blockquote]
  有人接着又YY道:[blockquote]
而且这个挥着斧头的精神病还知道你住在哪儿。[sup]1[/sup][/blockquote]
  注:其实这个原则在设计API时也有用:[blockquote]
写API时时刻设想你就是要去使用这坨API的人。[/blockquote]
  3. 一些众所不一定周知的答案:[blockquote]
先弄清你的问题是什么![/blockquote]
  弄清问题永远是问题解决过程中的第一步和最重要的一步。[blockquote]
代码只是工具,不是手段。[/blockquote]
  不知道怎么最好地解决你手头的问题(注:需求、架构、算法,技术选型,etc..),写上一万坨代码也是浪费比特。[blockquote]
知道什么时候不该编码。[/blockquote]
  (类似条目:YAGNI——“你并不需要编写这坨代码!”,针对你的需求编码,“写你所需”,别做“聪明事”,为一个不确定的未来编码。同时也注意模块化设计,以便能在未来新增需求时无痛扩充系统)[blockquote]
永远不要假定你已经了解一切了![/blockquote][blockquote]
不作没有证据的推论。[/blockquote][blockquote]
想清楚了再编写。类似条目:如果方案在你脑子里面或者纸上不能工作,写成代码还是不能工作。[/blockquote]
  4. 一些众所很可能周知的答案:[blockquote]
越懒越好。
过早优化是一切罪恶的根源。
不要重新发明轮子。
测试通过前说什么“它可以工作”都是纯扯淡。
了解你的工具。
一切以用户需求为导向。
利用分治、抽象,解开子问题之间的耦合。[/blockquote]
  5. 最幽默的答案:[blockquote]
咖啡进,代码出。(Coffee in, Code out)[sup]2[/sup][/blockquote]
  最后,整个问题的 thread 在这里
  Footnotes:
    [li]事实上后面有人指出这是 Martin Golding 的一句名言 [↩][/li][li]参见 Garbage in, Garbage out. [↩] [/li]
回复

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

172

主题

2203

帖子

5863

积分

LV 11.会员

我想进入游戏圈子,求人提携指教

积分
5863

社区居民偶尔光临工蜂最爱沙发业余写手常坐沙发沙发如床社区平民做个有钱人常驻会员略有小成渐入佳境忠实会员

沙发
发表于 2012-4-29 10:56:24 | 只看该作者
天狗大神的帖子,我基本都看不懂,看来放假了也出来发帖活动了
这辈子不会的只有两件事,这也不会,那也不会
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

     
    Archiver|手机版|小黑屋|( 沪ICP备12034951号 )

GMT+8, 2024-4-28 11:43 , Processed in 0.122323 second(s), 28 queries .

© 2001-2011 Powered by Discuz! X3.1

快速回复 返回顶部 返回列表