Fundamentals of software architecture : an engineering approach
Autor Principal: | |
---|---|
Otros autores o Colaboradores: | |
Formato: | Libro |
Lengua: | inglés |
Datos de publicación: |
Sebastopol :
O'Reilly Media,
2020
|
Temas: | |
Acceso en línea: | Consultar en el Cátalogo |
Notas: | Incluye índice. |
Descripción Física: | xvii, 400 p. : il. |
ISBN: | 9781492043454 |
Tabla de Contenidos:
- Preface: Invalidating Axioms
- 1. Introduction
- Defining Software Architecture
- Expectations of an Architect
- Intersection of Architecture and…
- Laws of Software Architecture
- I. Foundations
- 2. Architectural Thinking
- Architecture Versus Design
- Technical Breadth
- Analyzing Trade-Offs
- Understanding Business Drivers
- Balancing Architecture and Hands-On Coding
- 3. Modularity
- Definition
- Measuring Modularity
- From Modules to Components
- 4. Architecture Characteristics Defined
- Architectural Characteristics (Partially) Listed
- Trade-Offs and Least Worst Architecture
- 5. Identifying Architectural Characteristics
- Extracting Architecture Characteristics from Domain Concerns
- Extracting Architecture Characteristics from Requirements
- Case Study: Silicon Sandwiches
- 6. Measuring and Governing Architecture Characteristics
- Measuring Architecture Characteristics
- Governance and Fitness Functions
- 7. Scope of Architecture Characteristics
- Coupling and Connascence
- Architectural Quanta and Granularity
- 8. Component-Based Thinking
- Component Scope
- Architect Role
- Developer Role
- Component Identification Flow
- Component Granularity
- Component Design
- Case Study: Going, Going, Gone: Discovering Components
- Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures
- II. Architecture Styles
- 9. Foundations
- Fundamental Patterns
- Monolithic Versus Distributed Architectures
- 10. Layered Architecture Style
- Topology
- Layers of Isolation
- Adding Layers
- Other Considerations
- Why Use This Architecture Style
- Architecture Characteristics Ratings
- 11. Pipeline Architecture Style
- Topology
- Example
- Architecture Characteristics Ratings
- 12. Microkernel Architecture Style
- Topology
- Registry
- Contracts
- Examples and Use Cases
- Architecture Characteristics Ratings
- 13. Service-Based Architecture Style
- Topology
- Topology Variants
- Service Design and Granularity
- Database Partitioning
- Example Architecture
- Architecture Characteristics Ratings
- When to Use This Architecture Style
- 14. Event-Driven Architecture Style
- Topology
- Broker Topology
- Mediator Topology
- Asynchronous Capabilities
- Error Handling
- Preventing Data Loss
- Broadcast Capabilities
- Request-Reply
- Choosing Between Request-Based and Event-Based
- Hybrid Event-Driven Architectures
- Architecture Characteristics Ratings
- 15. Space-Based Architecture Style
- General Topology
- Data Collisions
- Cloud Versus On-Premises Implementations
- Replicated Versus Distributed Caching
- Near-Cache Considerations
- Implementation Examples
- Architecture Characteristics Ratings
- 16. Orchestration-Driven Service-Oriented Architecture
- History and Philosophy
- Topology
- Taxonomy
- Reuse…and Coupling
- Architecture Characteristics Ratings
- 17. Microservices Architecture
- History
- Topology
- Distributed
- Bounded Context
- Granularity
- API Layer
- Operational Reuse
- Frontends
- Communication
- Architecture Characteristics Ratings
- Additional References
- 18. Choosing the Appropriate Architecture Style
- Shifting "Fashion" in Architecture
- Decision Criteria
- Monolith Case Study: Silicon Sandwiches
- Distributed Case Study: Going, Going, Gone
- III. Techniques and Soft Skills
- 19. Architecture Decisions
- Architecture Decision Anti-Patterns
- Architecturally Significant
- Architecture Decision Records
- 20. Analyzing Architecture Risk
- Risk Matrix
- Risk Assessments
- Risk Storming
- Agile Story Risk Analysis
- Risk Storming Examples
- 21. Diagramming and Presenting Architecture
- Diagramming
- Presenting
- 22. Making Teams Effective
- Team Boundaries
- Architect Personalities
- How Much Control?
- Team Warning Signs
- Leveraging Checklists
- Providing Guidance
- Summary
- 23. Negotiation and Leadership Skills
- Negotiation and Facilitation
- The Software Architect as a Leader
- Integrating with the Development Team
- Summary
- 24. Developing a Career Path
- The 20-Minute Rule
- Developing a Personal Radar
- Using Social Media
- Parting Words of Advice
- Appendix. Self-Assessment Questions
- Index