呦呦鹿鸣处 书卷汇成川

联系我们:
《代码大全2(纪念版)》封面

代码大全2(纪念版)

文件格式: EPUB · MOBI · PDF · TXT

获取下载链接

出版年份: 2022
ISBN: 9787302583646
豆瓣评分: 9.3

标签

《软件开发》杂志Jolt大奖 大而全,洞悉软件构建精髓 优而先,兼顾行业实践研究 奠定硬核技术领导力的经典 庸常变身卓越的实用性指导 《代码大全2》是著名科技类作家史蒂夫·麦康奈尔的经典著作,是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟时代潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。本书所论述的技术不仅填补了初级与中高级编程技术之间的空白,而且也为程序员提供了一个有关编程技巧的信息来源。 本书的缘起与使命,响应计算机科学与技术委员会的报告,植根于“软件工程参考手册”这个基本的概念,同时兼顾软件质量和研发效能,对已有的高效软件工程实践进行全面收集、萃取、分类和传播(CSTB 1990, McConnell 1997a)。 这本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。无论是什么背景的读者,阅读本书都有助于在更短的时间内、更容易地写出更好、更简洁、更优雅的程序。

第Ⅰ部分奠定基础
第1章 欢迎来到软件构建的世界 003
第2章 通过隐喻更充分地理解软件开发 009
第3章 谋定而后动:前期准备 023
第4章 关键的构建决策 057
第II部分高质量的代码
第5章 软件构建的设计 069
第6章 可以工作的类 121
第7章 高质量的子程序 157
第8章 防御式编程 187
第9章 伪代码编程过程 215
第Ⅲ部分变量
第10章 变量使用中的常规问题 239
第11章 变量名称的威力 263
第12章 基本数据类型 295
第13章 不常见的数据类型 323
第Ⅳ部分语句
第14章 直线型代码的组织 353
第15章 使用条件语句 361
第16章 控制循环 373
第17章 不常见的控制结构 395
第18章 表驱动法 417
第19章 常规控制问题 437
第Ⅴ部分代码改进
第20章 软件质量概述 469
第21章 协同构建 483
第22章 开发人员测试 503
第23章 调试 541
第24章 重构 569
第25章 代码调优策略 591
第26章 代码调优技术 613
第Ⅵ部分系统化考虑
第27章 程序规模对构建的影响 651
第28章 管理构建 663
第29章 集成 693
第30章 编程工具 715
第Ⅶ部分软件匠艺
第31章 代码的布局和风格 733
第32章 自文档代码 781
第33章 个人性格 821
第34章 关于软件匠艺 837
第35章 更多信息来源 853
详细目录
第Ⅰ部分奠定基础
第1章 欢迎来到软件构建的世界	003
1.1什么是软件构建	003
1.2软件构建为何如此重要	006
1.3如何阅读本书	008
第2章 通过隐喻更充分地
理解软件开发	009
2.1隐喻的重要性	009
2.2如何使用软件隐喻	012
2.3常见的软件隐喻	013
第3章 谋定而后动:前期准备	023
3.1前期准备的重要性	024
3.2确定要开发什么类型的软件	030
3.3定义问题的先决条件	034
3.4需求的先决条件	036
3.5架构的先决条件	041
3.6前期准备所花费的时间	052
第4章 关键的构建决策	057
4.1编程语言的选择	057
4.2编程约定	062
4.3判断个人处于技术浪潮中的哪个阶段	062
4.4选择重要的构建实践	065
第II部分高质量的代码
第5章 软件构建的设计	069
5.1设计挑战	070
5.2关键设计概念	073
5.3设计构建基块:启发式方法	083
5.4设计实践	107
5.5点评各种流行的方法论	115
第6章 可以工作的类	121
6.1类的基础:抽象数据类型(ADT)	122
6.2良好的类接口	129
6.3设计和实现问题	139
6.4创建类的理由	149
6.5语言特定问题	153
6.6超越类:包	153
第7章 高质量的子程序	157
7.1创建子程序的正当理由	160
7.2子程序级别的设计	165
7.3好的子程序名称	169
7.4一个子程序应该有多长	171
7.5如何使用子程序参数	173
7.6函数使用中的特别注意事项	180
7.7宏子程序和内联子程序	182
第8章 防御式编程	187
8.1保护程序,
使其免受无效输入的影响	188
8.2断言	189
8.3错误处理技术	194
8.4异常	198
8.5隔离程序,使之包容
由错误造成的损害	203
8.6调试辅助代码	205
8.7确定在生产代码中
保留多少防御式代码	209
8.8对防御式编程采取防御的姿态	211
第9章 伪代码编程过程	215
9.1类和子程序构建步骤总结	215
9.2面向专家的伪代码	218
9.3使用PPP构建子程序	220
9.4PPP的替代方案	233
第Ⅲ部分变量
第10章 变量使用中的常规问题	239
10.1数据扫盲	240
10.2简化变量声明	241
10.3变量初始化指南	242
10.4作用域	247
10.5持久性	254
10.6绑定时间	255
10.7数据类型和控制结构之间的关系	257
10.8每个变量只有一个用途	258
第11章 变量名称的威力	263
11.1选择好名称的注意事项	263
11.2特定数据类型的命名	269
11.3命名规范的威力	275
11.4非正式的命名规范	276
11.5前缀的标准化	283
11.6创建可读的短名称	286
11.7变量名称避坑指南	289
第12章 基本数据类型	295
12.1一般的数字	296
12.2整型	297
12.3浮点型	299
12.4字符和字符串	302
12.5布尔变量	305
12.6枚举类型	307
12.7具名常量	312
12.8数组	314
12.9创建自定义类型(类型别名)	316
第13章 不常见的数据类型	323
13.1结构体	323
13.2指针	327
13.3全局数据	340
第Ⅳ部分语句
第14章 直线型代码的组织	353
14.1顺序攸关的语句	353
14.2顺序无关的语句	356
第15章 使用条件语句	361
15.1if语句	361
15.2case语句	367
第16章 控制循环	373
16.1选择循环类型	373
16.2控制循环	379
16.3轻松创建循环:由内而外 	391
16.4循环和数组的对应关系	393
第17章 不常见的控制结构	395
17.1子程序中的多个返回点	395
17.2递归	397
17.3goto语句	402
17.4众说纷纭,谈谈不常见的控制结构	413
第18章 表驱动法	417
18.1表驱动法使用总则	417
18.2直接访问表	419
18.3索引访问表	431
18.4阶梯访问表	433
18.5表查询的其他示例	436
第19章 常规控制问题	437
19.1布尔表达式	437
19.2复合语句(语句块)	448
19.3空语句	449
19.4驾驭深层嵌套	451
19.5编程基础:结构化编程	460
19.6控制结构与复杂度	462
第Ⅴ部分代码改进
第20章 软件质量概述	469
20.1软件质量的特性	469
20.2改进软件质量的技术	472
20.3质量保证技术的相对效能	475
20.4何时进行质量保证	479
20.5软件质量的普遍原理	479
第21章 协同构建	483
21.1协同开发实践概述	484
21.2结对编程	487
21.3正式审查	489
21.4其他类型的协同开发实践	496
第22章 开发人员测试	503
22.1开发者测试
对软件质量所起的作用	504
22.2开发人员测试的推荐方法	507
22.3一些测试技巧	509
22.4典型错误 	522
22.5测试支持工具	528
22.6改进测试	534
22.7维护测试记录 	535
第23章 调试	541
23.1调试问题概述	541
23.2发现缺陷	546
23.3修复缺陷	557
23.4调试中的心理因素	560
23.5那些显而易见和
不太明显的调试工具	563
第24章 重构	569
24.1软件演变的类型	570
24.2重构简介	571
24.3特定的重构	577
24.4安全重构	585
24.5重构策略	587
第25章 代码调优策略	591
25.1性能概述	592
25.2代码调优简介	595
25.3各式各样的臃肿和蜜糖	601
25.4度量	607
25.5迭代	608
25.6代码调优方法总结	609
第26章 代码调优技术	613
26.1逻辑	614
26.2循环	619
26.3数据变换	628
26.4表达式	633
26.5子程序	642
26.6用低级语言重新编码	643
26.7改得越多,越不会有大的改观	646
第Ⅵ部分系统化考虑
第27章 程序规模对构建的影响	651
27.1沟通和规模	651
27.2项目规模的范围	652
27.3项目规模对错误的影响	653
27.4项目规模对生产力的影响	655
27.5项目规模对开发活动的影响	656
第28章 管理构建	663
28.1鼓励良好的编码实践	664
28.2配置管理	666
28.3评估构建进度表	673
28.4度量	679
28.5以人为本,善待每一位程序员	683
28.6向上管理	689
第29章 集成	693
29.1集成方法的重要性	693
29.2集成的频率,阶段式还是增量式	695
29.3增量式集成策略	698
29.4每日构建和冒烟测试	707
第30章 编程工具	715
30.1设计工具	716
30.2源代码工具	716
30.3可执行码工具	721
30.4面向工具的环境	726
30.5自己动手写编程工具	726
30.6工具的幻境	728
第Ⅶ部分软件匠艺
第31章 代码的布局和风格	733
31.1基本理论	734
31.2布局技术	741
31.3布局风格	743
31.4控制结构的布局	750
31.5单条语句的布局	757
31.6注释的布局	768
31.7子程序的布局	771
31.8类的布局	772
第32章 自文档代码	781
32.1外部文档	781
32.2编程风格即文档	782
32.3注释,还是不注释	785
32.4高效注释的关键	788
32.5注释的技术	795
32.6IEEE标准	815
第33章 个人性格	821
33.1个人性格与本书主题有关	822
33.2聪明与谦卑	823
33.3好奇心	824
33.4理性诚实	827
33.5沟通与合作	830
33.6创造力与规范	830
33.7懒惰	831
33.8没有想象中那么重要的性格因素	832
33.9习惯	833
第34章 关于软件匠艺	837
34.1征服复杂性	837
34.2优选开发过程	839
34.3编写程序时,先考虑人,
再考虑机器	840
34.4深入语言去编程,
而不是用语言来编程	842
34.5借助于规范来保持专注	843
34.6面向问题域编程	844
34.7 当心落石	846
34.8迭代,迭代,迭代,
重要的事情说三遍	848
34.9警惕编程中的执念	849
试验	851
第35章 更多信息来源	853
35.1与软件构建相关的信息	853
35.2软件构建之外的话题	854
35.3出版物	856
35.4软件开发者的阅读计划	857
35.5加入专业组织	859
参考文献	861

