暂无商品咨询信息 [发表商品咨询]
本书的主要内容有:理解代码是如何退化的,以及为什么一些退化是不可避免的。在重构之前,量化和评定你的代码状态。起草一个具有战略里程碑且精心设计的执行计划。赢得领导层的支持。建立和协调一个最z适合项目的团队。在团队内外进行高效沟通。正确使用重构的最z佳实践。
目录
前言 1
第一部分 概述
第1 章 重构 11
1.1 什么是重构? .12
1.2 什么是大规模重构? 14
1.3 你为什么要关心重构? .16
1.4 重构的好处 17
1.4.1 开发者的生产力 17
1.4.2 识别bug 19
1.5 重构的风险 19
1.5.1 严重的退步 20
1.5.2 挖掘出休眠的bug 20
1.5.3 范围蔓延 .20
1.5.4 不必要的复杂度 21
1.6 何时重构21
1.6.1 小范围 22
1.6.2 代码的复杂度明显地阻碍了开发 22
1.6.3 产品需求的转变 22
1.6.4 性能 23
1.6.5 使用新技术 23
1.7 何时不要重构 .24
1.7.1 为了好玩或出于无聊的原因 .24
1.7.2 因为你恰好路过 25
1.7.3 使代码更具可扩展性.26
1.7.4 当你没时间时 27
1.8 我们的第一个重构示例 .27
1.8.1 简化条件语句 29
1.8.2 提取魔法数字 31
1.8.3 提取自包含逻辑 32
第2 章 代码是如何退化的 .37
2.1 为什么理解代码退化很重要 38
2.2 需求的转变 39
2.2.1 可扩展性 .39
2.2.2 可访问性 .40
2.2.3 设备兼容性 40
2.2.4 环境改变 .41
2.2.5 外部依赖 .42
2.2.6 未使用的代码 42
2.2.7 产品需求变化 43
2.3 技术债 46
2.3.1 技术决策 .47
2.3.2 缺乏持续的整理 50
2.3.3 移动得太快 51
2.4 应用我们的知识 53
第二部分 规划
第3 章 测量我们的起点状态 .57
3.1 为什么测量重构的影响很难? 58
3.2 测量代码复杂性 59
3.2.1 哈尔斯特德(Halstead)度量 59
3.2.2 循环复杂度 62
3.2.3 NPath 复杂度 65
3.2.4 代码行数 .68
3.3 测试覆盖率指标 69
3.4 文档 .73
3.4.1 正式文档 .73
3.4.2 非正式文档 75
3.5 版本控制76
3.5.1 提交信息 .77
3.5.2 聚合提交 .77
3.6 声誉 .79
3.7 构建完整的画面 82
第4 章 起草计划 83
4.1 定义你的最终状态 84
4.1.1 旅途中 84
4.1.2 工作中 85
4.2 映射最短的距离 86
4.2.1 旅途中 86
4.2.2 工作中 87
4.3 确定战略中间里程碑 89
4.3.1 旅途中 89
4.3.2 工作中 90
4.4 选择推出策略 .94
4.4.1 明模式(Light)/ 暗模式(Dark) 95
4.4.2 Smart DNA 案例的推出 99
4.5 清理工件.100
4.6 在你的计划中引用指标 102
4.6.1 将目标指标延伸至中间里程碑 102
4.6.2 不同的里程碑指标 103
4.7 估算 104
4.8 与其他团队分享你的计划 .105
4.8.1 透明度 106
4.8.2 观点 .106
4.9 精细化计划 108
第5 章 获取支持 111
5.1 为什么你的经理没有上船 . 112
5.1.1 经理不编码 . 112
5.1.2 经理们的评估方式不同 . 113
5.1.3 管理者看到的风险 113
5.1.4 管理者需要协调 114
5.2 制定令人信服的策略 115
5.2.1 使用对话策略 . 117
5.2.2 构建对齐的“三明治” . 118
5.2.3 依赖证据 121
5.2.4 采取强硬手段 .122
5.3 认同塑造重构 124
第6 章 构建正确的团队 125
6.1 识别不同类型的专家 126
6.2 匹配制度.128
6.2.1 多行业专家 .129
6.2.2 重新审视活跃贡献者130
6.2.3 我们专家名单中的偏见 .130
6.3 重构团队的类型 .132
6.3.1 所有者 132
6.3.2 建议的方法 .134
6.3.3 清洁人员 134
6.4 招募动员.136
6.4.1 指标 .137
6.4.2 慷慨 .138
6.4.3 机会 .139
6.4.4 交换筹码 139
6.4.5 重复 .140
6.5 一些结果.141
6.5.1 现实的场景 .141
6.5.2 最坏的情况 .141
6.6 培养强大的团队 .142
第三部分 执行
第7 章 沟通 . 147
7.1 在你的团队内 148
7.1.1 站会 .150
7.1.2 每周同步 151
7.1.3 回顾会议 153
7.2 在你的团队外 154
7.2.1 开始项目时 .154
7.2.2 在项目执行期间 157
7.3 始终迭代.162
第8 章 执行策略 . 163
8.1 团队建设.163
8.1.1 结对编程 164
8.1.2 保持每个人的动力 166
8.2 保持记录.168
8.2.1 中期指标度量 .168
8.2.2 发现的漏洞 .169
8.2.3 清理项 170
8.2.4 记录超出范围的内容170
8.3 高效编程.171
8.3.1 原型 .171
8.3.2 保持事物小巧 .172
8.3.3 测试,测试,测试 173
8.3.4 提出“愚蠢”的问题173
8.4 结论 174
第9 章 让重构保持有效 175
9.1 推动支持.176
9.2 传授 177
9.2.1 主动传授 177
9.2.2 被动传授 180
9.3 强化 181
9.3.1 渐进式代码检查 181
9.3.2 代码分析工具 .182
9.3.3 门槛与护栏 .182
9.4 将改进融入企业文化 184
第四部分 用例
第10 章 案例研究:冗余数据库模式(Schemas) 189
10.1 Slack 101 .190
10.2 Slack 架构101 192
10.3 可扩展性问题 195
10.3.1 启动Slack 客户端 .196
10.3.2 文件可见性196
10.3.3 提及 197
10.4 合并表格 198
10.4.1 收集分散的查询 .199
10.4.2 制定迁移策略 202
10.4.3 量化我们的进展 .205
10.4.4 试图保持团队的动力 206
10.4.5 沟通我们的进展 .207
10.5 整理 209
10.6 经验教训 211
10.7 了解代码的历史 212
10.7.1 确保充分的测试覆盖率 213
10.7.2 保持团队的动力 .213
10.7.3 专注于战略里程碑 214
10.7.4 识别并依赖有意义的指标 .214
10.8 收获 215
第11 章 案例研究:迁移到新数据库 217
11.1 工作区分片数据 218
11.2 将channels_members 迁移到Vitess 219
11.2.1 分片方案 220
11.2.2 开发新模式 221
11.3 解决JOIN 操作中的纠缠问题 224
11.4 一个困难的推出 228
11.4.1 回填模式 229
11.4.2 暗模式 .230
11.4.3 明模式 .235
11.4.4 日落模式 237
11.5 整理 237
11.6 经验教训 239
11.6.1 设定现实的估算 .240
11.6.2 寻找你需要的团队成员 240
11.6.3 仔细规划范围 241
11.6.4 选择一个项目沟通的单一地点 241
11.6.5 设计一个周到的推出计划 .242
11.7 收获 243
基本信息 | |
---|---|
出版社 | 中国电力出版社 |
ISBN | 9787519886264 |
条码 | 9787519886264 |
编者 | [美]莫德 勒梅尔(Maude Lemaire) |
译者 | 徐栋栋 |
出版年月 | 2024-05-01 00:00:00.0 |
开本 | 16开 |
装帧 | 平装 |
页数 | 260 |
字数 | 341000 |
版次 | 1 |
印次 | 1 |
纸张 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]