Book description
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture’s many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.
Mark Richards and Neal Ford—hands-on practitioners who have taught software architecture classes professionally for years—focus on architecture principles that apply across all technology stacks. You’ll explore software architecture in a modern light, taking into account all the innovations of the past decade.
This book examines:
- Architecture patterns: The technical basis for many architectural decisions
- Components: Identification, coupling, cohesion, partitioning, and granularity
- Soft skills: Effective team management, meetings, negotiation, presentations, and more
- Modernity: Engineering practices and operational approaches that have changed radically in the past few years
- Architecture as an engineering discipline: Repeatable results, metrics, and concrete valuations that add rigor to software architecture
Publisher resources
Table of contents
- Preface: Invalidating Axioms
- 1. Introduction
- I. Foundations
- 2. Architectural Thinking
- 3. Modularity
- 4. Architecture Characteristics Defined
- 5. Identifying Architectural Characteristics
- 6. Measuring and Governing Architecture Characteristics
- 7. Scope of Architecture Characteristics
- 8. Component-Based Thinking
- II. Architecture Styles
-
9. Foundations
- Fundamental Patterns
-
Monolithic Versus Distributed Architectures
- Fallacy #1: The Network Is Reliable
- Fallacy #2: Latency Is Zero
- Fallacy #3: Bandwidth Is Infinite
- Fallacy #4: The Network Is Secure
- Fallacy #5: The Topology Never Changes
- Fallacy #6: There Is Only One Administrator
- Fallacy #7: Transport Cost Is Zero
- Fallacy #8: The Network Is Homogeneous
- Other Distributed Considerations
- 10. Layered Architecture Style
- 11. Pipeline Architecture Style
- 12. Microkernel Architecture Style
- 13. Service-Based Architecture Style
- 14. Event-Driven Architecture Style
- 15. Space-Based Architecture Style
- 16. Orchestration-Driven Service-Oriented Architecture
- 17. Microservices Architecture
- 18. Choosing the Appropriate Architecture Style
- III. Techniques and Soft Skills
- 19. Architecture Decisions
- 20. Analyzing Architecture Risk
- 21. Diagramming and Presenting Architecture
- 22. Making Teams Effective
- 23. Negotiation and Leadership Skills
- 24. Developing a Career Path
-
Self-Assessment Questions
- Chapter 1: Introduction
- Chapter 2: Architectural Thinking
- Chapter 3: Modularity
- Chapter 4: Architecture Characteristics Defined
- Chapter 5: Identifying Architecture Characteristics
- Chapter 6: Measuring and Governing Architecture Characteristics
- Chapter 7: Scope of Architecture Characteristics
- Chapter 8: Component-Based Thinking
- Chapter 9: Architecture Styles
- Chapter 10: Layered Architecture Style
- Chapter 11: Pipeline Architecture
- Chapter 12: Microkernel Architecture
- Chapter 13: Service-Based Architecture
- Chapter 14: Event-Driven Architecture Style
- Chapter 15: Space-Based Architecture
- Chapter 16: Orchestration-Driven Service-Oriented Architecture
- Chapter 17: Microservices Architecture
- Chapter 18: Choosing the Appropriate Architecture Style
- Chapter 19: Architecture Decisions
- Chapter 20: Analyzing Architecture Risk
- Chapter 21: Diagramming and Presenting Architecture
- Chapter 22: Making Teams Effective
- Chapter 23: Negotiation and Leadership Skills
- Chapter 24: Developing a Career Path
- Index
- About the Authors
Product information
- Title: Fundamentals of Software Architecture
- Author(s):
- Release date: January 2020
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781492043454
You might also like
video
Software Architecture Fundamentals, Second Edition
Being a successful software architect is more than just possessing technical knowledge. It’s about thinking like …
audiobook
Software Architecture: The Hard Parts
There are no easy decisions in software architecture. Instead, there are many hard parts-difficult problems or …
book
Software Architecture: The Hard Parts
There are no easy decisions in software architecture. Instead, there are many hard parts--difficult problems or …
book
Head First Software Architecture
What will you learn from this book? If you're a software developer looking for a quick …