Op werkdagen voor 23:00 besteld, morgen in huis Gratis verzending vanaf €20
,

Fundamentals of Software Architecture

An Modern Engineering Approach

Paperback Engels 2025 2e druk 9781098175511
Verkooppositie 1899Hoogste positie: 311
Verwachte levertijd ongeveer 16 werkdagen

Samenvatting

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

Specificaties

ISBN13:9781098175511
Taal:Engels
Bindwijze:paperback
Aantal pagina's:550
Uitgever:O'Reilly
Druk:2
Verschijningsdatum:25-3-2025
Hoofdrubriek:IT-management / ICT

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Over Mark Richards

Mark Richards is a Director and Sr. Technical Architect at Collaborative Consulting, LLC., where he is involved in the architecture and design of Service Oriented Architectures in J2EE and other technologies, primarily in the financial services industry. He has been involved in the software industry since 1984, and has significant experience and expertise in J2EE architecture and development, Object-oriented design and development, and systems integration. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is also the author of "Java Transaction Design Strategies" and contributing author of "97 Things Every Software Architect Should Know" (O'Reilly 2009), "NFJS Anthology Volume 1", and "NFJS Anthology Volume 2". Mark is an IBM Certified Application Architect, Certified Master IT Architect (TOG), Sun Certified J2EE Business Component Developer, a Sun Certified J2EE Enterprise Architect, a Sun Certified Java Programmer, a BEA WebLogic Certified Developer, a Certified Java Instructor, and holds a Master's Degree in Computer Science from Boston University. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at conferences and user groups around the country. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.

Andere boeken door Mark Richards

Inhoudsopgave

Preface
Preface to the Second Edition
Preface to the First Edition
Conventions Used in This Book
Supplemental Material
O’Reilly 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
Analyzing Trade-Offs
Understanding Business Drivers
Balancing Architecture and Hands-On Coding
There’s More to Architectural Thinking

3. Modularity
Modularity Versus Granularity
Defining Modularity
Measuring Modularity
Cohesion
Coupling
Core Metrics
Distance from the Main Sequence
Connascence
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

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
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, Gone—Discovering Components

II. Architecture Styles
9. Foundations
Styles Versus Patterns
Fundamental Patterns
Big Ball of Mud
Unitary Architecture
Client/Server
Architecture Partitioning
Kata: Silicon Sandwiches—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
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
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
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
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
Reuse…and 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
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
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
Diagram Guidelines
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 Can’t 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

Index
About the Authors

Managementboek Top 100

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Fundamentals of Software Architecture