超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

不再提示
关闭
欢迎光临中图网 请 | 注册

大规模重构

出版社:中国电力出版社出版时间:2024-05-01
开本: 16开 页数: 260
中 图 价:¥42.9(5.5折) 定价  ¥78.0 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

大规模重构 版权信息

大规模重构 本书特色

一句话推荐重获代码的控制权 编辑推荐对大型、复杂的代码库进行重大修改是一项艰巨的任务,除非你有合适的团队、工具和思维方式,否则几乎不可能成功。如果你的应用程序需要进行重大改造,但你又不确定以何种可持续的方式进行,那么这本书就是为你准备的。 软件工程师Maude Lemaire将带领你从头到尾经历整个重构过程。你将了解她在Slack的关键发展时期是如何提高性能和重构的,并从这些经验中得到启发,书中利用两个案例研究来说明这些技术是如何在实际工作中产生影响的。本书将有助于你获得一种新的能力,使你更高效地进行重构。 专家推荐“在一个巨大的、不断变化的代码库中,保持生产力似乎是一个西西弗斯式的任务。本书将这一过程分解成一个个你可以立即应用的步骤。”——Cal HendersonSlack首席技术官 “我喜欢这本书中的案例研究。我希望我能把这本书送给过去的自己,帮助以前的我更好的规划大型迁移。书中有很多我需要去努力学习的经验。”——Julia Evans《Wizard Zines》的作者 深入浅出地介绍微服务架构发展历程、领域驱动设计、稳定性保证的常用手段、分布式事务的一致性方案。通过大量的案例探讨微服务落地方案,展示实现微服务架构的完整蓝图,并让读者了解如何借助微服务来增强和重构现有的遗留系统。

大规模重构 内容简介

本书的主要内容有:理解代码是如何退化的,以及为什么一些退化是不可避免的。在重构之前,量化和评定你的代码状态。起草一个具有战略里程碑且精心设计的执行计划。赢得领导层的支持。建立和协调一个*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
展开全部

大规模重构 作者简介

[美]莫德·勒梅尔(Maude Lemaire),是Slack的一名软件工程师,她的工作是提升产品性能,以支持一些世界上最大的组织。她的大部分时间都在进行人员管理、网络调用、重构复杂的代码块、整合冗余的数据库,以及为其他开发者构建工具。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服