Code Complete

Steve McConnell

出版时间

2004-06-19

ISBN

9780735619678

评分

★★★★★
书籍介绍
《代码大全》不教你写某门语言的语法,也不提供能直接套用的速成技巧——它把软件开发当作一门需要长期修炼的手艺来讲述。书中反复强调一个朴素却少有人真正践行的道理:发现错误要尽可能接近引入错误的时间,缺陷在流程中滞留越久,后期代价越沉重;而需求在开发中平均会变动25%,返工又多半由此而来。作者由此主张
AI导读
核心看点
  • 软件构建的核心在于管理复杂度
  • 涵盖从需求分析到代码优化的全过程
  • 强调先完成功能再追求完美优化
读者共识
  • 内容详实被誉为编程领域的百科全书
  • 虽略显啰嗦但干货满满值得反复读
  • 帮助开发者养成正确的工程化习惯
精彩摘录
  • "设计是一个启发式过程 隐喻是启示而不是算法 典型情况下需求会有多少改动?IBM和其他公司的研究发现,平均水平的项目在开发过程中,需求会有25%的变化(Boehm 1981,Jones 1994,Jones 2000)。在典型的项目中,需求变更导致的返工占到返工总量的75%到85%(Leffingwell 1997,Wiegers 2003)。 注意项目的商业案例:有些需求作为功能特色来看是不错的想法,但是当你评估“增加的商业价值”时就会觉得它是个糟透了的主意。 一个好的项目规划者,应能尽早清楚项目中的主要风险,以使大部分工作能平稳进行。"
  • "发现错误要尽可能接近引入错误的时间,缺陷在软件食物链里面呆的时间越长,它对食物链的后级造成的损害就越严重 “问题定义”只定义了“问题是什么”,而不涉及任何可能的解决方案,应在需求分析之前,而需求分析是对所定义问题的深入调查,应该用客户语言来写,从客户角度来描述问题"
  • "Sapir-Whorf假说是,你思考的能力取决于你是否知道能够表达该思想的词汇。如果你不知道这些词汇,就无法表达出这种思想,甚至可能不能形成这种思想(Whorf 1956)。"
  • "“险恶的(wicked)”问题就是那种只有通过解决或部分解决才能被明确的问题(1973)。这个看似矛盾的定义其实是在暗示说,你必须首先把这个问题“解决”一遍以便能够明确地定义它,然后再次解决该问题,从而形成一个可执行的方案。这一过程已经如影随形地在软件开发中存在数十年了(Peters and Tripp 1976)"
  • "稳定的需求是软件开发的圣杯。"
  • "Design Is a Wicked Problem Horst Rittel and Melvin Webber defined a "wicked" problem as one that could be clearly defined only by solving it, or by solving part of it(1973)."
  • "Design Is a Sloppy Process (Even If it Produces a Tidy Result)"
  • "Software developers tend to like our answers cut and dried: “Do A, B, and C, and X, Y, Z will follow every time.” We take pride in learning arcane sets of steps that produce desired effects, and we become annoyed when instructions don’t work as advertised. This desire for deterministic behavior is h"
下载
收藏