由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]出版社现代软件工程 如何高效构建软件
¥ ×1
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。
温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货)。
关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
|
|
本书探讨了软件工程的真正含义,汇集了一些重要的软件开发基本原则,将它们紧密结合成一个一致的模型,旨在帮助读者有效、快速地构建软件。全书共4个部分:第1部分探讨软件工程的真正含义,以及如何将工程的原则和原理应用到软件开发中;第2部分讲述运用科学思想优化软件开发过程的方法,包括迭代式、增量式工作,获得并利用快速、高质量的反馈,采用实验性和经验主义的科学方法;第3部分介绍管理软件复杂性的方法,深入探讨模块化、内聚力、关注点分离、信息隐藏和抽象、管理耦合等原则;第4部分介绍支持软件工程的工具,以及一些贯穿本书的软件开发理念,包括可测试性、可部署性、速度、控制变量、持续交付等。
序 ——特丽莎·吉(Trisha Gee),开发技术推广工程师和Java 拥护者
第 1部分 什么是软件工程?
第 1章 简单介绍 3
1.1 工程——科学的实际应用 3
1.2 软件工程的定义 4
1.3 重新定义“软件工程” 6
1.4 软件工程的诞生 7
1.5 范式转移 9
1.6 小结 10
第 2章 什么是工程? 11
2.1 生产不是我们的问题 12
2.2 设计工程,而非生产工程 12
2.3 工程学的初步定义 17
2.4 工程不等于代码 18
2.5 为什么工程很重要? 20
2.6 “工艺”的极限 20
2.7 精度和可伸缩性 21
2.8 管理复杂性 22
2.9 测量的可重复性和*性 23
2.10 工程、创造和工艺 25
2.11 为什么我们所做的不是软件工程 27
2.12 权衡 28
2.13 进步的错觉 28
2.14 从工艺到工程的旅程 29
2.15 只有工艺还不够 30
2.16 是时候反思了? 30
2.17 小结 32
第3章 工程方法的基本原理 33
3.1 变革的行业? 33
3.2 度量的重要性 35
3.3 应用稳定性和吞吐量 37
3.4 软件工程学科的基础 38
3.5 学习* 39
3.6 管理复杂性的* 40
3.7 小结 41
第 2部分 优化学习
第4章 迭代式工作 45
4.1 迭代式工作的实际优势 47
4.2 迭代作为防御性设计策略 49
4.3 计划的诱惑 51
4.4 迭代式工作的实用性 56
4.5 小结 58
第5章 反馈 59
5.1 反馈重要性的实例 60
5.2 编码中的反馈 63
5.3 集成中的反馈 64
5.4 设计中的反馈 66
5.5 架构中的反馈 68
5.6 倾向于早期反馈 70
5.7 产品设计中的反馈 71
5.8 组织和文化中的反馈 72
5.9 小结 74
第6章 增量主义 75
6.1 模块化的重要性 76
6.2 组织增量主义 77
6.3 增量主义工具 79
6.4 限制变更的影响 80
6.5 增量式设计 82
6.6 小结 84
第7章 经验主义 85
7.1 立足于现实 86
7.2 区分经验主义与实验性 87
7.3 “我知道那个bug!” 87
7.4 避免自我欺骗 89
7.5 创造符合我们论点的现实 90
7.6 以现实为指导 93
7.7 小结 94
第8章 实验性 95
8.1 “实验性”是什么意思? 96
8.2 反馈 97
8.3 假设 99
8.4 度量 100
8.5 控制变量 101
8.6 自动化测试作为实验 102
8.7 将测试的实验结果置于环境中 103
8.8 实验范围 105
8.9 小结 106
第3部分 优化管理复杂性
第9章 模块化 109
9.1 模块化的标志 111
9.2 低估*设计的重要性 111
9.3 可测试性的重要性 113
9.4 可测试性设计提高模块化 114
9.5 服务和模块化 120
9.6 可部署性和模块化 121
9.7 不同规模的模块化 123
9.8 人类系统中的模块化 124
9.9 小结 126
第 10章 内聚力 127
10.1 模块化和内聚力:设计的基础 127
10.2 内聚力的基本降低 128
10.3 上下文很重要 131
10.4 高性能软件 134
10.5 与耦合的联系 135
10.6 测试驱动开发推动高内聚力 136
10.7 如何实现内聚软件 136
10.8 内聚力差的代价 139
10.9 人类系统中的内聚力 140
10.10 小结 140
第 11章 关注点分离 141
11.1 依赖注入 145
11.2 分离本质复杂性和偶然复杂性 146
11.3 领域驱动设计的重要性 149
11.4 可测试性 151
11.5 端口和适配器 151
11.6 何时采用端口和适配器 154
11.7 什么是API 155
11.8 使用测试驱动开发推动关注点分离 156
11.9 小结 157
第 12章 信息隐藏和抽象 158
12.1 抽象或信息隐藏 158
12.2 是什么导致了“大泥球” 159
12.3 组织和文化问题 159
12.4 技术问题和设计问题 162
12.5 对过度设计的恐惧 165
12.6 通过测试改进抽象 168
12.7 抽象的力量 169
12.8 抽象泄漏 170
12.9 选择适当的抽象 172
12.10 问题领域的抽象 174
12.11 抽象偶然复杂性 175
12.12 隔离第三方系统和代码 178
12.13 总是倾向于隐藏信息 179
12.14 小结 180
第 13章 管理耦合 181
13.1 耦合的代价 181
13.2 扩展 182
13.3 微服务 183
13.4 解耦可能意味着更多的代码 185
13.5 松耦合不是*重要的类型 187
13.6 倾向于松耦合 188
13.7 这与关注点分离有何不同? 189
13.8 DRY 太过于简单化 190
13.9 异步作为松耦合的工具 192
13.10 松耦合设计 193
13.11 人类系统中的松耦合 194
13.12 小结 196
第4部分 支持软件工程的工具
第 14 章 工程学科的工具 199
14.1 什么是软件开发? 200
14.2 可测试性作为工具 202
14.3 测量点 205
14.4 实现可测试性的问题 205
14.5 如何提高可测试性 209
14.6 可部署性 210
14.7 速度 212
14.8 控制变量 213
14.9 持续交付 214
14.10 支持工程的通用工具 215
14.11 小结 216
第 15章 现代软件工程师 217
15.1 工程作为人类过程 219
15.2 数字化颠覆性组织 220
15.3 结果与机制 222
15.4 持久且普遍适用 224
15.5 工程学科的基础 227
15.6 小结 227
戴维·法利(David Farley)是持续交付的先驱、思想*,也是持续交付、DevOps、测试驱动开发和软件开发领域的*。
从现代计算的早期开始,戴维曾担任过程序员、软件工程师、系统架构师和成功团队的核心,他掌握了计算机和软件开发的基本原理,并形成了开创性的方法,改变了开发人员和团队的工作方式。他挑战了传统的思维方式,带领团队开发了世界top级的软件。
戴维是获Jolt大奖的《持续交付:发布可靠软件的系统方法》一书的作者之一,是一位受欢迎的会议演讲者,并在YouTube上运营着广受欢迎的“持续交付”频道,主题是软件工程。他建立了世界上速度快的金融交易所之一,是行为驱动开发的先驱,是《反应式宣言》的作者之一,并凭借LMAX Disruptor获得了杜克开源软件奖。
戴维热衷于通过咨询、YouTube 频道和培训课程分享他的专业知识,帮助世界各地的开发团队改进软件的设计,提高软件的质量和可靠性。
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格