Building evolutionary architectures support constant change

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 archite...

Full description

Bibliographic Details
Main Author: Ford, Neal
Other Authors: Parsons, Rebecca, Kua, Patrick
Format: eBook
Language:English
Published: Sebastopol. CA O'Reilly Media 2017
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
LEADER 05200nmm a2200565 u 4500
001 EB001912101
003 EBX01000000000000001075003
005 00000000000000.0
007 cr|||||||||||||||||||||
008 210123 ||| eng
020 |a 9781491986356 
020 |a 1491986328 
020 |a 9781491986325 
020 |a 9781491986691 
020 |a 1491986697 
050 4 |a QA76.754 
100 1 |a Ford, Neal 
245 0 0 |a Building evolutionary architectures  |b support constant change  |c Neal Ford, Rebecca Parsons, and Patrick Kua 
260 |a Sebastopol. CA  |b O'Reilly Media  |c 2017 
300 |a xi, 174 pages  |b illustrations (some color) 
505 0 |a Build Sacrificial ArchitecturesMitigate External Change; Updating Libraries Versus Frameworks; Prefer Continuous Delivery to Snapshots; Version Services Internally; Case Study: Evolving PenultimateWidgets' Ratings; Chapter 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 
505 0 |a Triggered Versus ContinualStatic Versus Dynamic; Automated Versus Manual; Temporal; Intentional Over Emergent; Domain-specific; Identify Fitness Functions Early; Review Fitness Functions; Chapter 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?; Chapter 4. Architectural Coupling 
505 0 |a ModularityArchitectural 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; Chapter 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; Chapter 6. Building Evolvable Architectures; Mechanics 
505 0 |a 1. Identify Dimensions Affected by Evolution2. 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 
505 0 |a Cover; Copyright; Table of Contents; Foreword; Preface; Conventions Used in This Book; O'Reilly Safari; How to Contact Us; Additional Information; Acknowledgments; Chapter 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; Chapter 2. Fitness Functions; What is a Fitness Function?; Categories; Atomic Versus Holistic 
653 |a Technologie de l'information / Gestion 
653 |a Information technology / Management / fast 
653 |a Computerarchitectuur / gtt / (NL-LeOCL)078473489 
653 |a COMPUTERS / Programming / Algorithms / bisacsh 
653 |a Software architecture / http://id.loc.gov/authorities/subjects/sh2004001071 
653 |a Software / gtt / (NL-LeOCL)078669529 
653 |a Software architecture / fast 
653 |a Architecture logicielle 
653 |a Information technology / Management / http://id.loc.gov/authorities/subjects/sh2008006980 
700 1 |a Parsons, Rebecca 
700 1 |a Kua, Patrick 
041 0 7 |a eng  |2 ISO 639-2 
989 |b OREILLY  |a O'Reilly 
500 |a Includes index 
776 |z 1491986697 
776 |z 9781491986325 
776 |z 9781491986363 
776 |z 9781491986691 
776 |z 1491986360 
776 |z 1491986328 
776 |z 1491986336 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781491986356/?ar  |x Verlag  |3 Volltext 
082 0 |a 658 
082 0 |a 005.1 
520 |a 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