演进式架构
Neal Ford, Rebecca Parsons, Patrick Kua
周训杰 译
出版时间:2019年08月
页数:140
企业架构师不能再依赖静态计划了。软件开发体系在持续变化,新的工具、框架、技术和范式不断涌现。这给脆弱的系统带来了挑战,但也提供了更好的解决方案。近年来,核心软件工程实践中的快速变化让我们重新思考如何更改架构,使其与时俱进。本书结合相关实践,给出了让架构适应变化的新思路。
构建演进式架构主要涉及3个方面:适用度函数、增量变更和适当的耦合。ThoughtWorks的3位专家各讲一个方面,然后综述如何构建支持持续变更的架构。
● 适应度函数:架构呈现或前进的目标
● 增量变更:在开发和运维中实现渐进改变
● 架构耦合:确定适当的架构耦合以支持无瑕变更
● 演进式数据:随时间推移按要求和架构转变演进数据库
● 构建可演进的架构:结合以上各方面构建演进式架构
● 实践演进式架构:助你起步的实践指南
  1. 序 
  2. 前言 
  3. 第1章. 软件架构 
  4. 1.1 演进式架构 
  5. 1.1.1 一切都在变化,如何才能长期规划 
  6. 1.1.2 完成架构构建后,如何防止它逐渐退化 
  7. 1.2 增量变更 
  8. 1.3 引导性变更
  9. 1.4 多个架构维度 
  10. 1.5 康威定律
  11. 1.6 为何演进 
  12. 1.7 小结 
  13. 第 2章 适应度函数 
  14. 2.1 什么是适应度函数 
  15. 2.2 适应度函数分类 
  16. 2.2.1 原子适应度函数与整体适应度函数 
  17. 2.2.2 触发式适应度函数与持续式适应度函数 
  18. 2.2.3 静态适应度函数与动态适应度函数 
  19. 2.2.4 自动适应度函数与手动适应度函数 
  20. 2.2.5 临时适应度函数 
  21. 2.2.6 预设式高于应急式 
  22. 2.2.7 针对特定领域的适应度函数 
  23. 2.3 尽早确定适应度函数 
  24. 2.4 审查适应度函数 
  25. 第3章 实施增量变更 
  26. 3.1 构件 
  27. 3.1.1 可测试性 
  28. 3.1.2 部署流水线 
  29. 3.1.3 组合不同类型的适应度函数 
  30. 3.1.4 案例研究:在每天部署60次的情况下重建架构 
  31. 3.1.5 目标冲突 
  32. 3.1.6 案例研究:为PenultimateWidgets的发票服务添加适应度函数 
  33. 3.2 假设驱动开发和数据驱动开发 
  34. 3.3 案例研究:移植什么 
  35. 第4章 架构耦合 
  36. 4.1 模块化 
  37. 4.2 架构的量子和粒度 
  38. 4.3 不同类型架构的演进能力 
  39. 4.3.1 大泥团架构 
  40. 4.3.2 单体架构 
  41. 4.3.3 事件驱动架构 
  42. 4.3.4 服务导向架构 
  43. 4.3.5 “无服务”架构 
  44. 4.4 控制架构量子大小 
  45. 4.5 案例分析:防止组件循环依赖 
  46. 第5章 演进式数据 
  47. 5.1 演进式数据库设计 
  48. 5.1.1 数据库模式演进 
  49. 5.1.2 共享数据库集成 
  50. 5.2 不当的数据耦合 
  51. 5.2.1 二阶段提交事务 
  52. 5.2.2 数据的年龄和质量 
  53. 5.3 案例研究:PenultimateWidgets的路由演进 
  54. 第6章 构建可演进的架构 
  55. 6.1 演进机制 
  56. 6.1.1 识别受演进影响的架构维度 
  57. 6.1.2 为每个维度定义适应度函数 
  58. 6.1.3 使用部署流水线自动化适应度函数 
  59. 6.2 全新的项目 
  60. 6.3 改良现有架构 
  61. 6.3.1 适当的耦合和内聚 
  62. 6.3.2 工程实践 
  63. 6.3.3 适应度函数 
  64. 6.3.4 关于商业成品软件 
  65. 6.4 架构迁移 
  66. 6.4.1 迁移步骤 
  67. 6.4.2 演进模块间的交互 
  68. 6.5 演进式架构构建指南 
  69. 6.5.1 去除不必要的可变性 
  70. 6.5.2 让决策可逆 
  71. 6.5.3 演进优于预测 
  72. 6.5.4 构建防腐层 
  73. 6.5.5 案例分析:服务模板 
  74. 6.5.6 构建可牺牲架构 
  75. 6.5.7 应对外部变化
  76. 6.5.8 更新库与更新框架 
  77. 6.5.9 持续交付优于快照 
  78. 6.5.10 服务内部版本化 
  79. 6.6 案例分析:PenultimateWidgets的评分服务演进 
  80. 第7章 演进式架构的陷阱和反模式 
  81. 7.1 技术架构 
  82. 7.1.1 反模式:供应商为王 
  83. 7.1.2 陷阱:抽象泄漏 
  84. 7.1.3 反模式:最后10%的陷阱 
  85. 7.1.4 反模式:代码复用和滥用 
  86. 7.1.5 案例研究:PenultimateWidgets中的复用 
  87. 7.1.6 陷阱:简历驱动开发 
  88. 7.2 增量变更 
  89. 7.2.1 反模式:管理不当 
  90. 7.2.2 案例研究:PenultimateWidgets的“金发姑娘”管理 
  91. 7.2.3 陷阱:发布过慢 
  92. 7.3 业务问题 
  93. 7.3.1 陷阱:产品定制 
  94. 7.3.2 反模式:报表 
  95. 7.3.3 陷阱:规划视野 
  96. 第8章 实践演进式架构 
  97. 8.1 组织因素 
  98. 8.1.1 全功能团队 
  99. 8.1.2 围绕业务能力组织团队 
  100. 8.1.3 产品高于项目 
  101. 8.1.4 应对外部变化 
  102. 8.1.5 团队成员间的连接数 
  103. 8.2 团队的耦合特征 
  104. 8.2.1 文化 
  105. 8.2.2 试验文化 
  106. 8.3 首席财务官和预算 
  107. 8.4 构建企业适应度函数 
  108. 8.5 从何开始 
  109. 8.5.1 容易实现的目标 
  110. 8.5.2 最高价值优先 
  111. 8.5.3 测试 
  112. 8.5.4 基础设施 
  113. 8.5.5 PenultimateWidgets的企业架构师 
  114. 8.6 演进式架构的未来 
  115. 8.6.1 基于AI的适应度函数 
  116. 8.6.2 生成式测试 
  117. 8.7 为什么(不)呢 
  118. 8.7.1 公司为何决定构建演进式架构 
  119. 8.7.2 案例分析:PenultimateWidgets选择性伸展 
  120. 8.7.3 企业为何选择不构建演进式架构 
  121. 8.7.4 说服他人 
  122. 8.7.5 案例分析:“咨询柔道” 
  123. 8.8 商业案例 
  124. 8.8.1 未来已来…… 
  125. 8.8.2 没有后顾之忧地快速前行 
  126. 8.8.3 风险更低 
  127. 8.8.4 新能力 
  128. 8.9 构建演进式架构 
