Virtus's Reader
Clean Architecture: A Craftsman's Guide to Software Structure and Design

Chương 1: Chapter 1 What Is Design and Architecture? [part0011.html#ch1]

Mục lụcSau

CONTENTS

Foreword [part0006.html#foreword]

Preface [part0007.html#preface]

Acknowledgments [part0008.html#ack]

About the Author [part0009.html#about]

PART I         Introduction [part0010.html#part1]

The Goal? [part0011.html#toclev_1]

Case Study [part0011.html#toclev_2]

Conclusion [part0011.html#toclev_3]

Chapter 2     A Tale of Two Values [part0012.html#ch2]

Behavior [part0012.html#toclev_4]

Architecture [part0012.html#toclev_5]

The Greater Value [part0012.html#toclev_6]

Eisenhower’s Matrix [part0012.html#toclev_7]

Fight for the Architecture [part0012.html#toclev_8]

PART II       Starting with the Bricks: Programming Paradigms [part0013.html#part2]

Chapter 3     Paradigm Overview [part0014.html#ch3]

Structured Programming [part0014.html#toclev_9]

Object-Oriented Programming [part0014.html#toclev_10]

Functional Programming [part0014.html#toclev_11]

Food for Thought [part0014.html#toclev_12]

Conclusion [part0014.html#toclev_13]

Chapter 4     Structured Programming [part0015.html#ch4]

Proof [part0015.html#toclev_14]

A Harmful Proclamation [part0015.html#toclev_15]

Functional Decomposition [part0015.html#toclev_16]

No Formal Proofs [part0015.html#toclev_17]

Science to the Rescue [part0015.html#toclev_18]

Tests [part0015.html#toclev_19]

Conclusion [part0015.html#toclev_20]

Chapter 5     Object-Oriented Programming [part0016.html#ch5]

Encapsulation? [part0016.html#toclev_21]

Inheritance? [part0016.html#toclev_22]

Polymorphism? [part0016.html#toclev_23]

Conclusion [part0016.html#toclev_24]

Chapter 6     Functional Programming [part0017.html#ch6]

Squares of Integers [part0017.html#toclev_25]

Immutability and Architecture [part0017.html#toclev_26]

Segregation of Mutability [part0017.html#toclev_27]

Event Sourcing [part0017.html#toclev_28]

Conclusion [part0017.html#toclev_29]

PART III      Design Principles [part0018.html#part3]

Chapter 7     SRP: The Single Responsibility Principle [part0019.html#ch7]

Symptom 1: Accidental Duplication [part0019.html#toclev_30]

Symptom 2: Merges [part0019.html#toclev_31]

Solutions [part0019.html#toclev_32]

Conclusion [part0019.html#toclev_33]

Chapter 8     OCP: The Open-Closed Principle [part0020.html#ch8]

A Thought Experiment [part0020.html#toclev_35]

Directional Control [part0020.html#toclev_36]

Information Hiding [part0020.html#toclev_37]

Conclusion [part0020.html#toclev_38]

Chapter 9     LSP: The Liskov Substitution Principle [part0021.html#ch9]

Guiding the Use of Inheritance [part0021.html#toclev_39]

The Square/Rectangle Problem [part0021.html#toclev_40]

LSP and Architecture [part0021.html#toclev_41]

Example LSP Violation [part0021.html#toclev_42]

Conclusion [part0021.html#toclev_43]

Chapter 10   ISP: The Interface Segregation Principle [part0022.html#ch10]

ISP and Language [part0022.html#toclev_44]

ISP and Architecture [part0022.html#toclev_45]

Conclusion [part0022.html#toclev_46]

Chapter 11   DIP: The Dependency Inversion Principle [part0023.html#ch11]

Stable Abstractions [part0023.html#toclev_47]

Factories [part0023.html#toclev_48]

Concrete Components [part0023.html#toclev_49]

Conclusion [part0023.html#toclev_50]

PART IV      Component Principles [part0024.html#part4]

Chapter 12   Components [part0025.html#ch12]

A Brief History of Components [part0025.html#toclev_51]

Relocatability [part0025.html#toclev_52]

Linkers [part0025.html#toclev_53]

Conclusion [part0025.html#toclev_54]

Chapter 13   Component Cohesion [part0026.html#ch13]

The Reuse/Release Equivalence Principle [part0026.html#toclev_55]

The Common Closure Principle [part0026.html#toclev_56]

The Common Reuse Principle [part0026.html#toclev_57]

The Tension Diagram for Component Cohesion [part0026.html#toclev_58]

Conclusion [part0026.html#toclev_59]

Chapter 14   Component Coupling [part0027.html#ch14]

The Acyclic Dependencies Principle [part0027.html#toclev_60]

Top-Down Design [part0027.html#toclev_61]

The Stable Dependencies Principle [part0027.html#toclev_62]

The Stable Abstractions Principle [part0027.html#toclev_63]

Conclusion [part0027.html#toclev_64]

PART V       Architecture [part0028.html#part5]

Chapter 15   What Is Architecture? [part0029.html#ch15]

Development [part0029.html#toclev_65]

Deployment [part0029.html#toclev_66]

Operation [part0029.html#toclev_67]

Maintenance [part0029.html#toclev_68]

Keeping Options Open [part0029.html#toclev_69]

Device Independence [part0029.html#toclev_70]

Junk Mail [part0029.html#toclev_71]

Physical Addressing [part0029.html#toclev_72]

Conclusion [part0029.html#toclev_73]

Chapter 16   Independence [part0030.html#ch16]

Use Cases [part0030.html#toclev_74]

Operation [part0030.html#toclev_75]

Development [part0030.html#toclev_76]

Deployment [part0030.html#toclev_77]

Leaving Options Open [part0030.html#toclev_78]

Decoupling Layers [part0030.html#toclev_79]

Decoupling Use Cases [part0030.html#toclev_80]

Decoupling Mode [part0030.html#toclev_81]

Independent Develop-ability [part0030.html#toclev_82]

Independent Deployability [part0030.html#toclev_83]

Duplication [part0030.html#toclev_84]

Decoupling Modes (Again) [part0030.html#toclev_85]

Conclusion [part0030.html#toclev_86]

Chapter 17   Boundaries: Drawing Lines [part0031.html#ch17]

A Couple of Sad Stories [part0031.html#toclev_87]

FitNesse [part0031.html#toclev_88]

Which Lines Do You Draw, and When Do You Draw Them? [part0031.html#toclev_89]

What About Input and Output? [part0031.html#toclev_90]

Plugin Architecture [part0031.html#toclev_91]

The Plugin Argument [part0031.html#toclev_92]

Conclusion [part0031.html#toclev_93]

Chapter 18   Boundary Anatomy [part0032.html#ch18]

Boundary Crossing [part0032.html#toclev_94]

The Dreaded Monolith [part0032.html#toclev_95]

Deployment Components [part0032.html#toclev_96]

Threads [part0032.html#toclev_97]

Local Processes [part0032.html#toclev_98]

Services [part0032.html#toclev_99]

Conclusion [part0032.html#toclev_100]

Chapter 19   Policy and Level [part0033.html#ch19]

Level [part0033.html#toclev_101]

Conclusion [part0033.html#toclev_102]

Chapter 20   Business Rules [part0034.html#ch20]

Entities [part0034.html#toclev_103]

Use Cases [part0034.html#toclev_104]

Request and Response Models [part0034.html#toclev_105]

Conclusion [part0034.html#toclev_106]

Chapter 21   Screaming Architecture [part0035.html#ch21]

The Theme of an Architecture [part0035.html#toclev_107]

The Purpose of an Architecture [part0035.html#toclev_108]

But What About the Web? [part0035.html#toclev_109]

Frameworks Are Tools, Not Ways of Life [part0035.html#toclev_110]

Testable Architectures [part0035.html#toclev_111]

Conclusion [part0035.html#toclev_112]

Chapter 22   The Clean Architecture [part0036.html#ch22]

The Dependency Rule [part0036.html#toclev_113]

A Typical Scenario [part0036.html#toclev_114]

Conclusion [part0036.html#toclev_115]

Chapter 23   Presenters and Humble Objects [part0037.html#ch23]

The Humble Object Pattern [part0037.html#toclev_116]

Presenters and Views [part0037.html#toclev_117]

Testing and Architecture [part0037.html#toclev_118]

Database Gateways [part0037.html#toclev_119]

Data Mappers [part0037.html#toclev_120]

Service Listeners [part0037.html#toclev_121]

Conclusion [part0037.html#toclev_122]

Chapter 24   Partial Boundaries [part0038.html#ch24]

Skip the Last Step [part0038.html#toclev_123]

One-Dimensional Boundaries [part0038.html#toclev_124]

Facades [part0038.html#toclev_125]

Conclusion [part0038.html#toclev_126]

Chapter 25   Layers and Boundaries [part0039.html#ch25]

Hunt the Wumpus [part0039.html#toclev_127]

Clean Architecture? [part0039.html#toclev_128]

Crossing the Streams [part0039.html#toclev_129]

Splitting the Streams [part0039.html#toclev_130]

Conclusion [part0039.html#toclev_131]

Chapter 26   The Main Component [part0040.html#ch26]

The Ultimate Detail [part0040.html#toclev_132]

Conclusion [part0040.html#toclev_133]

Chapter 27   Services: Great and Small [part0041.html#ch27]

Service Architecture? [part0041.html#toclev_134]

Service Benefits? [part0041.html#toclev_135]

The Kitty Problem [part0041.html#toclev_136]

Objects to the Rescue [part0041.html#toclev_137]

Component-Based Services [part0041.html#toclev_138]

Cross-Cutting Concerns [part0041.html#toclev_139]

Conclusion [part0041.html#toclev_140]

Chapter 28   The Test Boundary [part0042.html#ch28]

Tests as System Components [part0042.html#toclev_141]

Design for Testability [part0042.html#toclev_142]

The Testing API [part0042.html#toclev_143]

Conclusion [part0042.html#toclev_144]

Chapter 29   Clean Embedded Architecture [part0043.html#ch29]

App-titude Test [part0043.html#toclev_145]

The Target-Hardware Bottleneck [part0043.html#toclev_146]

Conclusion [part0043.html#toclev_147]

PART VI      Details [part0044.html#part6]

Chapter 30   The Database Is a Detail [part0045.html#ch30]

Relational Databases [part0045.html#toclev_148]

Why Are Database Systems So Prevalent? [part0045.html#toclev_149]

What If There Were No Disk? [part0045.html#toclev_150]

Details [part0045.html#toclev_151]

But What about Performance? [part0045.html#toclev_152]

Anecdote [part0045.html#toclev_153]

Conclusion [part0045.html#toclev_154]

Chapter 31   The Web Is a Detail [part0046.html#ch31]

The Endless Pendulum [part0046.html#toclev_155]

The Upshot [part0046.html#toclev_156]

Conclusion [part0046.html#toclev_157]

Chapter 32   Frameworks Are Details [part0047.html#ch32]

Framework Authors [part0047.html#toclev_158]

Asymmetric Marriage [part0047.html#toclev_159]

The Risks [part0047.html#toclev_160]

The Solution [part0047.html#toclev_161]

I Now Pronounce You … [part0047.html#toclev_162]

Conclusion [part0047.html#toclev_163]

Chapter 33   Case Study: Video Sales [part0048.html#ch33]

The Product [part0048.html#toclev_164]

Use Case Analysis [part0048.html#toclev_165]

Component Architecture [part0048.html#toclev_166]

Dependency Management [part0048.html#toclev_167]

Conclusion [part0048.html#toclev_168]

Chapter 34   The Missing Chapter [part0049.html#ch34]

Package by Layer [part0049.html#toclev_169]

Package by Feature [part0049.html#toclev_170]

Ports and Adapters [part0049.html#toclev_171]

Package by Component [part0049.html#toclev_172]

The Devil Is in the Implementation Details [part0049.html#toclev_173]

Organization versus Encapsulation [part0049.html#toclev_174]

Other Decoupling Modes [part0049.html#toclev_175]

Conclusion: The Missing Advice [part0049.html#toclev_176]

PART VII     Appendix [part0050.html#part7]

Appendix A   Architecture Archaeology [part0051.html#appendixa]

Index [part0052.html#index]

Sau

Bình luận (0)

Đăng nhập để viết bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!