- ISBN:9787302583646
- 装帧:一般纯质纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:883
- 出版时间:2022-06-01
- 条形码:9787302583646 ; 978-7-302-58364-6
本书特色
史蒂夫·麦康奈尔(Steve McConnell)的《代码大全》是全球公认的编程*佳实用指南,十多年来一直帮助开发人员写出更好的软件。这本经典书籍包含行之有效的实践和数百个范例代码,充分展现了软件构建的艺术和科学。史蒂夫对学术界和日常商业实践进行了广泛的研究,从中萃取出精华,通过通俗易懂的表达方式和体例,形成了一套行之有效的技术、原理和实践体系,旨在帮助广大程序员以*快的速度、更少的时间、更少的预算,来写出质量更高、更优美的代码。 作为一本综合性强和实用性高的经典参考书,本书适合任何一个程序员阅读,无论经验水平、开发环境或项目规模如何,都可以从中得到启发,构建出高质量的代码,真正做到代码完成的境界。 透过本书,发现经得起时间考验的技巧和策略,从而帮助读者: & 实现大道至简和更有创新的设计 & 收获合作开发的好处 & 应用防御性编程技术来减少和清除错误 & 利用机会来以安全的方式重构或演化代码 & 使用适合具体项目的构建实践 & 快速有效地调试问题 & 尽早正确地解决关键的构建问题 & 质量内建贯穿于整个项目周期,无论开始、中间和结尾
内容简介
《代码大全2(纪念版)》作为名家经典著作,是一本完整的软件构建手册,涵盖软件构建过程中的所有细节。它从软件质量和编程思想等方面论述软件构建的各个主题,并详细论述主流的新技术、高屋建瓴的观点和通用的概念,还含有丰富而典型的程序示例。本书所论述的技术不仅填补了初级与中高级编程技术之间的空白,同时还为程序员提供了一个有关编程技巧的信息来源。 《代码大全2(纪念版)》对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生大有帮助。无论是什么背景的读者,都可以通过阅读和领会本书,在更短的时间内更轻松地写出更好、更简洁和更优雅的程序。
目录
第Ⅰ部分 奠定基础
第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.4 PPP 的替代方案 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.1 if 语句 361
15.2 case 语句 367
第16 章 控制循环 373
16.1 选择循环类型 373
16.2 控制循环 379
16.3 轻松创建循环:由内而外 391
16.4 循环和数组的对应关系 393
第17 章 不常见的控制结构 395
17.1 子程序中的多个返回点 395
17.2 递归 397
17.3 goto 语句 402
17.4 众说纷纭,谈谈不常见的控制结构 413
第18 章 表驱动法 417
18.1 表驱动法使用总则 417
18.2 直接访问表 419
18.3 索引访问表 431
18.4 阶梯访问表 433
18.5 表查询的其他示例 436
第Ⅴ部分 代码改进
第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
第19 章 常规控制问题 437
19.1 布尔表达式 437
19.2 复合语句( 语句块) 448
19.3 空语句 449
19.4 驾驭深层嵌套 451
19.5 编程基础:结构化编程 460
19.6 控制结构与复杂度 462
第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
作者简介
史蒂夫·麦康奈尔(Steve McConnell) 屡获殊荣的科技类畅销书作家,他的两部作品《代码大全》和《快速软件开发》被《软件开发》杂志授予卓越产品震撼大奖,他的书被翻译成30种语言,在全球范围内销量超过一百万册。 史蒂夫热衷于通过提高个人和团队的技能来提高软件组织的绩效。他是Construx Software公司的创始人兼首席执行官,该公司提供培训、咨询、辅导和免费资源,专注于更有效的软件开发实践。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0