书名:演进式架构
译者:周训杰 译
国内出版社:人民邮电出版社
出版时间:2019年08月
页数:140
书号:978-7-115-51617-6
原版书书名:Building Evolutionary Architectures
原版书出版商:O'Reilly Media
Neal Ford
 
作为一名软件架构师与意见领袖,Neal Ford供职于ThoughtWorks(一家专注于端到端软件开发与交付的跨国IT咨询公司)。在加入ThoughtWorks之前,Neal是The DSW Group, Ltd.的技术总监 ── 这是一家在美国还算有名的培训与软件开发公司。Neal毕业于乔治亚州立大学,他拥有计算机科学的学位,专攻语言与编译器;同时他还辅修数学,专攻统计分析。现在他是一名软件设计师和开发者,此外也编撰培训材料、杂志文章和视频演讲,他还是几本图书的作者,包括《Developing with Delphi:Object-Oriented Techniques》(由Prentice-Hall出版)、《Jbuilder 3 Unleashed》(由Sams出版)和《Art of Java Web Development》(由Manning出版)等。他曾担任2006和2007版《No Fluff, Just Stuff文选》(Pragmatic Bookshelf)的编辑和作者。他擅长的编程语言包括Java、C#/.NET、Ruby、Groovy、函数式语言、Scheme、Object Pascal、C++和C等。他的咨询工作主要针对大规模企业应用的设计和开发。Neal曾在美国和其他国家进行现场授课,客户包括军方和很多世界500强的企业。作为演讲者,他同样在全球享有盛名,曾在世界各地举办的各种大型开发者会议上发表超过600场演讲。如果有兴趣了解更多关于Neal的信息,请访问他的网站:http://www.nealford.com。他也希望得到读者的反馈,他的邮件地址是nford@ thoughtworks.com。
Neal Ford a is software architect and Meme Wrangler at ThoughtWorks, a global IT consultancy
with an exclusive focus on end-to-end software development and delivery. Before joining
ThoughtWorks, Neal was the chief technology officer at The DSW Group, Ltd., a nationally
recognized training and development firm. Neal has a degree in computer science, specializing
in languages and compilers, from Georgia State University and a minor in mathematics,
specializing in statistical analysis. He is also the designer and developer of applications,
instructional materials, magazine articles, video presentations, and author of the books
Developing with Delphi: Object-Oriented Techniques (Prentice-Hall), JBuilder 3 Unleashed
(Sams), and Art of Java Web Development (Manning). He was editor of and contributor to the
2006 and 2007 editions of the No Fluff, Just Stuff Anthology (Pragmatic Bookshelf). His
language proficiencies include Java, C#/.NET, Ruby, Groovy, functional languages, Scheme,
Object Pascal, C++, and C. His primary consulting focus is the design and construction of largescale
enterprise applications. Neal has taught on-site classes nationally and internationally to
the military and to many Fortune 500 companies. He is also an internationally acclaimed
speaker, having spoken at over 100 developer conferences worldwide, delivering more than
600 talks. If you have an insatiable curiosity about Neal, visit his web site at http://
www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.
 
 
Rebecca Parsons
 
丽贝卡·帕森斯(Rebecca Parsons)是ThoughtWorks CTO,在大规模分布式 对象应用开发和系统集成方面拥有丰富经验。
 
 
Patrick Kua
 
帕特里克·柯(Patrick Kua)是数字银行N26首席科学家,曾任ThoughtWorks 主任咨询师和技术主管,在敏捷和精益开发方面拥有丰富经验。
 
 
购买选项
定价:59.00元
书号:978-7-115-51617-6
出版社:人民邮电出版社