出版社: O'Reilly Media
副标题: Support Constant Change
出版年: 2017-10-13
页数: 180
定价: USD 59.99
装帧: Paperback
ISBN: 9781491986363
内容简介 · · · · · ·
The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural char...
The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.
作者简介 · · · · · ·
尼尔·福特(Neal Ford)
是ThoughtWorks软件架构师、Meme Wrangler,曾任DSW集团CTO,是国际公认的软件开发与交付专家。
丽贝卡·帕森斯(Rebecca Parsons)
是ThoughtWorks CTO,在大规模分布式对象应用开发和系统集成方面拥有丰富经验。
帕特里卡·柯(Patrick Kua)
是数字银行N26首席科学家,曾任ThoughtWorks主任咨询师和技术主管,在敏捷和精益开发方面拥有丰富经验。
目录 · · · · · ·
Preface
Conventions Used in This Book
O’Reilly Safari
How to Contact Us
Additional Information
· · · · · · (更多)
Preface
Conventions Used in This Book
O’Reilly Safari
How to Contact Us
Additional Information
Acknowledgments
1. Software Architecture
Evolutionary Architecture
How Is Long-term Planning Possible When Everything Changes All the Time?
Once I’ve Built an Architecture, How Can I Prevent It from Gradually Degrading Over Time?
Incremental Change
Guided Change
Multiple Architectural Dimensions
Conway’s Law
Why Evolutionary?
Summary
2. Fitness Functions
What is a Fitness Function?
Categories
Atomic Versus Holistic
Triggered Versus Continual
Static Versus Dynamic
Automated Versus Manual
Temporal
Intentional Over Emergent
Domain-specific
Identify Fitness Functions Early
Review Fitness Functions
3. Engineering Incremental Change
Building Blocks
Testable
Deployment Pipelines
Combining Fitness Function Categories
Case Study: Architectural Restructuring while Deploying 60 Times/Day
Conflicting Goals
Case Study: Adding Fitness Functions to PenultimateWidgets’ Invoicing Service
Hypothesis- and Data-Driven Development
Case Study: What to Port?
4. Architectural Coupling
Modularity
Architectural Quanta and Granularity
Evolvability of Architectural Styles
Big Ball of Mud
Monoliths
Event-Driven Architectures
Service-Oriented Architectures
“Serverless” Architectures
Controlling Quantum Size
Case Study: Guarding Against Component Cycles
5. Evolutionary Data
Evolutionary Database Design
Evolving Schemas
Shared Database Integration
Inappropriate Data Coupling
Two-Phase Commit Transactions
Age and Quality of Data
Case Study: Evolving PenultimateWidgets’ Routing
6. Building Evolvable Architectures
Mechanics
1. Identify Dimensions Affected by Evolution
2. Define Fitness Function(s) for Each Dimension
3. Use Deployment Pipelines to Automate Fitness Functions
Greenfield Projects
Retrofitting Existing Architectures
Appropriate Coupling and Cohesion
Engineering Practices
Fitness Functions
COTS Implications
Migrating Architectures
Migration Steps
Evolving Module Interactions
Guidelines for Building Evolutionary Architectures
Remove Needless Variability
Make Decisions Reversible
Prefer Evolvable over Predictable
Build Anticorruption Layers
Case Study: Service Templates
Build Sacrificial Architectures
Mitigate External Change
Updating Libraries Versus Frameworks
Prefer Continuous Delivery to Snapshots
Version Services Internally
Case Study: Evolving PenultimateWidgets’ Ratings
7. Evolutionary Architecture Pitfalls and Antipatterns
Technical Architecture
Antipattern: Vendor King
Pitfall: Leaky Abstractions
Antipattern: Last 10% Trap
Antipattern: Code Reuse Abuse
Case Study: Reuse at PenultimateWidgets
Pitfall: Resume-Driven Development
Incremental Change
Antipattern: Inappropriate Governance
Case Study: Goldilocks Governance at PenultimateWidgets
Pitfall: Lack of Speed to Release
Business Concerns
Pitfall: Product Customization
Antipattern: Reporting
Pitfall: Planning Horizons
8. Putting Evolutionary Architecture into Practice
Organizational Factors
Cross-Functional Teams
Organized Around Business Capabilities
Product over Project
Dealing with External Change
Connections Between Team Members
Team Coupling Characteristics
Culture
Culture of Experimentation
CFO and Budgeting
Building Enterprise Fitness Functions
Case Study: PenultimateWidgets as a Platform
Where Do You Start?
Low-Hanging Fruit
Highest-Value
Testing
Infrastructure
Case Study: Enterprise Architecture at PenultimateWidgets
Future State?
Fitness Functions Using AI
Generative Testing
Why (or Why Not)?
Why Should a Company Decide to Build an Evolutionary Architecture?
Case Study: Selective Scale at PenultimateWidgets
Why Would a Company Choose Not to Build an Evolutionary Architecture?
Convincing Others
Case Study: Consulting Judo
The Business Case
“The Future Is Already Here…”
Moving Fast Without Breaking Things
Less Risk
New Capabilities
Building Evolutionary Architectures
Index
· · · · · · (收起)
喜欢读"Building Evolutionary Architectures"的人也喜欢 · · · · · ·
Building Evolutionary Architectures的书评 · · · · · · ( 全部 4 条 )
![](https://img3.doubanio.com/icon/u42142899-3.jpg)
事件万物都不是一成不变的,当然软件系统也不是
> 更多书评 4篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部3 )
-
人民邮电出版社 (2019)6.8分 127人读过
-
O'Reilly (2022)暂无评分 2人读过
以下书单推荐 · · · · · · ( 全部 )
- 码农的计算机 (西山)
- 数字化抓手----EA/企业架构生命周期管理 (小毛叔)
- Software Architecture Book References (吴上阿吉)
- 系统设计 (午夜狂奔)
- java (&)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有222人想读,手里有一本闲着?
订阅关于Building Evolutionary Architectures的评论:
feed: rss 2.0
0 有用 透明 2017-12-02 21:33:22
虽然是我司出品……但是……还是一般……
0 有用 wltan 2019-04-30 10:15:15
把软件架构方方面面的东西都讲到了,有开发经验的都能从书中找到吻合的地方
0 有用 诸葛村夫 2020-08-01 23:31:18
主要就两个点,一是搞好fitness functions(小到unit test,大到类似于Netflix的chaosmonkey系统),然后依靠CI/CD机制来保障 incremental change 的正确性,二是搞好系统的 coupling
0 有用 go_with_wind 2018-03-26 22:55:22
值得再读下中文版
0 有用 al_lea 2018-03-31 05:03:56
忽悠的多了,就空洞;Rebecca奶奶也胡来了
0 有用 诸葛村夫 2020-08-01 23:31:18
主要就两个点,一是搞好fitness functions(小到unit test,大到类似于Netflix的chaosmonkey系统),然后依靠CI/CD机制来保障 incremental change 的正确性,二是搞好系统的 coupling
0 有用 char 2020-01-13 07:50:58
Day 12 干货比较少,只学到一个新概念,fitness function #百日早起学习挑战#
0 有用 wltan 2019-04-30 10:15:15
把软件架构方方面面的东西都讲到了,有开发经验的都能从书中找到吻合的地方
0 有用 fankai 2019-04-14 19:38:24
挺不错的,既讲了架构,也讲了组织、业务和实践,虽然每个点都没有特别深入,但整体讲的很全面又很有条理,感觉把之前看的很多内容都串起来了。核心的观点就是把演化性作为系统架构设计的一个维度来思考,通过fitness function只指引系统不断往好的方向演化
0 有用 Ecthelion 2018-10-17 04:24:47
这书挺适合大规模系统架构的architect新手的,提供了十分有益的high-level视角,日后不至于被各种细节淹没,跳不出来。当然,已经有了丰富经验的人读它,就会觉得太浅了。