| 优秀商家推荐 |
您需要的书(代码大全(第二版)(两届Software Jolt Award震撼大奖得主!)),在这里能买到! |
|
| 经销商 |
简介 |
网友评级 |
售 价 |
付款方式 |
去看看 |
订 购 |
 |
中国最大的网上书店
(服务好,特别推荐) |
五星级 |
¥73.4 |
网上支付/货到付款
银行电汇/邮局汇款 |
 |
 |
|
 |
中国最大的网上商城
(便宜,方便,快捷) |
五星级 |
¥73.4 |
网上支付/货到付款
银行电汇/邮局汇款 |
 |
 |
|
 |
中国最大的专业书店
(便宜,方便,快捷) |
五星级 |
¥98 |
网上支付/货到付款
银行电汇/邮局汇款 |
 |
 |
|
|
|
| 商家推荐 |
没有热点图书
 |
 |
| 最大的网上商城 |
最大的网上书店 |
 |
 |
| 最大的专业书店 |
最大的专业书店 |
|
|
|
|
《代码大全(第二版)(两届Software Jolt Award震撼大奖得主!)》的内容简要介绍.......
代码大全(第二版)是著名IT畅销书作者Steve McConnell十一年前的经典著作的全新演绎:第二版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。本书中所论述的技术不仅填补 了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论你是什么背景,阅读本书都会让你在更短的时间内、更容易地写出更好的程序。
|
特别
推荐 |
 |
