梦断代码3

 

第9章:方法

CMM,软件成熟度模型。这是在80年代的时候,软件大牛们深感软件问题重重,为了帮助规模庞大的组织改进软件进度和质量制定出来的方法论,用来指导软件开发过程。现实状况是,美国国防部用CMM测量承包商的组织力量,很多印度公司都拿到了CMM3级及以上认证。因为CMM太过复杂,庞大,读完CMM的整个文档需要花费你一生的时间,后来大家才针对它提出敏捷式开发。

第10章:工程师和艺术家

软件是科学还是艺术。如果是科学,应该能用数学来证明,但是至今没有人能用数学来证明一段程序是否正确。

 

编程的本质。一位软件开发人员曾经在85年的时候写过一篇论文,说美国的星球大战计划绝不可能实现,因为导弹防御系统天生无法在真实的工作条件下测试。而编程却是一种试错功夫,人们在写程序时,从不指望一次就写对,他们会犯错,然后再改正,测试和修正,如是反复。

 

编程是一种创造性工作吗?看着像是,编程行为仍是一种写作行为,逐字逐句的写。一位软件大牛曾说,其实编程可以从写作世界中学到很多东西。写作时你需要读很多别人写的好文章,需要把自己写的文章让大家去评论,但是现在的编程领域却不是这样,大家很少会把自己写的代码展示给人看,也不去看别人的代码。

 

注释是给读程序的人看的。实际上它不仅是说明性的文字,也是程序员情绪发泄的阀门。windows 2000 某个版本的部分源代码泄露到网上,大家发现微软的程序员们写的注释有很多这样的句子:we have to do this only because Exchange is a moron.(必须这么做,因为Exchange太白痴)

 

程序员的绩效考核。书中提到一个小故事,一位项目经理要求大家把每天写的代码行数记录下来,作为考核的依据,他的上司知道后,对他说:我刚完成一个项目的修改工作,把一段5000行的代码缩到了4000行,那么我的工作是-1000行。你这样做,是鼓励程序员写出蹩脚臃肿的代码。

 

注释:吃狗食意思就是使用自己开发的系统。在使用过程中,你会发现很多测试人员也没测到的问题。

 

posted @ 2015-05-28 23:23  巴蒂青葱  阅读(148)  评论(0编辑  收藏  举报