Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Foreword 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
Unstructured monoliths Layered architecture Modular monoliths Microkernel
Event-Driven Architectures
Brokers Mediators
Service-Oriented Architectures
ESB-driven SOA Microservices Service-based architectures
“Serverless” Architectures
Controlling Quantum Size Case Study: Guarding Against Component Cycles
5. Evolutionary Data
Evolutionary Database Design
Evolving Schemas Shared Database Integration
Option 1: No integration points, no legacy data Option 2: Legacy data, but no integration points Option 3: Existing data and integration points
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?
Predictable versus evolvable Scale Advanced business capabilities Cycle time as a business metric Isolating architectural characteristics at the quantum level
Case Study: Selective Scale at PenultimateWidgets
Adaptation versus evolution
Why Would a Company Choose Not to Build an Evolutionary Architecture?
Can’t evolve a ball of mud Other architectural characteristics dominate Sacrificial architecture Planning on closing the business soon
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
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion