Fundamentals of Software Architecture. 2nd Edition (ebook) Oświęcim

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 updated edition provides a comprehensive overview of software architectures many aspects, with five new chapters covering the latest …

od 228,65 Najbliżej: 48 km

Liczba ofert: 1

Oferta sklepu

Opis

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 updated edition provides a comprehensive overview of software architectures many aspects, with five new chapters covering the latest insights from the field. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming architecture, governance, data, generative AI, team topologies, 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. Youll explore software architecture in a modern light, taking into account all the innovations of the past decade. This book examines: Architecture styles and patterns: Microservices, modular monoliths, microkernels, layered architectures, and many more Components: Identification, coupling, cohesion, partitioning, and granularity Soft skills: Effective team management, collaboration, business engagement models, negotiation, presentations, and more Modernity: Engineering practices and operational approaches that have changed radically in the past few years, including cloud considerations and generative AI Architecture as an engineering discipline: Repeatable results, metrics, and concrete valuations that add rigor to software architecture Spis treści: Preface Preface to the Second Edition Preface to the First Edition Conventions Used in This Book Supplemental Material OReilly Online Learning How to Contact Us Acknowledgments Acknowledgments from Mark Richards Acknowledgments from Neal Ford 1. Introduction Defining Software Architecture Laws of Software Architecture Expectations of an Architect Make Architecture Decisions Continually Analyze the Architecture Keep Current with Latest Trends Ensure Compliance with Decisions Understand Diverse Technologies Know the Business Domain Possess Interpersonal Skills Understand and Navigate Politics Roadmap I. Foundations 2. Architectural Thinking Architecture Versus Design Strategic Versus Tactical Decisions Level of Effort The Significance of Trade-Offs Technical Breadth The 20-Minute Rule Developing a Personal Radar The Thoughtworks Technology Radar Parts Rings Analyzing Trade-Offs Understanding Business Drivers Balancing Architecture and Hands-On Coding Theres More to Architectural Thinking 3. Modularity Modularity Versus Granularity Defining Modularity Measuring Modularity Cohesion Coupling Core Metrics Distance from the Main Sequence Connascence Static connascence Dynamic connascence Connascence properties From Modules to Components 4. Architectural Characteristics Defined Architectural Characteristics and System Design Architectural Characteristics (Partially) Listed Operational Architectural Characteristics Structural Architectural Characteristics Cloud Characteristics Cross-Cutting Architectural Characteristics Trade-Offs and Least Worst Architecture 5. Identifying Architectural Characteristics Extracting Architectural Characteristics from Domain Concerns Composite Architectural Characteristics Extracting Architectural Characteristics Working with Katas Kata: Silicon Sandwiches Explicit Characteristics Implicit Characteristics Limiting and Prioritizing Architectural Characteristics 6. Measuring and Governing Architecture Characteristics Measuring Architecture Characteristics Operational Measures Structural Measures Process Measures Governance and Fitness Functions Governing Architecture Characteristics Fitness Functions Cyclic dependencies Distance from the Main Sequence fitness function 7. The Scope of Architectural Characteristics Architectural Quanta and Granularity Synchronous Communication The Impact of Scoping Scoping and Architectural Style Kata: Going Green Scoping and the Cloud 8. Component-Based Thinking Defining Logical Components Logical Versus Physical Architecture Creating a Logical Architecture Identifying Core Components The Workflow approach The Actor/Action approach The Entity Trap Assigning User Stories to Components Analyzing Roles and Responsibilities Analyzing Architectural Characteristics Restructuring Components Component Coupling Static Coupling Temporal Coupling The Law of Demeter Case Study: Going, Going, GoneDiscovering Components II. Architecture Styles 9. Foundations Styles Versus Patterns Fundamental Patterns Big Ball of Mud Unitary Architecture Client/Server Desktop and database server Browser and web server Single-page JavaScript applications Three-tier Architecture Partitioning Kata: Silicon SandwichesPartitioning Domain partitioning Technical partitioning 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 The Other Fallacies Fallacy #9. Versioning is easy Fallacy #10. Compensating updates always work Fallacy #11. Observability is optional (for distributed architectures) Team Topologies and Architecture On to Specific Styles 10. Layered Architecture Style Topology Style Specifics Layers of Isolation Adding Layers Data Topologies Cloud Considerations Common Risks Governance Team Topology Considerations Style Characteristics When to Use When Not to Use Examples and Use Cases 11. The Modular Monolith Architecture Style Topology Style Specifics Monolithic Structure Modular Structure Module Communication Peer-to-peer approach Mediator approach Data Topologies Cloud Considerations Common Risks Governance Team Topology Considerations Style Characteristics When to Use When Not to Use Examples and Use Cases 12. Pipeline Architecture Style Topology Style Specifics Filters Pipes Data Topologies Cloud Considerations Common Risks Governance Team Topology Considerations Style Characteristics When to Use When Not to Use Examples and Use Cases 13. Microkernel Architecture Style Topology Style Specifics Core System Plug-In Components The Spectrum of Microkern-ality Registry Contracts Data Topologies Cloud Considerations Common Risks Volatile Core Plug-In Dependencies Governance Team Topology Considerations Architecture Characteristics Ratings Examples and Use Cases 14. Service-Based Architecture Style Topology Style Specifics Service Design and Granularity User Interface Options API Gateway Options Data Topologies Cloud Considerations Common Risks Governance Team Topology Considerations Style Characteristics Examples and Use Cases 15. Event-Driven Architecture Style Topology Style Specifics Events Versus Messages Derived Events Triggering Extensible Events Asynchronous Capabilities Broadcast Capabilities Event Payload Data-based event payloads Key-based event payload Trade-off summary Anemic events The Swarm of Gnats Antipattern Error Handling Preventing Data Loss Request-Reply Processing Mediated Event-Driven Architecture Data Topologies Monolithic Database Topology Domain Database Topology Dedicated Data Topology Cloud Considerations Common Risks Governance Team Topology Considerations Style Characteristics Choosing Between Request-Based and Event-Based Models Examples and Use Cases 16. Space-Based Architecture Style Topology Style Specifics Processing Unit Virtualized Middleware Messaging Grid Data Grid Replicated and distributed caching Near-cache considerations Processing Grid Deployment Manager Data Pumps Data Writers Data Readers Data Topologies Cloud Considerations Common Risks Frequent Reads from the Database Data Synchronization and Consistency High Data Volumes Data Collisions Governance Team Topology Considerations Style Characteristics Examples and Use Cases Concert Ticketing System Online Auction System 17. Orchestration-Driven Service-Oriented Architecture Topology Style Specifics Taxonomy Business services Enterprise services Application services Infrastructure services Orchestration engine and message bus Message flow Reuseand Coupling Data Topologies Cloud Considerations Common Risks Governance Team Topology Considerations Style Characteristics Examples and Use Cases 18. Microservices Architecture Topology Style Specifics Bounded Context Granularity Data Isolation API Layer Operational Reuse Frontends Communication Choreography and Orchestration Transactions and Sagas Data Topologies Cloud Considerations Common Risks Governance Team Topology Considerations Style Characteristics Examples and Use Cases 19. Choosing the Appropriate Architecture Style Shifting Fashion in Architecture Decision Criteria Monolith Case Study: Silicon Sandwiches Modular Monolith Microkernel Distributed Case Study: Going, Going, Gone 20. Architectural Patterns Reuse Separating Domain and Operational Coupling Hexagonal architecture Service Mesh Communication Orchestration Versus Choreography CQRS Infrastructure Broker-Domain Pattern III. Techniques and Soft Skills 21. Architectural Decisions Architectural Decision Antipatterns The Covering Your Assets Antipattern Groundhog Day Antipattern Email-Driven Architecture Antipattern Architectural Significance Architectural Decision Records Basic Structure Title Status Context Decision Consequences Compliance Notes Example Storing ADRs ADRs as Documentation Using ADRs for Standards Using ADRs with Existing Systems Leveraging Generative AI and LLMs in Architectural Decisions 22. Analyzing Architecture Risk Risk Matrix Risk Assessments Risk Storming Phase 1: Identification Phase 2: Consensus Phase 3: Risk Mitigation User-Story Risk Analysis Risk-Storming Use Case Availability Elasticity Security Summary 23. Diagramming Architecture Diagramming Tools Diagramming Standards: UML, C4, and ArchiMate UML C4 ArchiMate Diagram Guidelines Titles Lines Shapes Labels Color Keys Summary 24. Making Teams Effective Collaboration Constraints and Boundaries Architect Personalities The Control-Freak Architect The Armchair Architect The Effective Architect How Much Involvement? Team Warning Signs Process Loss Pluralistic Ignorance Leveraging Checklists Developer Code-Completion Checklist Unit and Functional Testing Checklist Software-Release Checklist Providing Guidance Summary 25. Negotiation and Leadership Skills Negotiation and Facilitation Negotiating with Business Stakeholders Negotiating with Other Architects Negotiating with Developers The Software Architect as a Leader The 4 Cs of Architecture Be Pragmatic, Yet Visionary Leading Teams by Example Integrating with the Development Team Summary 26. Architectural Intersections Architecture and Implementation Operational Concerns Structural Integrity Architectural Constraints Architecture and Infrastructure Architecture and Data Topologies Database Topology Architectural Characteristics Data Structure Read/Write Priority Architecture and Engineering Practices Architecture and Team Topologies Architecture and Systems Integration Architecture and the Enterprise Architecture and the Business Environment Architecture and Generative AI Incorporating Generative AI into Architecture Generative AI as an Architect Assistant Summary 27. The Laws of Software Architecture, Revisited First Law: Everything in Software Architecture Is a Trade-Off Shared Library Versus Shared Service Synchronous Versus Asynchronous Messaging First Corollary: Missing Trade-Offs Second Corollary: You Cant Do It Just Once Second Law: Why Is More Important Than How Out of Context Antipattern The Spectrum Between Extremes Parting Words of Advice Discussion Questions Chapter 1: Introduction Chapter 2: Architectural Thinking Chapter 3: Modularity Chapter 4: Architecture Characteristics Defined Chapter 5: Identifying Architectural Characteristics Chapter 6: Measuring and Governing Architecture Characteristics Chapter 7: The Scope of Architectural Characteristics Chapter 8: Component-Based Thinking Chapter 9: Foundations Chapter 10: Layered Architecture Style Chapter 11: Modular Monolith Architecture Style Chapter 12: Pipeline Architecture Style Chapter 13: Microkernel Architecture Style Chapter 14: Service-Based Architecture Style Chapter 15: Event-Driven Architecture Style Chapter 16: Space-Based Architecture Style Chapter 17: Orchestration-Driven Service-Oriented Architecture Chapter 18: Microservices Architecture Chapter 19: Choosing the Appropriate Architecture Style Chapter 20: Architectural Patterns Chapter 21: Architectural Decisions Chapter 22: Analyzing Architecture Risk Chapter 23: Diagramming Architecture Chapter 24: Making Teams Effective Chapter 25: Negotiation and Leadership Skills Chapter 26: Architectural Intersections Chapter 27: The Laws of Software Architecture, Revisited Index

Specyfikacja

Podstawowe informacje

Autor
  • Mark Richards, Neal Ford
Rok wydania
  • 2025
Format
  • MOBI
  • EPUB
Ilość stron
  • 546