Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface: Invalidating Axioms
Conventions Used in This Book Using Code Examples O’Reilly Online Learning How to Contact Us Acknowledgments
Acknowledgments from Mark Richards Acknowledgments from Neal Ford
1. Introduction
Defining Software Architecture Expectations of an Architect
Make Architecture Decisions Continually Analyze the Architecture Keep Current with Latest Trends Ensure Compliance with Decisions Diverse Exposure and Experience Have Business Domain Knowledge Possess Interpersonal Skills Understand and Navigate Politics
Intersection of Architecture and…
Engineering Practices Operations/DevOps Process Data
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
Cohesion Coupling Abstractness, Instability, and Distance from the Main Sequence Distance from the Main Sequence Connascence Unifying Coupling and Connascence Metrics
From Modules to Components
4. Architecture Characteristics Defined
Architectural Characteristics (Partially) Listed
Operational Architecture Characteristics Structural Architecture Characteristics Cross-Cutting Architecture Characteristics
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
Explicit Characteristics Implicit 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. Scope of Architecture Characteristics
Coupling and Connascence Architectural Quanta and Granularity
Case Study: Going, Going, Gone
8. Component-Based Thinking
Component Scope Architect Role
Architecture Partitioning Case Study: Silicon Sandwiches: Partitioning
Developer Role Component Identification Flow
Identifying Initial Components Assign Requirements to Components Analyze Roles and Responsibilities Analyze Architecture Characteristics Restructure Components
Component Granularity Component Design
Discovering Components
Case Study: Going, Going, Gone: Discovering Components Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures
II. Architecture Styles 9. Foundations
Fundamental Patterns
Big Ball of Mud Unitary Architecture Client/Server
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
Topology Layers of Isolation Adding Layers Other Considerations Why Use This Architecture Style Architecture Characteristics Ratings
11. Pipeline Architecture Style
Topology
Pipes Filters
Example Architecture Characteristics Ratings
12. Microkernel Architecture Style
Topology
Core System Plug-In Components
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
Processing Unit Virtualized Middleware Data Pumps Data Writers Data Readers
Data Collisions Cloud Versus On-Premises Implementations Replicated Versus Distributed Caching Near-Cache Considerations Implementation Examples
Concert Ticketing System Online Auction System
Architecture Characteristics Ratings
16. Orchestration-Driven Service-Oriented Architecture
History and Philosophy Topology Taxonomy
Business Services Enterprise Services Application Services Infrastructure Services Orchestration Engine Message Flow
Reuse…and Coupling Architecture Characteristics Ratings
17. Microservices Architecture
History Topology Distributed Bounded Context
Granularity Data Isolation
API Layer Operational Reuse Frontends Communication
Choreography and Orchestration Transactions and Sagas
Architecture Characteristics Ratings Additional References
18. 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
III. Techniques and Soft Skills 19. Architecture Decisions
Architecture Decision Anti-Patterns
Covering Your Assets Anti-Pattern Groundhog Day Anti-Pattern Email-Driven Architecture Anti-Pattern
Architecturally Significant Architecture Decision Records
Basic Structure Storing ADRs ADRs as Documentation Using ADRs for Standards Example
20. Analyzing Architecture Risk
Risk Matrix Risk Assessments Risk Storming
Identification Consensus
Agile Story Risk Analysis Risk Storming Examples
Availability Elasticity Security
21. Diagramming and Presenting Architecture
Diagramming
Tools Diagramming Standards: UML, C4, and ArchiMate Diagram Guidelines
Presenting
Manipulating Time Incremental Builds Infodecks Versus Presentations Slides Are Half of the Story Invisibility
22. Making Teams Effective
Team Boundaries Architect Personalities
Control Freak Armchair Architect Effective Architect
How Much Control? Team Warning Signs Leveraging Checklists
Developer Code Completion Checklist Unit and Functional Testing Checklist Software Release Checklist
Providing Guidance Summary
23. 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 C’s of Architecture Be Pragmatic, Yet Visionary Leading Teams by Example
Integrating with the Development Team Summary
24. Developing a Career Path
The 20-Minute Rule Developing a Personal Radar
The ThoughtWorks Technology Radar Open Source Visualization Bits
Using Social Media Parting Words of Advice
A. 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
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion