reklama - zainteresowany?

Fundamentals of Software Architecture. 2nd Edition - Helion

Fundamentals of Software Architecture. 2nd Edition
ebook
Autor: Mark Richards, Neal Ford
ISBN: 9781098175474
stron: 546, Format: ebook
Data wydania: 2025-03-12
Księgarnia: Helion

Cena książki: 269,00 zł

Dodaj do koszyka Fundamentals of Software Architecture. 2nd Edition

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 architecture's 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. You'll 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

Dodaj do koszyka Fundamentals of Software Architecture. 2nd Edition

Spis treści

Fundamentals of Software Architecture. 2nd Edition eBook -- 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

Dodaj do koszyka Fundamentals of Software Architecture. 2nd Edition

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2025 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.