Professional Documents
Culture Documents
PDF Fundamentals of Software Architecture A Comprehensive Guide To Patterns Characteristics and Best Practices Neal Ford Ebook Full Chapter
PDF Fundamentals of Software Architecture A Comprehensive Guide To Patterns Characteristics and Best Practices Neal Ford Ebook Full Chapter
https://textbookfull.com/product/clean-c-sustainable-software-
development-patterns-and-best-practices-with-c-17-1st-edition-
stephan-roth/
https://textbookfull.com/product/bioclimatic-architecture-in-
warm-climates-a-guide-for-best-practices-in-africa-manuel-
correia-guedes/
https://textbookfull.com/product/django-design-patterns-and-best-
practices-2nd-edition-arun-ravindran/
https://textbookfull.com/product/complete-guide-to-test-
automation-techniques-practices-and-patterns-for-building-and-
maintaining-effective-software-projects-1st-edition-arnon-
Building a Career in Software: A Comprehensive Guide to
Success in the Software Industry 1st Edition Daniel
Heller
https://textbookfull.com/product/building-a-career-in-software-a-
comprehensive-guide-to-success-in-the-software-industry-1st-
edition-daniel-heller/
https://textbookfull.com/product/effective-cybersecurity-a-guide-
to-using-best-practices-and-standards-1st-edition-william-
stallings/
https://textbookfull.com/product/lean-production-for-competitive-
advantage-a-comprehensive-guide-to-lean-methods-and-management-
practices-nicholas/
https://textbookfull.com/product/wordpress-fundamentals-a-
comprehensive-beginner-s-guide-to-wordpress-3rd-edition-kathleen-
peterson/
https://textbookfull.com/product/building-evolutionary-
architectures-support-constant-change-1st-edition-neal-ford/
1. Preface: Invalidating Axioms
a. Conventions Used in This Book
b. Using Code Examples
c. O’Reilly Online Learning
d. How to Contact Us
e. Acknowledgments
a. Definition
b. Measuring Modularity
i. Cohesion
ii. Coupling
iii. Abstractness, Instability, and Distance
from the Main Sequence
iv. Distance from the Main Sequence
v. Connascence
vi. Unifying Coupling and Connascence
Metrics
i. Operational Architecture
Characteristics
ii. Structural Architecture Characteristics
iii. Cross-Cutting Architecture
Characteristics
i. Explicit Characteristics
ii. Implicit Characteristics
i. Architecture Partitioning
ii. Case Study: Silicon Sandwiches:
Partitioning
c. Developer Role
d. Component Identification Flow
e. Component Granularity
f. Component Design
i. Discovering Components
a. Fundamental Patterns
i. Big Ball of Mud
ii. Unitary Architecture
iii. Client/Server
b. Monolithic Versus Distributed Architectures
i. Fallacy #1: The Network Is Reliable
ii. Fallacy #2: Latency Is Zero
iii. Fallacy #3: Bandwidth Is Infinite
iv. Fallacy #4: The Network Is Secure
v. Fallacy #5: The Topology Never
Changes
vi. Fallacy #6: There Is Only One
Administrator
vii. Fallacy #7: Transport Cost Is Zero
viii. Fallacy #8: The Network Is
Homogeneous
ix. Other Distributed Considerations
a. Topology
i. Pipes
ii. Filters
b. Example
c. Architecture Characteristics Ratings
15. 12. Microkernel Architecture Style
a. Topology
i. Core System
ii. Plug-In Components
b. Registry
c. Contracts
d. Examples and Use Cases
e. Architecture Characteristics Ratings
16. 13. Service-Based Architecture Style
a. Topology
b. Topology Variants
c. Service Design and Granularity
d. Database Partitioning
e. Example Architecture
f. Architecture Characteristics Ratings
g. When to Use This Architecture Style
17. 14. Event-Driven Architecture Style
a. Topology
b. Broker Topology
c. Mediator Topology
d. Asynchronous Capabilities
e. Error Handling
f. Preventing Data Loss
g. Broadcast Capabilities
h. Request-Reply
i. Choosing Between Request-Based and Event-
Based
j. Hybrid Event-Driven Architectures
k. Architecture Characteristics Ratings
i. Processing Unit
ii. Virtualized Middleware
iii. Data Pumps
iv. Data Writers
v. Data Readers
b. Data Collisions
c. Cloud Versus On-Premises Implementations
d. Replicated Versus Distributed Caching
e. Near-Cache Considerations
f. Implementation Examples
i. Concert Ticketing System
ii. Online Auction System
g. Architecture Characteristics Ratings
19. 16. Orchestration-Driven Service-Oriented Architecture
i. Business Services
ii. Enterprise Services
iii. Application Services
iv. Infrastructure Services
v. Orchestration Engine
vi. Message Flow
d. Reuse…and Coupling
e. Architecture Characteristics Ratings
20. 17. Microservices Architecture
a. History
b. Topology
c. Distributed
d. Bounded Context
i. Granularity
ii. Data Isolation
e. API Layer
f. Operational Reuse
g. Frontends
h. Communication
b. Architecturally Significant
c. Architecture Decision Records
i. Basic Structure
ii. Storing ADRs
iii. ADRs as Documentation
iv. Using ADRs for Standards
v. Example
a. Risk Matrix
b. Risk Assessments
c. Risk Storming
i. Identification
ii. Consensus
d. Agile Story Risk Analysis
e. Risk Storming Examples
i. Availability
ii. Elasticity
iii. Security
25. 21. Diagramming and Presenting Architecture
a. Diagramming
i. Tools
ii. Diagramming Standards: UML, C4,
and ArchiMate
iii. Diagram Guidelines
b. Presenting
i. Manipulating Time
ii. Incremental Builds
iii. Infodecks Versus Presentations
iv. Slides Are Half of the Story
v. Invisibility
i. Control Freak
ii. Armchair Architect
iii. Effective Architect
f. Providing Guidance
g. Summary
27. 23. Negotiation and Leadership Skills
a. Chapter 1: Introduction
b. Chapter 2: Architectural Thinking
c. Chapter 3: Modularity
d. Chapter 4: Architecture Characteristics Defined
e. Chapter 5: Identifying Architecture
Characteristics
f. Chapter 6: Measuring and Governing
Architecture Characteristics
g. Chapter 7: Scope of Architecture
Characteristics
h. Chapter 8: Component-Based Thinking
i. Chapter 9: Architecture Styles
j. Chapter 10: Layered Architecture Style
k. Chapter 11: Pipeline Architecture
l. Chapter 12: Microkernel Architecture
m. Chapter 13: Service-Based Architecture
n. Chapter 14: Event-Driven Architecture Style
o. Chapter 15: Space-Based Architecture
p. Chapter 16: Orchestration-Driven Service-
Oriented Architecture
q. Chapter 17: Microservices Architecture
r. Chapter 18: Choosing the Appropriate
Architecture Style
s. Chapter 19: Architecture Decisions
t. Chapter 20: Analyzing Architecture Risk
u. Chapter 21: Diagramming and Presenting
Architecture
v. Chapter 22: Making Teams Effective
w. Chapter 23: Negotiation and Leadership Skills
x. Chapter 24: Developing a Career Path
30. Index
Praise for Fundamentals of Software Architecture
See http://oreilly.com/catalog/errata.csp?isbn=9781492043454
for release details.
The views expressed in this work are those of the authors, and
do not represent the publisher’s views. While the publisher and
the authors have used good faith efforts to ensure that the
information and instructions contained in this work are
accurate, the publisher and the authors disclaim all
responsibility for errors or omissions, including without
limitation responsibility for damages resulting from the use of
or reliance on this work. Use of the information and
instructions contained in this work is at your own risk. If any
code samples or other technology this work contains or
describes is subject to open source licenses or the intellectual
property rights of others, it is your responsibility to ensure that
your use thereof complies with such licenses and/or rights.
978-1-492-04345-4
[LSI]
Preface: Invalidating
Axioms
Axiom
Italic
Constant width
This book is here to help you get your job done. In general, if
example code is offered with this book, you may use it in your
programs and documentation. You do not need to contact us
for permission unless you’re reproducing a significant portion
of the code. For example, writing a program that uses several
chunks of code from this book does not require permission.
Selling or distributing examples from O’Reilly books does
require permission. Answering a question by citing this book
and quoting example code does not require permission.
Incorporating a significant amount of example code from this
book into your product’s documentation does require
permission.
If you feel your use of code examples falls outside fair use or
the permission given above, feel free to contact us at
permissions@oreilly.com.
NOTE
For more than 40 years, O’Reilly Media has provided technology
and business training, knowledge, and insight to help companies
succeed.
Sebastopol, CA 95472
707-829-0104 (fax)
1. WILLIAM MILLER,
Distributive Manager, Glasgow.
2. JOHN DAVIDSON,
Master of Works, Glasgow.
3. JOHN M‘PHAIL,
Delivery Manager, Glasgow.
4. JOHN TOWART,
Purveying Manager, Glasgow.
5. WILLIAM NINIAN,
Biscuit Production Manager, Glasgow.
6. MURDOCH RICHARD,
Bread and Pastry Production Manager,
Glasgow.
DEPARTMENTAL MANAGERS
1. JOHN REID,
Productive Manager, Clydebank.
2. ALLAN STEWART,
Distributive Manager, Clydebank.
3. MALCOLM M‘FARLANE,
Delivery Manager, Clydebank.
4. DUNCAN M‘INNES,
Branch Manager, Belfast.
5. WILLIAM BELL,
Productive Manager, Belfast.
6. DUNCAN GRAHAM,
Branch Cashier, Belfast.
THE SOCIETY’S PROGRESS.
Notwithstanding the difficulties which the depression of 1908–
09–10 had placed in the way of increased trade for the Society the
progress made was substantial, and the yearly turnover, which was
£480,000 at the beginning of 1906, had risen by the end of 1910 to
£564,000, while the membership had increased from 143 to 171. At
the beginning of the period the weekly turnover in sacks averaged
3,405, while by the end of the period it was 3,795. This was a much
smaller increase than in the preceding period, and it was also a
decrease of 125 sacks from the trade which was being done in 1907–
08, but in view of the labour conditions which prevailed in Glasgow
during the later years of the period it was very good indeed,
representing as it did an increase in turnover of 10,000 sacks a year.
CHAPTER XVII.
PROGRESS CONTINUES STEADY.