代码大全第二版.pdf
序
是EdwardYourdon写的Naicsatrisk·书。如果只出现“(2000字样,邡么请您从
上卜文中推断出作者姓名
配套网站
这本书英文版的比怎网站是ht
,c2e,c,书中左侧出现的类似
cC2ecom1234的标志的含义请参阅前言屮的说明。木书中文版的配套网站是
htp:}/w.le.m1c,凡是书屮出现的ε2ecom234均叮对应访问
书已经棂撕原书截免2006年2月仞的勘苡衣进行了修订;泽者发现的原书漏也已
像写疗做
现任何疑间,欢迩米书配套判站与泽者交流。这个网站还提供最新的误表和其他些
信息例如我们把routine翻译为“∫程序”的理由、对书中视点的讨论、书评等)
致谢
木的制译丁作由4名译者共同完成,各人负卖的罩节如下:金戈翻译前言和第]
9章;凌翻译第10-26,陈硕黼译第3、4、27~30草,张菲翮译第31-35首。北京
大学的装宗燕教授校了个部书稿,对译鹬做∫人的修订并提出相当多的指导意见。在
此我们对裘老师表小衷心削感谢,他的辛劳动使本书的群译质上了·个大台阶。全书
殴后山陈醺统稿。译者汤逵村别感谢同事市程炜科师,他为汤变复查了大部分初泽版
外,夲书部分黼译作基丁極哈达和郑毅帆的初译耥,在此也“并谢
者特别感谢本书编绀团队中负责个书统筹[作的陈元长女上和负责木配企网站建
没的余」先生以及编转团队的具他人员
最后,祝读者能借助本书提高己的编利功力,成为优秀的软件开发人才。谢谢!
译老
2006年2月初
代码大全(第2版)
一切皆有可能
出版人感言
003年夏天,博文视点刚成京不久,一次,我和孟岩在msn上聊大,孟岩说:“周
老师,有本绝好的书刚刚出了弟2版,不知现在版权还在不在?”我向米深信孟
的眼光,让他赶紧告诉我,原来是代码人全》。孟岩还告诉我,该书第1版是
年前问世的,很多人都在找这木书,未某
我当即话电子社版权部的同孳向软出版社洽询《代码大全》(第2版)的翻译
权事宜,但版权部多次积极联络,对方的回复总是“在查询屮”。后来和孟岩谈及
我们俩
可能这本书的釅译版权已花落他家,多半没戏了。但既然对方没肯定
版权己经投予国内其他出版社,那么始终笃信“一切唐有可能”的我,就不会放弃
2004年的某个阶段,徵软出版杜因某种原,暂件与屮国出版社的版权贸易
向来办事效率极高的电了社版权部经多方打听,∫解到微软出版社与国内出版衬暂停
合作的原因,提出了电子社和微软出版社率先动合作的具体方案,并请博文视点参
与同徹软出版社的合作谈判,抆两次在北京出席与徴敦出版杙代表的而该每次面谈
我都要求博文的外版绢辑在申请合作的书H上,首先列出《代码人全》(第2版)前
对方也总是不能给予止式的回复。隐隐中,感觉这本书的翻译版衩似乎离博文视点有
些遥
然而,电子社是幸运的,博文视点足幸运的,我是幸运的
于电子社版权部
办毕效率极高,赢得∫微款出版社的信任,2004年12厅,对方发来了授权文件,其
中就有《代码人全》(第2版)。得知这个消忘总,博文视点的外版编辑方舟有些不敢相
信,还问我,会不会是微软出版杜弄错了。方舟是个怀疑派,所以当初我要求他把
本书列入申诮名单时,他微嘟囔了几句,人意是说我们这些瞎猫想速活耗了,云运
接下来寻找译者也不易,所毕我没看错我的朋友金戈,他在翻译过程屮,几次遇
到困难:翻译团队屮途换人,由他领衔主持的国家级项日,耐间耍求也非常紧,但他
咬牙坚持下米了。也非常感谢表宗燕老师一向对我作的支持,老师答应担任这本
书的审校工作,让我感到幸运而路
这书也凝聚了我的同陈元玉无数个囗夜的心m,她以高度负责的态度廉得了
代码木全(第2版)
切皆可能
仝体译者的赞誉。方舟銂辑,也从怀疑变为喜,在他眼屮,这本书是“绝色俫人”,
因此,美术基础不错的他亲自为这木书设计了封山。博文的市场经理余广是网贞设计
爱好者,和繃辑张是一起为《代码大仝》(第2版)精心打造了中文版配套网站
当年懋恨指路的i粘,已纾是《程序》卖忒的技术主编,他在2006年第3期
《程序员》杂志上为这忄书鉀织了]5个版而的专趣报道,这是窄前的,也是“绝色
住人”才有的行遇
出版人的快乐,莫不来」与好·书结缘。山顾‘多为这本书付出的辛,过往
的切都显得那么美好。我自口,更烂感到特别的幸运——我能利这样·群优秀的伙
伴在一个团队思I作,能在我的职业生涯里和这样一本“绝色佳人”级别的好书结缘,
性有感恩
希这本书,能带给读者真而的捫助,也恳请读者朋攵随吋出我们应该改进的
地方
博义视点,与所有向上的心合作,共问成长!
2006年3月于武汉
代大≌(第2版)
ContentsataGlance
目录一览
第
第2章用隐响米更充分地理解软件开
第3章三思前后行:前期准备
第4章关键的“构建”决
第5堂软件构建中的设计
以工作的类
笫8平防御式编科
第9章伪代码編程过程.
0章使用变量的一般事项
第11草变量名的力量
第12草某本数据类型
第13章不常见的数据类型
第14组织线型代码
第]7章不常见的控制结构
第18幸表驱动法
第
一控制问
第20章轶件质量概述
第21章协同构建
第22章开发者測试……
第23章诫试
第24章重
X
目录一览
第25章代码调整策略
58
第26章代码调整技术
609
第27章程序规模对构建的影响
第28章管理构建
第29章集成
第30章编程具
709
第31章布局与风格
729
第32章自说明代码…
77
第33章个性格
8]9
第34章软件工艺的话题
837
第35章何处有更多信息
855
参考文献
863
索引
885
代码大全(第2版)
Tableofcontents
目录
前言
凡]X
鸣谢
XXVIi
核对表目录
XXIX
表自录
XXXI
图目录
■郾↓L↓山■↓■山l山■aLd↓
XX111
第部分打好
第1童欢迎进入软件构建的世界
1.1什么是轶件构建…
].2軟件构建为何如此重要
13如何阅读木书
第2章用隐喻来更充分地理解软件开发
21隐喻的重要性
2.2如何使用软件隐喻
23常见献软廾隐喻
第3章三思而后行:前期准备
3]前期准备的重要性
24
3.2辨明你所从事的软件的类型
31
33问题定义的先决条仍
34需求的先决条件
3.5架构的先次条件
43
36花费在前期准备上的时间长度…
55
第4章关键的“构建”决策
4.1选择编程语言
42编程约定
43你在抆术浪潮屮削位置.
44选择主要的构建实践方法
代码大全【第2版
目录
第2部分创建高质曩的代码
第5章软件构建中的设计
5.1设计中的挑战
74
5,2关键的设计概念
5、3设计构造块:启发式方法
,87
54设计实战
4110
55对流行的设计方法削评论
l18
第6章可以工作的类
125
6,1类的基础:拍象数据类型(ADIs
26
62艮好的类接凵
133
63有关设计和实现的问题
143
64创建类的原因……
152
6.5与具体编程语言相关的问题
156
66超越类:包
十十十會十十會十十會十十背十十背十背十十
156
第7章高质量的子程序
l61
7.1创建子程序的正当理由
2在了程序层上设计
73好的子秘厅名宁
171
74子程序可以写多长
l73
75如何使用了程序参数
74
76使用函数时要特别考虑的问题
181
7.7宏子程和內联子程
182
第8章防御式编程
187
8↓保护程序兔遭非法输入数据的破坏
188
82断言
83错误处理技术
194
84异常
85隔离科序,使之包容山错误造成的损害
203
86辅助调试的代码
87确定在ⅳ品代码屮该保留多少防御式代砖.
209
88对防御式编程釆取防御的姿杰…...
第9章伪代码编程过程
215
91创建类和子程序的步骤概述
216
代码大全(第2版)
目录
9.2伪代码
218
93通过伪代码编程过程创建子程序
94伪代码编程过程的替代方築,
232
第3部分变爱
第10章使用变量的一般事项
237
0.1数据认知
238
10.2轿松掌变量定义
239
0.3变量初始化原则
240
104作用域
10.5持续性
106绑定时间
52
i0.7数据类型和控制结构之间的关系……
108为变量指定单一用途
255
第11章变量名的力量
1.1选择好变丘名的注意亨项
12为特定类型的数据命名
264
10.3命名规则的力量
270
114非式命名规则…
11.5标准前缀
279
16创建貝备叮读性的魟名
282
1.7应该遥兔的名字…
285
第12章基本数据类型
291
]2.1数值概论
2.2整数……
293
12.3淨点数
124宁符和字符串
297
125布尔变量
301
126枚举类型
127只名常量
307
I28数纠
12.9创建你付己的类型(类型别名
311
第13章不常见的数据类型
3l9
13.1结构体
319
代码大全!第2版)
用户评论