English [en], .pdf, 🚀/lgli/lgrs/zlib, 52.9MB, 📘 Book (non-fiction), lgrsnf/Sanet.st_Head First Software Architecture - Raju Gandhi_ Mark Richards_ Nea.pdf
Head First Software Architecture: A Learner's Guide to Architectural Thinking 🔍
O'Reilly Media, Incorporated, 1, PS, 2024
Raju Gandhi, Mark Richards, Neal Ford 🔍
description
What will you learn from this book?
If you're a software developer looking for a quick on-ramp to software architecture, this handy guide is a great place to start. From the authors of Fundamentals of Software Architecture, Head First Software Architecture teaches you how to think architecturally and explores the unique challenges of software architecture. You'll learn the distinction between architecture and design and the relationship between code, components, and architectural styles. You'll also learn how to work with some common architectural styles through vivid, fun examples. Quick, easy, and entertaining, this book is a valuable introduction to the world of software architecture.
Why does this book look so different?
Based on the latest research in cognitive science and learning theory, Head First Software Architecture uses a visually rich format to engage your mind, rather than a text-heavy approach that puts you to sleep. Why waste your time struggling with new concepts? This multisensory learning experience is designed for the way your brain really works.
If you're a software developer looking for a quick on-ramp to software architecture, this handy guide is a great place to start. From the authors of Fundamentals of Software Architecture, Head First Software Architecture teaches you how to think architecturally and explores the unique challenges of software architecture. You'll learn the distinction between architecture and design and the relationship between code, components, and architectural styles. You'll also learn how to work with some common architectural styles through vivid, fun examples. Quick, easy, and entertaining, this book is a valuable introduction to the world of software architecture.
Why does this book look so different?
Based on the latest research in cognitive science and learning theory, Head First Software Architecture uses a visually rich format to engage your mind, rather than a text-heavy approach that puts you to sleep. Why waste your time struggling with new concepts? This multisensory learning experience is designed for the way your brain really works.
Alternative filename
lgli/Sanet.st_Head First Software Architecture - Raju Gandhi_ Mark Richards_ Nea.pdf
Alternative edition
United States, United States of America
Alternative edition
2023
metadata comments
Publisher's PDF | Published: April 9, 2024
Alternative description
Cover
Title Page
Copyright
About the Authors
Table of Contents
Intro
Chapter 1: Software Architecture Demystified
Building your understanding of software architecture
Building plans and software architecture
The dimensions of software architecture
Puzzling out the dimensions
The first dimension: Architectural characteristics
The second dimension: Architectural decisions
The third dimension: Logical components
The fourth dimension: Architectural styles
A design perspective
An architectural perspective
The spectrum between architecture and design
Where along the spectrum does your decision fall?
Strategic versus tactical
High versus low levels of effort
Significant versus less-significant trade-offs
Putting it all together
You made it!
Chapter 2: Architectural Characteristics
Causing Lafter
What are architectural characteristics?
Defining architectural characteristics
Characteristics are nondomain design considerations
Characteristics influence architectural structure
Limit characteristics to prevent overengineering
Consider explicit and implicit capabilities
The International Zoo of “-ilities”
Process architectural characteristics
Structural architectural characteristics
Operational architectural characteristics
Cross-cutting architectural characteristics
Sourcing architectural characteristics from the problem domain
Sourcing architectural characteristics from environmental awareness
Sourcing architectural characteristics from holistic domain knowledge
Composite architectural characteristics
Priorities are contextual
Lost in translation
Architectural characteristics and logical components
Balancing domain considerations and architectural characteristics
Limiting architectural characteristics
Chapter 3: The Two Laws of Software Architecture
It starts with a sneaker app
What do we know so far?
Communicating with downstream services
Analyzing trade-offs
Trade-off analysis: Queue edition
Trade-off analysis: Topic edition
The first law of software architecture
It always comes back to trade-offs
Making an architectural decision
What else makes a decision architectural?
The second law of software architecture
Architectural decision records (ADRs)
Writing ADRs: Getting the title right
Writing ADRs: What’s your status?
Writing ADRs: Establishing the context
Writing ADRs: Communicating the decision
Writing ADRs: Considering the consequences
Writing ADRs: Ensuring governance
Writing ADRs: Closing notes
The benefits of ADRs
Two Many Sneakers is a success
Chapter 4: Logical Components
Logical components revisited
Name that component
Adventurous Auctions goes online
Logical versus physical architecture
Creating a logical architecture
Step 1: Identifying initial core components
Workflow approach
Actor/action approach
The entity trap
Step 2: Assign requirements
Step 3: Analyze roles and responsibilities
Sticking to cohesion
Step 4: Analyze characteristics
The Bid Capture component
Component coupling
Afferent coupling
Efferent coupling
Measuring coupling
A tightly coupled system
Applying the Law of Demeter
A balancing act
Some final words about components
Chapter 5: Categorization and Philosophies
There are lots of architectural styles
The world of architectural styles
Partitioning: Technical versus domain
Deployment model: Monolithic versus distributed
Monolithic deployment models: The pros
Monolithic: The cons
Distributed deployment models: The pros
Distributed deployment models: The cons
And that’s a wrap!
Chapter 6: Layered Architecture
Naan & Pop: Gathering requirements
Design patterns redux
Layering MVC
Layering it on
Translating layers into code
Domains, components, and layers
Drivers for layered architecture
Layers, meet the real world: Physical architectures
Physical architecture trade-offs
One final caveat about domain changes
Layered architecture superpowers
Layered architecture kryptonite
Layered architecture star ratings
Wrapping it up
Chapter 7: Driven by the Domain
Modular monolith?
Domain pains changes
Why modular monoliths?
Show me the code!
Keeping modules modular
Taking modularity all the way to the database
Beware of joins
Modular monolith superpowers
Modular monolith kryptonite
Modular monolith star ratings
Naan & Pop is delivering pizza!
Chapter 8: Microkernel Architecture
The benefits of Going Green
The two parts of microkernel architectures
The spectrum of “microkern-ality”
Device assessment service core
Encapsulated versus distributed plugins
Plugin communication
Cubicle conversation
Plugin contracts
Going Green goes green
Microkernel superpowers
Microkernel kryptonite
Microkernel star ratings
Wrapping it up
Chapter 9: Do It Yourself
Making travel easier
TripEZ’s user workflow
Planning the architecture
The architects’ roadmap
Step 1: Identify architectural characteristics
Step 2: Identify logical components
Step 3: Choose an architectural style
Step 4: Document your decision
Step 5: Diagram your architecture
There are no right (or wrong) answers
Chapter 10: Microservices Architecture
Are you feeling okay?
What’s a microservice?
It’s my data, not yours
How micro is “micro”?
Granularity disintegrators
Why should you make microservices smaller?
Granularity integrators
Why should you make microservices bigger?
It’s all about balance
Sharing functionality
Code reuse with a shared service
Code reuse with a shared library
Managing workflows
Orchestration: Conducting microservices
Choreography: Let’s dance
Microservices architecture superpowers
Microservices architecture kryptonite
Microservices star ratings
Wrapping it up
Chapter 11: Event-Driven Architecture
Too slow
Speeding things up
Der Nile flows faster than ever
What is an event?
Events versus messages
Initiating and derived events
Is anyone listening?
Asynchronous communication
Fire-and-forget
Asynchronous for the win
Synchronous for the win
Database topologies
Monolithic database
Domain-partitioned databases
Database-per-service
EDA versus microservices
Hybrids: Event-driven microservices
Event-driven architecture superpowers
Event-driven architecture kryptonite
Event-driven architecture star ratings
Putting it all together
Wrapping up
Chapter 12: Testing Your Knowledge
Welcome to Make the Grade
Student testing workflow
Planning the architecture
The architects’ roadmap
Step 1: Identify architectural characteristics
Step 2: Identify logical components
Step 3: Choose an architectural style
Step 4: Document your decision
Step 5: Diagram your architecture
There are no right (or wrong) answers!
Appendix: Leftovers
#1 The coding architect
#2 Expectations for architects
#3 The soft skills of architecture
#4 Diagramming techniques
#5 Knowledge depth versus breadth
#6 Practicing architecture with katas
Index
Title Page
Copyright
About the Authors
Table of Contents
Intro
Chapter 1: Software Architecture Demystified
Building your understanding of software architecture
Building plans and software architecture
The dimensions of software architecture
Puzzling out the dimensions
The first dimension: Architectural characteristics
The second dimension: Architectural decisions
The third dimension: Logical components
The fourth dimension: Architectural styles
A design perspective
An architectural perspective
The spectrum between architecture and design
Where along the spectrum does your decision fall?
Strategic versus tactical
High versus low levels of effort
Significant versus less-significant trade-offs
Putting it all together
You made it!
Chapter 2: Architectural Characteristics
Causing Lafter
What are architectural characteristics?
Defining architectural characteristics
Characteristics are nondomain design considerations
Characteristics influence architectural structure
Limit characteristics to prevent overengineering
Consider explicit and implicit capabilities
The International Zoo of “-ilities”
Process architectural characteristics
Structural architectural characteristics
Operational architectural characteristics
Cross-cutting architectural characteristics
Sourcing architectural characteristics from the problem domain
Sourcing architectural characteristics from environmental awareness
Sourcing architectural characteristics from holistic domain knowledge
Composite architectural characteristics
Priorities are contextual
Lost in translation
Architectural characteristics and logical components
Balancing domain considerations and architectural characteristics
Limiting architectural characteristics
Chapter 3: The Two Laws of Software Architecture
It starts with a sneaker app
What do we know so far?
Communicating with downstream services
Analyzing trade-offs
Trade-off analysis: Queue edition
Trade-off analysis: Topic edition
The first law of software architecture
It always comes back to trade-offs
Making an architectural decision
What else makes a decision architectural?
The second law of software architecture
Architectural decision records (ADRs)
Writing ADRs: Getting the title right
Writing ADRs: What’s your status?
Writing ADRs: Establishing the context
Writing ADRs: Communicating the decision
Writing ADRs: Considering the consequences
Writing ADRs: Ensuring governance
Writing ADRs: Closing notes
The benefits of ADRs
Two Many Sneakers is a success
Chapter 4: Logical Components
Logical components revisited
Name that component
Adventurous Auctions goes online
Logical versus physical architecture
Creating a logical architecture
Step 1: Identifying initial core components
Workflow approach
Actor/action approach
The entity trap
Step 2: Assign requirements
Step 3: Analyze roles and responsibilities
Sticking to cohesion
Step 4: Analyze characteristics
The Bid Capture component
Component coupling
Afferent coupling
Efferent coupling
Measuring coupling
A tightly coupled system
Applying the Law of Demeter
A balancing act
Some final words about components
Chapter 5: Categorization and Philosophies
There are lots of architectural styles
The world of architectural styles
Partitioning: Technical versus domain
Deployment model: Monolithic versus distributed
Monolithic deployment models: The pros
Monolithic: The cons
Distributed deployment models: The pros
Distributed deployment models: The cons
And that’s a wrap!
Chapter 6: Layered Architecture
Naan & Pop: Gathering requirements
Design patterns redux
Layering MVC
Layering it on
Translating layers into code
Domains, components, and layers
Drivers for layered architecture
Layers, meet the real world: Physical architectures
Physical architecture trade-offs
One final caveat about domain changes
Layered architecture superpowers
Layered architecture kryptonite
Layered architecture star ratings
Wrapping it up
Chapter 7: Driven by the Domain
Modular monolith?
Domain pains changes
Why modular monoliths?
Show me the code!
Keeping modules modular
Taking modularity all the way to the database
Beware of joins
Modular monolith superpowers
Modular monolith kryptonite
Modular monolith star ratings
Naan & Pop is delivering pizza!
Chapter 8: Microkernel Architecture
The benefits of Going Green
The two parts of microkernel architectures
The spectrum of “microkern-ality”
Device assessment service core
Encapsulated versus distributed plugins
Plugin communication
Cubicle conversation
Plugin contracts
Going Green goes green
Microkernel superpowers
Microkernel kryptonite
Microkernel star ratings
Wrapping it up
Chapter 9: Do It Yourself
Making travel easier
TripEZ’s user workflow
Planning the architecture
The architects’ roadmap
Step 1: Identify architectural characteristics
Step 2: Identify logical components
Step 3: Choose an architectural style
Step 4: Document your decision
Step 5: Diagram your architecture
There are no right (or wrong) answers
Chapter 10: Microservices Architecture
Are you feeling okay?
What’s a microservice?
It’s my data, not yours
How micro is “micro”?
Granularity disintegrators
Why should you make microservices smaller?
Granularity integrators
Why should you make microservices bigger?
It’s all about balance
Sharing functionality
Code reuse with a shared service
Code reuse with a shared library
Managing workflows
Orchestration: Conducting microservices
Choreography: Let’s dance
Microservices architecture superpowers
Microservices architecture kryptonite
Microservices star ratings
Wrapping it up
Chapter 11: Event-Driven Architecture
Too slow
Speeding things up
Der Nile flows faster than ever
What is an event?
Events versus messages
Initiating and derived events
Is anyone listening?
Asynchronous communication
Fire-and-forget
Asynchronous for the win
Synchronous for the win
Database topologies
Monolithic database
Domain-partitioned databases
Database-per-service
EDA versus microservices
Hybrids: Event-driven microservices
Event-driven architecture superpowers
Event-driven architecture kryptonite
Event-driven architecture star ratings
Putting it all together
Wrapping up
Chapter 12: Testing Your Knowledge
Welcome to Make the Grade
Student testing workflow
Planning the architecture
The architects’ roadmap
Step 1: Identify architectural characteristics
Step 2: Identify logical components
Step 3: Choose an architectural style
Step 4: Document your decision
Step 5: Diagram your architecture
There are no right (or wrong) answers!
Appendix: Leftovers
#1 The coding architect
#2 Expectations for architects
#3 The soft skills of architecture
#4 Diagramming techniques
#5 Knowledge depth versus breadth
#6 Practicing architecture with katas
Index
date open sourced
2024-04-14
🚀 Fast downloads
Become a member to support the long-term preservation of books, papers, and more. To show our gratitude for your support, you get fast downloads. ❤️
- Option #1: Fast Partner Server #1 (recommended) (open in viewer) (no redirect) (short filename) (no browser verification or waitlists)
- Option #2: Fast Partner Server #2 (open in viewer) (no redirect) (short filename)
- Option #3: Fast Partner Server #3 (open in viewer) (no redirect) (short filename)
- Option #4: Fast Partner Server #4 (open in viewer) (no redirect) (short filename)
- Option #5: Fast Partner Server #5 (open in viewer) (no redirect) (short filename)
- Option #6: Fast Partner Server #6 (open in viewer) (no redirect) (short filename)
- Option #7: Fast Partner Server #7 (open in viewer) (no redirect) (short filename)
- Option #8: Fast Partner Server #8 (open in viewer) (no redirect) (short filename)
- Option #9: Fast Partner Server #9 (open in viewer) (no redirect) (short filename)
- Option #10: Fast Partner Server #10 (open in viewer) (no redirect) (short filename)
- Option #11: Fast Partner Server #11 (open in viewer) (no redirect) (short filename)
- Option #12: Fast Partner Server #12 (open in viewer) (no redirect) (short filename)
🐢 Slow downloads
From trusted partners. More information in the FAQ. (might require browser verification — unlimited downloads!)
- Option #1: Slow Partner Server #1 (slightly faster but with waitlist)
- Option #2: Slow Partner Server #2 (slightly faster but with waitlist)
- Option #3: Slow Partner Server #3 (no waitlist, but can be very slow)
- Option #4: Slow Partner Server #4 (slightly faster but with waitlist)
- Option #5: Slow Partner Server #5 (slightly faster but with waitlist)
- Option #6: Slow Partner Server #6 (no waitlist, but can be very slow)
- After downloading: Open in our viewer
External downloads
All download options have the same file, and should be safe to use. That said, always be cautious when downloading files from the internet, especially from sites external to Anna’s Archive. For example, be sure to keep your devices updated.
-
For large files, we recommend using a download manager to prevent interruptions.
Recommended download managers: JDownloader -
You will need an ebook or PDF reader to open the file, depending on the file format.
Recommended ebook readers: Anna’s Archive online viewer, ReadEra, and Calibre -
Use online tools to convert between formats.
Recommended conversion tools: CloudConvert -
You can send both PDF and EPUB files to your Kindle or Kobo eReader.
Recommended tools: Amazon‘s “Send to Kindle” and djazz‘s “Send to Kobo/Kindle” -
Support authors and libraries
✍️ If you like this and can afford it, consider buying the original, or supporting the authors directly.
📚 If this is available at your local library, consider borrowing it for free there.
Total downloads:
A “file MD5” is a hash that gets computed from the file contents, and is reasonably unique based on that content. All shadow libraries that we have indexed on here primarily use MD5s to identify files.
A file might appear in multiple shadow libraries. For information about the various datasets that we have compiled, see the Datasets page.
For information about this particular file, check out its JSON file. Live/debug JSON version. Live/debug page.