《真名实姓:弗诺·文奇的科幻世界与现代计算机网络的发展》

这是一部影响横跨一个时代的科幻经典,附带九位重量级人物的深度解读,讲述硬科幻大师弗诺·文奇与互联网界顶尖人物之间的跨界对话。1981年首次出版时便入围雨果奖和星云奖,成为科幻圈与科技界之间的桥梁,揭示了从互联网的萌芽到《神经漫游者》所引发的变革全貌。刘慈欣高度评价这部著作,认为它是对计算机技术所带来...

查看详情 →

《从零开始做运营》

运营是什么?怎样做运营?产品和运营是什么关系?我是否适合从事互联网运营?为什么我做的运营活动收效甚微? 在互联网大热的今天,互联网运营成为一个越来越重要的岗位,事关网站、产品的发展与存亡。很多年轻人带着对互联网的热情投身到这个行业,却发现自己对这个行业所知甚少,对互联网运营更加陌生,甚至有一些有志于...

查看详情 →

《天才与算法:人脑与AI的数学思维》

★这是兼具美英两国科学院院士称号的马库斯·杜·索托伊先生的杰出之作。 ★我们将进入一个由算法主导的时代,人工智能将在互联网、绘画、音乐与写作等领域全面挑战人类的创造力与想象力。 ★作者通过数学思维解读算法,帮助人们理解创造力的本质,推动人类与机器共存的美好未来成为可能。

查看详情 →

《哥德尔、艾舍尔、巴赫》

集异璧-GEB,是数学家哥德尔、版画家艾舍尔、音乐家巴赫三个名字的前缀。《哥德尔、艾舍尔、巴赫书:集异璧之大成》是在英语世界中有极高评价的科普著作,曾获得普利策非小说奖。它通过对哥德尔的数理逻辑,艾舍尔的版画和巴赫的音乐三者的综合阐述,引人入胜地介绍了数理逻辑 学、可计算理 论、人工智能学、语言学、...

查看详情 →