“当当网”--中国最大的网上书店,由国际金融集团投资1999年北京成立。
“B2C网上购物”第一名;中国互联网产业品牌50强;方便快捷货到付款! |
进店购买 |
|
|
|
《代码大全(第二版)(两届Software Jolt Award震撼大奖得主!)》的图书目录......
前言<br>鸣谢<br>核对表目录<br>表目录<br>图目录<br>第1部分 打好基础<br> 第1章 欢迎进入软件构建的世界 <br> 1.1 什么是软件构建 <br> 1.2 软件构建为何如此重要 <br> 1.3 如何阅读本书 <br> 关键点 <br> 第2章 用隐喻来更充分地理解软件开发<br> 2.1 隐喻的重要性<br> 2.2 如何使用软件隐喻<br> 2.3 常见的软件隐喻<br> 软件中的书法:写作代码<br> 软件的耕作法:培植系统<br> 软件的牡蛎养殖观点:系统生长<br> 软件构建:建造软件<br> 应用软件技术:智慧工具箱<br> 组合各个隐喻<br> 更多资源<br> 关键点<br> 第3章 三思而后行:前期准备 <br> 3.1 前期准备的重要性<br> 前期准备适用于现代软件项目吗<br> 准备不周全的诱因<br> 关于开始构建之前要做前期准备的绝对有力且简明的论据<br> 3.2 辨明你所从事的软件的类型<br> 迭代开发法对前期准备的影响<br> 在序列式开发法和迭代式开发法之间做出选择<br> 3.3 问题定义的先决条件<br> 3.4 需求的先决条件<br> 为什么要有正式的需求<br> 稳定需求的神话<br> 在构建期间处理需求变更<br> 3.5 架构的先决条件<br> 架构的典型组成部分<br> 3.6 花费在前期准备上的时间长度<br> 更多资源<br> 关键点<br> 第4章 关键的“构建”决策<br> 4.1 选择编程语言<br> 语言描述<br> 4.2 编程约定<br> 4.3 你在技术浪潮中的位置<br> “深入一种语言去编程”的例子<br> 4.4 选择主要的构建实践方法<br> 关键点<br>第2部分 创建高质量的代码<br> 第5章 软件构建中的设计<br> 5.1 设计中的挑战 <br> 设计是一个险恶的问题 <br> 设计是个了无章法的过程(即使它能得出清爽的成果) <br> 设计就是确定取舍和调整顺序的过程 <br> 设计受到诸多限制 <br> 设计是不确定的 <br> 设计是一个启发式过程 <br> 设计是自然而然形成的 <br> 5.2 关键的设计概念 <br> 软件的首要技术任务:管理复杂度 <br> 理想的设计特征 <br> 设计的层次 <br> 5.3 设计构造块:启发式方法 <br> 寻找现实世界中的对象 <br> 形成一致的抽象 <br> 封装实现细节 <br> 当继承能简化设计时就继承 <br> 隐藏秘密(信息隐藏) <br> 找出容易改变的区域 <br> 保持松散耦合 <br> 查阅常用的设计模式 <br> 其他的启发式方法 <br> 关于设计启发的总结***** <br> 使用启发式方法的原则 <br> 5.4 设计实践 <br> 迭代 <br> 分而治之 <br> 自上而下和自下而上的设计方法 <br> 建立试验性原型 <br> 合作设计 <br> 要做多少设计才够? <br> 记录你的设计成果 <br> 5.5 对流行的设计方法的评论 <br> 更多资源 <br> 软件设计,一般性问题 <br> 软件设计理论 <br> 设计模式 <br> 广义的设计 <br> 标准 <br> 关键点 <br> 第6章 可以工作的类<br> 6.1 类的基础:抽象数据类型<br> 需要用到ADT的例子<br> 使用ADT的益处<br> 更多的ADT示例<br> 在非面向对象环境中用ADT处理多份数据实例<br> ADT和类<br> 6.2 良好的类接口<br> 好的抽象<br> 良好的封装<br> 6.3 有关设计和实现的问题<br> 包含(“有一个……”的关系)<br> 继承(“是一个……”关系)<br> 成员函数和数据成员<br> 构造函数<br> 6.4 创建类的原因<br> 应该避免的类<br> 总结:创建类的理由<br> 与具体编程语言相关的问题<br> 6.6 超越类:包<br> 更多资源<br> 关键点<br> 第7章 高质量的子程序 <br> 7.1 创建子程序的正当理由<br> 似乎过于简单而没必要写成子程序的操作<br> 总结:创建子程序的理由<br> 7.2 在子程序层上设计<br> 7.3 好的子程序名字<br> 7.4 子程序可以写多长<br> 7.5 如何使用子程序参数<br> 7.6 使用函数时要特别考虑的问题<br> 什么时候使用函数,什么时候使用过程<br> 设置函数的返回值<br> 7.7 宏子程序和内联子程序<br> 宏子程序在使用上的限制<br> 内联子程序<br> 关键点<br> 第8章 防范式编程<br> 8.1 保护程序免遭无效输入数据的破坏<br> 8.2 断言<br> 建立自己的断言机制<br> 使用断言的指导建议<br> 8.3 错误处理技术<br> 健壮性与正确性<br> 高层次设计对错误处理方式的影响<br> 8.4 异常<br> 8.5 隔离程序以免遭由错误造成的损害<br> 隔离区与断言的关系<br> 8.6 辅助调试代码<br> 不要自动地把产品版本的限制强加于开发版本之上<br> 尽早引入辅助调试的手段<br> 采用冒进式编程<br> 计划移除调试辅助代码<br> 8.7 确定在产品代码中该保留多少防范式代码<br> 8.8 防范式编程时保持防范<br> 其他资源<br> 关键点<br> 第9章 伪代码编程过程<br> 9.1 创建类和子程序的步骤概述 <br> 创建一个类的步骤 <br> 创建子程序的步骤 <br> 9.2 伪代码 <br> 9.3 通过伪代码编程过程创建子程序 <br> 设计子程序 <br> 编写子程序 <br> 检查代码 <br> 收尾工作 <br> 根据需要重复上述步骤 <br> 9.4 伪代码编程过程之外的其他方案 <br> 关键点<br>第3部分 变量 <br> 第10章 使用变量的一般事项<br> 10.1 数据认知<br> 数据认知测试<br> 有关数据类型的其他资源<br> 10.2 轻松掌握变量定义<br> 隐式声明<br> 10.3 变量初始化原则<br> 10.4 作用域<br> 使变量引用局部化<br> 尽可能缩短变量的“存活”时间<br> 减小作用域的一般原则<br> 有关缩小变量作用域的说明<br> 10.5 持续性<br> 10.6 绑定时间<br> 10.7 数据类型和控制结构之间的关系<br> 10.8 为变量指定单一用途<br> 关键点<br> 第11章 变量名的力量<br> 11.1 选择好变量名的注意事项<br> 最重要的命名注意事项<br> 以问题为导向<br> 最适当的名字长度<br> 变量名字的效果范围<br> 变量名字中的计算值限定词<br> 变量名字中的常用反义词<br> 11.2 为特定类型的数据命名<br> 为循环索引命名<br> 为状态变量命名<br> 为临时变量命名<br> 为布尔变量命名<br> 为枚举类型命名<br> 为常量命名<br> 11.3 命名规则的力量<br> 为什么要有规则?<br> 何时采用命名规则<br> 正式程度<br> 11.4 非正式命名规则<br> 语言无关规则的指导原则<br> 语言相关规则的指导原则<br> 混合语言编程的注意事项<br> 命名规则示例<br> 11.5 标准前缀<br> 用户自定义类型缩写<br> 语义前缀<br> 标准前缀的优点<br> 11.6 创建具备可读性的短名称<br> 一般的缩写指导原则<br> 语音缩写<br> 有关缩写的评论<br> 11.7 应该避免的名称<br> 关键点<br> 第12章 基本数据类型 <br> 12.1 使用数的普遍规则<br> 12.2 整数<br> 12.3 浮点数<br> 12.4 字符和字符串<br> C中的字符串<br> 12.5 布尔变量<br> 12.6 枚举类型<br> 如果你的语言里没有枚举类型<br> 12.7 命名常量<br> 12.8 数组<br> 12.9 创建你自己的类型(类型别名)<br> 为什么创建自己的类型的示例是用Pascal和Ada写的?<br> 创建自定义数据类型的指导原则<br> 关键点<br> 第13章 不常见的数据类型<br> 13.1 结构<br> 13.2 指针<br> 用来理解指针的例子<br> 使用指针的一般技巧<br> C++指针<br> C指针<br> 13.3 全局数据<br> 与全局数据有关的常见问题<br> 使用全局数据的理由<br> 只有万不得已时才使用全局数据<br> 用访问子程序来取代全局数据<br> 如何降低使用全局数据的风险<br> 其他资源<br> 关键点<br>第4部分 语句<br> 第14章 组织直线型代码<br> 14.1 必须有明确顺序的语句<br> 14.2 顺序无关的语句<br> 使代码易于自上而下的阅读<br> 把相关的语句组织在一起<br> 关键点<br> 第15章 使用条件语句<br> 15.1 if语句<br> 简单if-then语句<br> if-then-else语句串<br> 15.2 case语句<br> 为case选择最有效的排序<br> 使用case语句的提示<br> 关键点<br> 第16章 控制循环<br> 16.1 选择循环的种类<br> 什么时候使用while循环<br> 什么时候用带退出的循环<br> 何时使用for循环<br> 何时使用foreach循环<br> 16.2 循环控制<br> 进入循环<br> 处理好循环体<br> 退出循环<br> 检查端点<br> 使用循环变量<br> 循环应该有多长<br> 16.3 轻松创建循环——由内而外<br> 16.4 循环和数组的关系<br> 关键点<br> 第17章 不常见的控制结构<br> 17.1 子程序中的多个返回<br> 17.2 递归<br> 递归的例子<br> 使用递归的技巧<br> 17.3 goto<br> 反对goto的论点<br> 支持goto的观点<br> 关于goto的虚假辩论<br> 错误处理和goto<br> goto和在else子句中的共享代码<br> goto使用原则总结<br> 17.4 对不常见控制结构的看法<br> 其他资源<br> 关键点<br> 第18章 表驱动方法 <br> 18.1 表驱动方法使用总则<br> 使用表驱动方法的两个问题<br> 18.2 直接访问表<br> 示例:一个月中的天数(Days-in-Month)<br> 示例:保险费率<br> 例子:灵活的消息格式(Flexible-Message-Format)<br> 构造查询键值<br> 18.3 索引表访问(Indexed Access Tables)<br> 18.4 阶梯访问表<br> 18.5 表查询的其他示例<br> 关键点<br> 第19章 一般控制问题<br> 19.1 布尔表达式<br> 用true和false做布尔判断<br> 简化复杂的表达式<br> 编写肯定形式的布尔表达式<br> 用括号使布尔表达式更清晰<br> 理解布尔表达式是如何求值的<br> 按照数轴的顺序编写数值表达式<br> 与0比较的指导原则<br> 布尔表达式的常见问题<br> 19.2 复合语句(块)<br> 19.3 空语句<br> 19.4 驯服危险的深层嵌套<br> 对减少嵌套层次的技术的总结<br> 19.5 编程基础:结构化编程<br> 结构化编程的三个组成部分<br> 19.6 控制结构与复杂度<br> 复杂度的重要性<br> 降低复杂度的一般原则<br> 其它类型的复杂度<br> 关键点<br>第5部分 代码改善<br> 第20章 软件质量概述<br> 20.1 软件质量的特性<br> 20.2 改善软件质量的技术<br> 开发过程<br> 设置目标<br> 20.3 不同质量保障技术的相对效能<br> 缺陷检测率<br> 找出缺陷的成本<br> 修正缺陷的成本<br> 20.4 什么时候进行质量保证工作<br> 20.5 软件质量的普遍原理<br> 推荐读物<br> 相关标准<br> 关键点<br> 第21章 协同构造<br> 21.1 协同开发实践概要<br> 协同构造是其他质量保证技术的补充<br> 协同构造有利于传授公司文化以及编程专业知识<br> 集体所有权适用于所有形式的协同构造<br> 在构造前后都应保持协作<br> 21.2 结对编程<br> 成功运用结对编程的关键<br> 结对编程的好处<br> 21.3 正式检查<br> 你期望检查能够带来什么结果<br> 检查中的人员角色<br> 检查的一般步骤<br> 检查中的自尊心<br> 检查和代码大全<br> 检查总结<br> 21.4 其他类型的协同开发实践<br> 走查<br> 代码阅读<br> 大型演示<br> 协同构造技术的比较<br> 参考资料<br> 结对编程<br> 检查<br> 相关标准<br> 关键点<br> 第22章 开发者测试<br> 22.1 开发者测试在软件质量中的角色.. 500<br> 构造中测试<br> 22.2 推荐的开发者测试方法<br> 先测试还是后测试<br> 开发者测试的局限性<br> 22.3 测试技巧锦囊<br> 不完整的测试<br> 结构化的基础测试<br> 数据流测试<br> 等价类划分<br> 猜测错误<br> 边界值分析<br> 几类坏数据<br> 几类好数据<br> 采用容易手工检查的测试用例<br> 22.4 典型错误<br> 哪些类包含最多的错误?<br> 错误的分类<br> 不完善的构造过程引发错误所占的比例<br> 你期望能发现多少错误<br> 测试本身的错误<br> 22.5 测试支持工具<br> 为测试各个类构造脚手架<br> Diff工具<br> 测试数据生成器<br> 覆盖率监视器<br> 数据记录器/日志记录器<br> 符号调试工具<br> 系统干扰器<br> 错误数据库<br> 22.6 改善测试过程<br> 有计划的测试<br> 重新测试(回归测试)<br> 自动化测试<br> 22.7 保留测试记录<br> 个人测试记录<br> 推荐读物<br> 测试<br> 测试脚手架<br> 测试优先的开发<br> 相关标准<br> 关键点<br> 第23章 调 试<br> 23.1 调试概述<br> 调试在软件质量中所扮演的角色<br> 调试效率的巨大差异<br> 让你有所收获的缺陷<br> 一种效率低下的调试方法<br> 23.2 寻找缺陷<br> 科学的调试方法<br> 寻找缺陷的一些小建议<br> 语法错误<br> 23.3 修正缺陷<br> 23.4 调试中的心理因素<br> 心理取向如何导致调试时的盲目<br> “心理距离”在调试中的作用<br> 23.5 调试工具——明显的和不那么明显的.. 557<br> 源代码比较工具<br> 编译器的警告消息<br> 扩展的语法和逻辑检查<br> 执行性能分析器<br> 测试框架<br> 调试器<br> 其它资源<br> 关键点<br> 第24章 重构<br> 24.1 软件进化的类型<br> 软件进化的哲学<br> 24.2 重构简介<br> 重构的理由<br> 拒绝重构的理由<br> 24.3 特定的重构<br> 数据级的重构<br> 语句级的重构<br> 子程序级重构<br> 类实现的重构<br> 类接口的重构<br> 系统级重构<br> 24.4 安全的重构<br> 不宜重构的情况<br> 24.5 重构策略<br> 推荐读物<br> 关键点<br> 第25章 代码调整策略<br> 25.1 性能概述<br> 质量特性和性能<br> 性能和代码调整<br> 25.2 代码调整简介<br> Pareto法则<br> 一些无稽之谈<br> 何时调整代码<br> 编译器优化<br> 25.3 蜜糖和哥斯拉<br> 常见的低效率之源<br> 常见操作的相对效率<br> 25.4 性能测量<br> 性能测量应当精确<br> 25.5 反复调整<br> 25.6 代码调整方法总结<br> 推荐读物<br> 算法和数据类型<br> 关键点<br> 第26章 代码调整方法<br> 26.1 逻辑<br> 在知道答案后停止判断<br> 按照出现频率来调整判断顺序<br> 相似逻辑结构之间的性能比较<br> 用查找表替代复杂表达式<br> 使用惰性求值<br> 26.2 循环<br> 将判断外提(Unswitching)<br> 合并循环<br> 展开<br> 尽可能减少再循环内部做的工作<br> 哨兵值<br> 把最忙的循环放在最内层<br> 削减强度<br> 26.3 数据变换<br> 使用整型数而不是浮点数<br> 数组维度尽可能少<br> 尽可能减少数组引用<br> 使用辅助索引<br> 使用缓存机制<br> 26.4 表达式<br> 利用代数恒等式<br> 削弱运算强度<br> 编译时初始化<br> 小心系统函数<br> 使用正确的常量类型<br> 预先算出结果<br> 删除公共子表达式<br> 26.5 子程序<br> 将函数重写为内联<br> 26.6 用低级语言重写代码<br> 26.7 变得越多,事情反而更没变<br> 推荐读物<br> 关键点<br>第6部分 系统考虑<br> 第27章 程序规模对“构筑”的影响<br> 27.1 交流和规模<br> 27.2 项目规模的范围<br> 27.3 项目规模对错误的影响<br> 27.4 项目规模对生产率的影响<br> 27.5 项目规模对开发活动的影响<br> 活动比例和项目规模<br> 程序、产品、系统和系统产品<br> 方法论和规模<br> 额外资源<br> 关键点<br> 第28章 管理“构筑”<br> 28.1 鼓励良好的编码实践<br> 设定标准的考虑事项<br> 鼓励良好的编码实践的技术<br> 本书的角色<br> 28.2 配置管理<br> 什么是配置管理?<br> 需求变更和设计变更<br> 软件代码变更<br> 工具版本<br> 机器配置<br> 备份计划<br> 有关配置管理的额外资源<br> 28.3 评估“构筑”进度表<br> 评估的方法<br> 评估“构筑”的工作量<br> 对进度的影响<br> 评估与控制<br> 如果你落后了该怎么办<br> 有关软件评估的额外资源<br> 28.4 度量<br> 有关软件度量的额外资源<br> 28.5 把程序员当人看<br> 程序员们怎样花费时间?<br> 性能差异与质量差异<br> 信仰问题<br> 物理环境<br> 有关“把程序员当人看”的额外资源<br> 28.6 管理你的管理者<br> 有关管理构造的额外资源<br> 相关标准<br> 关键点<br> 第29章 集成<br> 29.1 集成方式的重要性<br> 29.2 集成频率——阶段式集成还是增量集成<br> 阶段式集成<br> 增量集成<br> 增量集成的益处<br> 29.3 增量集成的策略<br> 自顶向下集成<br> 自底向上集成<br> 三明治集成<br> 风险导向的集成<br> 功能导向的集成<br> T-型集成<br> 集成方法小结<br> 29.4 Daily Build与冒烟测试<br> 哪种项目能用daily build过程?<br> 持续集成<br> 额外资源<br> 关键点<br> 第30章 编程工具<br> 30.1 设计工具<br> 30.2 源代码工具<br> 编辑<br> 分析代码质量<br> 重构源代码<br> Version Control<br> 数据词典<br> 30.3 可执行码工具<br> 产生目标码<br> 除错<br> 测试<br> 代码微调<br> 30.4 工具导向的环境<br> 30.5 打造你自己的编程工具<br> 项目特有的工具<br> 脚本<br> 30.6 工具幻境<br> 额外资源<br> 关键点<br>第7部分 软件工艺<br> 第31章 布局与风格<br> 31.1 基本原则<br> 布局的极端情况<br> 格式化的基本原理<br> 人和计算机对程序的解读<br> 好布局有什么用?<br> 把布局作为一种信仰<br> 良好布局的目标<br> 31.2 布局技术<br> 空白区<br> 括号<br> 31.3 布局风格<br> 纯块结构<br> 模仿纯块结构<br> 使用begin - end对(大括号)指定块边界<br> 行尾布局<br> 哪种风格最优?<br> 31.4 控制结构的布局<br> 格式化控制结构块的要点<br> 其他考虑<br> 31.5 单条语句的布局<br> 语句长度<br> 用空格使语句显得清楚<br> 格式化后续行<br> 每行仅写一条语句<br> 数据声明的布局<br> 31.6 注释的布局<br> 31.7 子程序的布局<br> 31.8 类的布局<br> 类接口的布局<br> 类实现的布局<br> 文件和程序布局<br> 更多资源<br> 关键点<br> 第32章 自说明代码 <br> 32.1 外部文档<br> 32.2 编程风格作文档<br> 32.3 注释或不注释<br> 32.4 高效注释之关键<br> 注释种类<br> 高效注释<br> 最佳注释量<br> 32.5 注释技术<br> 注释单行<br> 注释代码段<br> 注释数据声明<br> 注释控制结构<br> 注释子程序<br> 注释类、文件和程序<br> 32.6 IEEE标准<br> 软件质量保证标准<br> 更多资源<br> 关键点<br> 第33章 个人性格<br> 33.1 个人性格是否和本书话题无关 <br> 33.2 聪明和谦虚 <br> 33.3 求知欲 <br> 33.4 诚实 <br> 33.5 交流与合作 <br> 33.6 创造力和纪律 <br> 33.7 偷懒 <br> 33.8 不像你想象中那样起作用的性格 <br> 矜持 <br> 经验 <br> 编程狂人 <br> 33.9 习惯 <br> 更多资源 <br> 关键点 <br> 第34章 软件开发艺术的有关问题 <br> 34.1 克服复杂性<br> 34.2 精选编程过程<br> 34.3 为人写程序,其次才是为机器<br> 34.4 以所用语言编程,但思路不受其约束.. 843<br> 34.5 借助规范集中注意力<br> 34.6 基于问题域编程<br> 将程序划分为不同层次的抽象<br> 34.7 “当心落石”<br> 34.8 反复,再反复<br> 34.9 不要顽固不化<br> 判断<br> 折中主义<br> 试验<br> 关键点<br> 第35章 何处有更多信息<br> 35.1 关于软件创建的信息<br> 35.2 创建之外的话题<br> 综述资料<br> 软件工程综览<br> 其他注释过的参考书目<br> 35.3 期刊<br> 初级程序员杂志<br> 高级程序员杂志<br> 专题出版物<br> 35.4 软件开发者的读书计划<br> 入门级<br> 熟练级<br> 精通级<br> 35.5 参加专业组织<br>参考文献<br>索引
|
|
|
|
|
《代码大全(第二版)(两届Software Jolt Award震撼大奖得主!)》的相关评论......
本书暂无评论~
|
|