Head First Software Architecture: A Learner's Guide to Architectural Thinking

Head First Software Architecture: A Learner's Guide to Architectural Thinking

Head First Software Architecture: A Learner's Guide to Architectural Thinking
Автор: Ford Neal, Gandhi Raju, Richards Mark
Дата выхода: 2024
Издательство: O’Reilly Media, Inc.
Количество страниц: 486
Размер файла: 18,2 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Cover....1

Title Page....5

Copyright....6

About the Authors....8

Table of Contents....9

Intro....23

Chapter 1: Software Architecture Demystified....37

Building your understanding of software architecture....38

Building plans and software architecture....39

The dimensions of software architecture....40

Puzzling out the dimensions....41

The first dimension: Architectural characteristics....42

The second dimension: Architectural decisions....44

The third dimension: Logical components....46

The fourth dimension: Architectural styles....48

A design perspective....52

An architectural perspective....53

The spectrum between architecture and design....54

Where along the spectrum does your decision fall?....55

Strategic versus tactical....56

High versus low levels of effort....58

Significant versus less-significant trade-offs....60

Putting it all together....62

You made it!....63

Chapter 2: Architectural Characteristics....63

Causing Lafter....78

What are architectural characteristics? ....80

Defining architectural characteristics....81

Characteristics are nondomain design considerations....82

Characteristics influence architectural structure....83

Limit characteristics to prevent overengineering....84

Consider explicit and implicit capabilities....86

The International Zoo of -ilities....87

Process architectural characteristics....88

Structural architectural characteristics....89

Operational architectural characteristics....90

Cross-cutting architectural characteristics....91

Sourcing architectural characteristics from the problem domain....96

Sourcing architectural characteristics from environmental awareness....97

Sourcing architectural characteristics from holistic domain knowledge....97

Composite architectural characteristics....99

Priorities are contextual....100

Lost in translation....102

Architectural characteristics and logical components....104

Balancing domain considerations and architectural characteristics....105

Limiting architectural characteristics....106

Chapter 3: The Two Laws of Software Architecture....63

It starts with a sneaker app....118

What do we know so far?....120

Communicating with downstream services ....122

Analyzing trade-offs....123

Trade-off analysis: Queue edition....124

Trade-off analysis: Topic edition....125

The first law of software architecture....126

It always comes back to trade-offs....128

Making an architectural decision....129

What else makes a decision architectural?....130

The second law of software architecture....132

Architectural decision records (ADRs)....133

Writing ADRs: Getting the title right....135

Writing ADRs: Whats your status?....136

Writing ADRs: Establishing the context....140

Writing ADRs: Communicating the decision....141

Writing ADRs: Considering the consequences....143

Writing ADRs: Ensuring governance....145

Writing ADRs: Closing notes....145

The benefits of ADRs....148

Two Many Sneakers is a success....149

Chapter 4: Logical Components....149

Logical components revisited....160

Name that component....161

Adventurous Auctions goes online....162

Logical versus physical architecture....163

Creating a logical architecture....165

Step 1: Identifying initial core components....166

Workflow approach....168

Actoraction approach....170

The entity trap....172

Step 2: Assign requirements....174

Step 3: Analyze roles and responsibilities....176

Sticking to cohesion....177

Step 4: Analyze characteristics....178

The Bid Capture component....180

Component coupling....181

Afferent coupling....182

Efferent coupling....183

Measuring coupling....184

A tightly coupled system....186

Applying the Law of Demeter....187

A balancing act....189

Some final words about components....190

Chapter 5: Categorization and Philosophies....149

There are lots of architectural styles....204

The world of architectural styles....205

Partitioning: Technical versus domain....206

Deployment model: Monolithic versus distributed....208

Monolithic deployment models: The pros....210

Monolithic: The cons....211

Distributed deployment models: The pros....212

Distributed deployment models: The cons....213

And thats a wrap!....216

Chapter 6: Layered Architecture....206

Naan & Pop: Gathering requirements....222

Design patterns redux....224

Layering MVC....225

Layering it on....228

Translating layers into code....229

Domains, components, and layers....231

Drivers for layered architecture....234

Layers, meet the real world: Physical architectures....235

Physical architecture trade-offs....236

One final caveat about domain changes....239

Layered architecture superpowers....240

Layered architecture kryptonite....241

Layered architecture star ratings....242

Wrapping it up....244

Chapter 7: Driven by the Domain....238

Modular monolith?....255

Domain pains changes....257

Why modular monoliths?....258

Show me the code! ....260

Keeping modules modular....263

Taking modularity all the way to the database....267

Beware of joins....269

Modular monolith superpowers....270

Modular monolith kryptonite....271

Modular monolith star ratings....272

Naan & Pop is delivering pizza!....274

Chapter 8: Microkernel Architecture....269

The benefits of Going Green....284

The two parts of microkernel architectures....287

The spectrum of microkern-ality....289

Device assessment service core....291

Encapsulated versus distributed plugins....293

Plugin communication....295

Cubicle conversation....297

Plugin contracts....300

Going Green goes green....301

Microkernel superpowers....302

Microkernel kryptonite....303

Microkernel star ratings....304

Wrapping it up....306

Chapter 9: Do It Yourself....300

Making travel easier....314

TripEZs user workflow....315

Planning the architecture....316

The architects roadmap....317

Step 1: Identify architectural characteristics....318

Step 2: Identify logical components....320

Step 3: Choose an architectural style....322

Step 4: Document your decision....324

Step 5: Diagram your architecture....326

There are no right (or wrong) answers....328

Chapter 10: Microservices Architecture....328

Are you feeling okay?....340

Whats a microservice?....343

Its my data, not yours....344

How micro is micro?....346

Granularity disintegrators....348

Why should you make microservices smaller?....349

Granularity integrators....350

Why should you make microservices bigger?....351

Its all about balance....352

Sharing functionality....355

Code reuse with a shared service....356

Code reuse with a shared library....357

Managing workflows....361

Orchestration: Conducting microservices....362

Choreography: Lets dance....364

Microservices architecture superpowers....368

Microservices architecture kryptonite....369

Microservices star ratings....370

Wrapping it up....372

Chapter 11: Event-Driven Architecture....364

Too slow....386

Speeding things up....387

Der Nile flows faster than ever....388

What is an event?....390

Events versus messages....392

Initiating and derived events....394

Is anyone listening?....396

Asynchronous communication....397

Fire-and-forget....399

Asynchronous for the win....401

Synchronous for the win....403

Database topologies....405

Monolithic database....406

Domain-partitioned databases....408

Database-per-service....410

EDA versus microservices....414

Hybrids: Event-driven microservices ....418

Event-driven architecture superpowers....420

Event-driven architecture kryptonite....421

Event-driven architecture star ratings....422

Putting it all together....424

Wrapping up....425

Chapter 12: Testing Your Knowledge....425

Welcome to Make the Grade....440

Student testing workflow....441

Planning the architecture....442

The architects roadmap....443

Step 1: Identify architectural characteristics....444

Step 2: Identify logical components....446

Step 3: Choose an architectural style....448

Step 4: Document your decision....450

Step 5: Diagram your architecture....452

There are no right (or wrong) answers!....454

Appendix: Leftovers....454

1 The coding architect....464

2 Expectations for architects....466

3 The soft skills of architecture....468

4 Diagramming techniques....470

5 Knowledge depth versus breadth....472

6 Practicing architecture with katas....474

Index....477

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.


Похожее:

Список отзывов:

Нет отзывов к книге.