{"product_id":"clean-architecture-a-craftsmans-guide-to-software-structure-and-design","title":"Clean Architecture: A Craftsman's Guide to Software Structure and Design","description":"\u003ctable align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\"\u003e\n\u003ctr\u003e\n\u003ctd class=\"productDetailSmallElements\"\u003e\n\u003cp\u003e\n\u003cstrong\u003eTable of Contents\u003c\/strong\u003e:\u003cbr\u003e\n\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003ci\u003eForeword xv\u003c\/i\u003e\u003cp\u003e\u003c\/p\u003e Preface xix\u003cp\u003e\u003c\/p\u003e Acknowledgments xxiii\u003cp\u003e\u003c\/p\u003e About the Author xxv\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003ePart I: Introduction 1\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Chapter 1: What Is Design and Architecture? 3\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e The Goal? 4 \n\u003cp\u003e\u003c\/p\u003e Case Study 5 \n\u003cp\u003e\u003c\/p\u003e Conclusion 12 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 2: A Tale of Two Values 13\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Behavior 14 \n\u003cp\u003e\u003c\/p\u003e Architecture 14 \n\u003cp\u003e\u003c\/p\u003e The Greater Value 15 \n\u003cp\u003e\u003c\/p\u003e Eisenhower's Matrix 16 \n\u003cp\u003e\u003c\/p\u003e Fight for the Architecture 18 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003ePart II: Starting with the Bricks: Programming Paradigms 19\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Chapter 3: Paradigm Overview 21\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e Structured Programming 22 \n\u003cp\u003e\u003c\/p\u003e Object-Oriented Programming 22 \n\u003cp\u003e\u003c\/p\u003e Functional Programming 22 \n\u003cp\u003e\u003c\/p\u003e Food for Thought 23 \n\u003cp\u003e\u003c\/p\u003e Conclusion 24 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 4: Structured Programming 25\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Proof 27 \n\u003cp\u003e\u003c\/p\u003e A Harmful Proclamation 28 \n\u003cp\u003e\u003c\/p\u003e Functional Decomposition 29 \n\u003cp\u003e\u003c\/p\u003e No Formal Proofs 30 \n\u003cp\u003e\u003c\/p\u003e Science to the Rescue 30 \n\u003cp\u003e\u003c\/p\u003e Tests 31 \n\u003cp\u003e\u003c\/p\u003e Conclusion 31 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 5: Object-Oriented Programming 33\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Encapsulation? 34 \n\u003cp\u003e\u003c\/p\u003e Inheritance? 37 \n\u003cp\u003e\u003c\/p\u003e Polymorphism? 40 \n\u003cp\u003e\u003c\/p\u003e Conclusion 47 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 6: Functional Programming 49\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Squares of Integers 50 \n\u003cp\u003e\u003c\/p\u003e Immutability and Architecture 52 \n\u003cp\u003e\u003c\/p\u003e Segregation of Mutability 52 \n\u003cp\u003e\u003c\/p\u003e Event Sourcing 54 \n\u003cp\u003e\u003c\/p\u003e Conclusion 56 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003ePart III: Design Principles 57\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Chapter 7: SRP: The Single Responsibility Principle 61\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e Symptom 1: Accidental Duplication 63 \n\u003cp\u003e\u003c\/p\u003e Symptom 2: Merges 65 \n\u003cp\u003e\u003c\/p\u003e Solutions 66 \n\u003cp\u003e\u003c\/p\u003e Conclusion 67 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 8: OCP: The Open-Closed Principle 69\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e A Thought Experiment 70 \n\u003cp\u003e\u003c\/p\u003e Directional Control 74 \n\u003cp\u003e\u003c\/p\u003e Information Hiding 74 \n\u003cp\u003e\u003c\/p\u003e Conclusion 75 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 9: LSP: The Liskov Substitution Principle 77\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Guiding the Use of Inheritance 78 \n\u003cp\u003e\u003c\/p\u003e The Square\/Rectangle Problem 79 \n\u003cp\u003e\u003c\/p\u003e LSP and Architecture 80 \n\u003cp\u003e\u003c\/p\u003e Example LSP Violation 80 \n\u003cp\u003e\u003c\/p\u003e Conclusion 82 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 10: ISP: The Interface Segregation Principle 83\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e ISP and Language 85 \n\u003cp\u003e\u003c\/p\u003e ISP and Architecture 86 \n\u003cp\u003e\u003c\/p\u003e Conclusion 86 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 11: DIP: The Dependency Inversion Principle 87\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Stable Abstractions 88 \n\u003cp\u003e\u003c\/p\u003e Factories 89 \n\u003cp\u003e\u003c\/p\u003e Concrete Components 91 \n\u003cp\u003e\u003c\/p\u003e Conclusion 91 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003ePart IV: Component Principles 93\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Chapter 12: Components 95\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e A Brief History of Components 96 \n\u003cp\u003e\u003c\/p\u003e Relocatability 99 \n\u003cp\u003e\u003c\/p\u003e Linkers 100 \n\u003cp\u003e\u003c\/p\u003e Conclusion 102 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 13: Component Cohesion 103\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Reuse\/Release Equivalence Principle 104 \n\u003cp\u003e\u003c\/p\u003e The Common Closure Principle 105 \n\u003cp\u003e\u003c\/p\u003e The Common Reuse Principle 107 \n\u003cp\u003e\u003c\/p\u003e The Tension Diagram for Component Cohesion 108 \n\u003cp\u003e\u003c\/p\u003e Conclusion 110 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 14: Component Coupling 111\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Acyclic Dependencies Principle 112 \n\u003cp\u003e\u003c\/p\u003e Top-Down Design 118 \n\u003cp\u003e\u003c\/p\u003e The Stable Dependencies Principle 120 \n\u003cp\u003e\u003c\/p\u003e The Stable Abstractions Principle 126 \n\u003cp\u003e\u003c\/p\u003e Conclusion 132 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003ePart V: Architecture 133\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Chapter 15: What Is Architecture? 135\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e Development 137 \n\u003cp\u003e\u003c\/p\u003e Deployment 138 \n\u003cp\u003e\u003c\/p\u003e Operation 138 \n\u003cp\u003e\u003c\/p\u003e Maintenance 139 \n\u003cp\u003e\u003c\/p\u003e Keeping Options Open 140 \n\u003cp\u003e\u003c\/p\u003e Device Independence 142 \n\u003cp\u003e\u003c\/p\u003e Junk Mail 144 \n\u003cp\u003e\u003c\/p\u003e Physical Addressing 145 \n\u003cp\u003e\u003c\/p\u003e Conclusion 146 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 16: Independence 147\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Use Cases 148 \n\u003cp\u003e\u003c\/p\u003e Operation 149 \n\u003cp\u003e\u003c\/p\u003e Development 149 \n\u003cp\u003e\u003c\/p\u003e Deployment 150 \n\u003cp\u003e\u003c\/p\u003e Leaving Options Open 150 \n\u003cp\u003e\u003c\/p\u003e Decoupling Layers 151 \n\u003cp\u003e\u003c\/p\u003e Decoupling Use Cases 152 \n\u003cp\u003e\u003c\/p\u003e Decoupling Mode 153 \n\u003cp\u003e\u003c\/p\u003e Independent Develop-ability 153 \n\u003cp\u003e\u003c\/p\u003e Independent Deployability 154 \n\u003cp\u003e\u003c\/p\u003e Duplication 154 \n\u003cp\u003e\u003c\/p\u003e Decoupling Modes (Again) 155 \n\u003cp\u003e\u003c\/p\u003e Conclusion 158 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 17: Boundaries: Drawing Lines 159\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e A Couple of Sad Stories 160 \n\u003cp\u003e\u003c\/p\u003e FitNesse 163 \n\u003cp\u003e\u003c\/p\u003e Which Lines Do You Draw, and When Do You Draw Them? 165 \n\u003cp\u003e\u003c\/p\u003e What About Input and Output? 169 \n\u003cp\u003e\u003c\/p\u003e Plugin Architecture 170 \n\u003cp\u003e\u003c\/p\u003e The Plugin Argument 172 \n\u003cp\u003e\u003c\/p\u003e Conclusion 173 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 18: Boundary Anatomy 175\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Boundary Crossing 176 \n\u003cp\u003e\u003c\/p\u003e The Dreaded Monolith 176 \n\u003cp\u003e\u003c\/p\u003e Deployment Components 178 \n\u003cp\u003e\u003c\/p\u003e Threads 179 \n\u003cp\u003e\u003c\/p\u003e Local Processes 179 \n\u003cp\u003e\u003c\/p\u003e Services 180 \n\u003cp\u003e\u003c\/p\u003e Conclusion 181 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 19: Policy and Level 183\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Level 184 \n\u003cp\u003e\u003c\/p\u003e Conclusion 187 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 20: Business Rules 189\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Entities 190 \n\u003cp\u003e\u003c\/p\u003e Use Cases 191 \n\u003cp\u003e\u003c\/p\u003e Request and Response Models 193 \n\u003cp\u003e\u003c\/p\u003e Conclusion 194 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 21: Screaming Architecture 195\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Theme of an Architecture 196 \n\u003cp\u003e\u003c\/p\u003e The Purpose of an Architecture 197 \n\u003cp\u003e\u003c\/p\u003e But What About the Web? 197 \n\u003cp\u003e\u003c\/p\u003e Frameworks Are Tools, Not Ways of Life 198 \n\u003cp\u003e\u003c\/p\u003e Testable Architectures 198 \n\u003cp\u003e\u003c\/p\u003e Conclusion 199 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 22: The Clean Architecture 201\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Dependency Rule 203 \n\u003cp\u003e\u003c\/p\u003e A Typical Scenario 207 \n\u003cp\u003e\u003c\/p\u003e Conclusion 209 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 23: Presenters and Humble Objects 211\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Humble Object Pattern 212 \n\u003cp\u003e\u003c\/p\u003e Presenters and Views 212 \n\u003cp\u003e\u003c\/p\u003e Testing and Architecture 213 \n\u003cp\u003e\u003c\/p\u003e Database Gateways 214 \n\u003cp\u003e\u003c\/p\u003e Data Mappers 214 \n\u003cp\u003e\u003c\/p\u003e Service Listeners 215 \n\u003cp\u003e\u003c\/p\u003e Conclusion 215 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 24: Partial Boundaries 217\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Skip the Last Step 218 \n\u003cp\u003e\u003c\/p\u003e One-Dimensional Boundaries 219 \n\u003cp\u003e\u003c\/p\u003e Facades 220 \n\u003cp\u003e\u003c\/p\u003e Conclusion 220 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 25: Layers and Boundaries 221\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Hunt the Wumpus 222 \n\u003cp\u003e\u003c\/p\u003e Clean Architecture? 223 \n\u003cp\u003e\u003c\/p\u003e Crossing the Streams 226 \n\u003cp\u003e\u003c\/p\u003e Splitting the Streams 227 \n\u003cp\u003e\u003c\/p\u003e Conclusion 228 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 26: The Main Component 231\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Ultimate Detail 232 \n\u003cp\u003e\u003c\/p\u003e Conclusion 237 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 27: Services: Great and Small 239\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Service Architecture? 240 \n\u003cp\u003e\u003c\/p\u003e Service Benefits? 240 \n\u003cp\u003e\u003c\/p\u003e The Kitty Problem 242 \n\u003cp\u003e\u003c\/p\u003e Objects to the Rescue 244 \n\u003cp\u003e\u003c\/p\u003e Component-Based Services 245 \n\u003cp\u003e\u003c\/p\u003e Cross-Cutting Concerns 246 \n\u003cp\u003e\u003c\/p\u003e Conclusion 247 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 28: The Test Boundary 249\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Tests as System Components 250 \n\u003cp\u003e\u003c\/p\u003e Design for Testability 251 \n\u003cp\u003e\u003c\/p\u003e The Testing API 252 \n\u003cp\u003e\u003c\/p\u003e Conclusion 253 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 29: Clean Embedded Architecture 255\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e App-titude Test 258 \n\u003cp\u003e\u003c\/p\u003e The Target-Hardware Bottleneck 261 \n\u003cp\u003e\u003c\/p\u003e Conclusion 273 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003ePart VI: Details 275\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e \u003cp\u003e\u003c\/p\u003e Chapter 30: The Database Is a Detail 277\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e Relational Databases 278 \n\u003cp\u003e\u003c\/p\u003e Why Are Database Systems So Prevalent? 279 \n\u003cp\u003e\u003c\/p\u003e What If There Were No Disk? 280 \n\u003cp\u003e\u003c\/p\u003e Details 281 \n\u003cp\u003e\u003c\/p\u003e But What about Performance? 281 \n\u003cp\u003e\u003c\/p\u003e Anecdote 281 \n\u003cp\u003e\u003c\/p\u003e Conclusion 283 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 31: The Web Is a Detail 285\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Endless Pendulum 286 \n\u003cp\u003e\u003c\/p\u003e The Upshot 288 \n\u003cp\u003e\u003c\/p\u003e Conclusion 289 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 32: Frameworks Are Details 291\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Framework Authors 292 \n\u003cp\u003e\u003c\/p\u003e Asymmetric Marriage 292 \n\u003cp\u003e\u003c\/p\u003e The Risks 293 \n\u003cp\u003e\u003c\/p\u003e The Solution 294 \n\u003cp\u003e\u003c\/p\u003e I Now Pronounce You ... 295 \n\u003cp\u003e\u003c\/p\u003e Conclusion 295 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 33: Case Study: Video Sales 297\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e The Product 298 \n\u003cp\u003e\u003c\/p\u003e Use Case Analysis 298 \n\u003cp\u003e\u003c\/p\u003e Component Architecture 300 \n\u003cp\u003e\u003c\/p\u003e Dependency Management 302 \n\u003cp\u003e\u003c\/p\u003e Conclusion 302 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003eChapter 34: The Missing Chapter 303\u003c\/b\u003e\n\u003cp\u003e\u003c\/p\u003e Package by Layer 304 \n\u003cp\u003e\u003c\/p\u003e Package by Feature 306 \n\u003cp\u003e\u003c\/p\u003e Ports and Adapters 308 \n\u003cp\u003e\u003c\/p\u003e Package by Component 310 \n\u003cp\u003e\u003c\/p\u003e The Devil Is in the Implementation Details 315 \n\u003cp\u003e\u003c\/p\u003e Organization versus Encapsulation 316 \n\u003cp\u003e\u003c\/p\u003e Other Decoupling Modes 319 \n\u003cp\u003e\u003c\/p\u003e Conclusion: The Missing Advice 321 \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cb\u003ePart VII: Appendix 323\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e\n\u003cbr\u003e\u003cp\u003e\u003c\/p\u003e Appendix A Architecture Archaeology 325\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\n\u003ci\u003eIndex 375\u003c\/i\u003e\n\u003cp\u003e\u003c\/p\u003e Normal 0 false false false EN-US X-NONE X-NONE\u003cbr\u003e\u003cbr\u003e\n\u003cstrong\u003eBrief Description\u003c\/strong\u003e:\u003cbr\u003e\n\t\t\t\t\t\t\t\tBuilding upon the success of best-sellers The Clean Coder and Clean Code, legendary software craftsman Robert C. \"Uncle Bob\" Martin shows how to bring greater professionalism and discipline to application architecture and design. As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say \"use your best judgment\": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, is essential reading for every software architect, systems analyst, system designer, and software manager-- and for any programmer who aspires to these roles or is impacted by their work.\u003cbr\u003e\u003cbr\u003e\n\u003cstrong\u003eBrief Description\u003c\/strong\u003e:\u003cbr\u003e\n\t\t\t\t\t\t\t\tBuilding upon the success of best-sellers \n\u003ci\u003eThe Clean Coder \u003c\/i\u003eand \n\u003ci\u003eClean Code\u003c\/i\u003e, legendary software craftsman Robert C. \"Uncle Bob\" Martin shows how to bring greater professionalism and discipline to application architecture and design. \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e As with his other books, Martin's \n\u003cb\u003e\u003cem\u003eClean Architecture\u003c\/em\u003e \u003c\/b\u003edoesn't merely present multiple choices and options, and say \"use your best judgment\" it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like: \n\u003cp\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps? \u003c\/li\u003e\n\u003cli\u003e What are the core principles of software architecture? \u003c\/li\u003e\n\u003cli\u003e What is the role of the architect, and what is he\/she really trying to achieve? \u003c\/li\u003e\n\u003cli\u003e What are the core principles of software design? \u003c\/li\u003e\n\u003cli\u003e How do designs and architectures go wrong, and what can you do about it? \u003c\/li\u003e\n\u003cli\u003e What are the disciplines and practices of professional architects and designers? \u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cb\u003e\u003cem\u003eClean Architecture\u003c\/em\u003e\u003c\/b\u003e is essential reading for every software architect, systems analyst, system designer, and software manager -- and for any programmer who aspires to these roles or is impacted by their work. \n\u003cp\u003e\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003cstrong\u003eBiographical Note\u003c\/strong\u003e:\u003cbr\u003e\n\u003cb\u003eRobert C. Martin\u003c\/b\u003e (\"Uncle Bob\") has been a programmer since 1970. He is founder of Uncle Bob Consulting, LLC, and cofounder with his son Micah Martin of The Clean Coders LLC. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows. He has authored and edited many books, including: \n\u003ci\u003eDesigning Object Oriented C++ Applications Using the Booch Method, Patterns Languages of Program Design 3, More C++ Gems, Extreme Programming in Practice, Agile Software Development: Principles, Patterns, and Practices, UML for Java Programmers, Clean Code, \u003c\/i\u003e and \n\u003ci\u003eThe Clean Coder\u003c\/i\u003e. A leader in the industry of software development, Martin served for three years as editor-in-chief of the \n\u003ci\u003eC++ Report\u003c\/i\u003e, and he served as the first chairman of the Agile Alliance.\u003cbr\u003e\u003cbr\u003e\n\u003cstrong\u003ePublisher Marketing\u003c\/strong\u003e:\u003cbr\u003e\n\t\t\t\t\t\t\t\tBuilding upon the success of best-sellers \n\u003ci\u003eThe Clean Coder \u003c\/i\u003eand \n\u003ci\u003eClean Code\u003c\/i\u003e, legendary software craftsman Robert C. \"Uncle Bob\" Martin shows how to bring greater professionalism and discipline to application architecture and design. \n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e As with his other books, Martin's \n\u003cb\u003eClean Architecture \u003c\/b\u003edoesn't merely present multiple choices and options, and say \"use your best judgment\" it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like: \n\u003cp\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps? \u003c\/li\u003e\n\u003cli\u003e What are the core principles of software architecture? \u003c\/li\u003e\n\u003cli\u003e What is the role of the architect, and what is he\/she really trying to achieve? \u003c\/li\u003e\n\u003cli\u003e What are the core principles of software design? \u003c\/li\u003e\n\u003cli\u003e How do designs and architectures go wrong, and what can you do about it? \u003c\/li\u003e\n\u003cli\u003e What are the disciplines and practices of professional architects and designers? \u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cb\u003eClean Architecture\u003c\/b\u003e is essential reading for every software architect, systems analyst, system designer, and software manager -- and for any programmer who aspires to these roles or is impacted by their work. \n\u003cp\u003e\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/table\u003e\u003cp\u003e\u003cb\u003eAuthor:\u003c\/b\u003e Martin, Robert\u003cbr\u003e\u003cb\u003ePublisher:\u003c\/b\u003e Pearson\u003cbr\u003e\u003cb\u003eBinding:\u003c\/b\u003e Paperback\u003cbr\u003e\u003cb\u003ePub Date:\u003c\/b\u003e 2017-09-10\u003cbr\u003e\u003cb\u003eBISAC:\u003c\/b\u003e Computers \/ Software Development \u0026amp; Engineering \/ Quality Assurance \u0026amp; Testing|Computers \/ Computer Architecture\u003cbr\u003e\u003cb\u003eSubjects:\u003c\/b\u003e History|Computer software|Development|Computer programming|Software architecture\u003cbr\u003e\u003cb\u003eWeight:\u003c\/b\u003e 1.5 lbs\u003cbr\u003e\u003cb\u003eISBN:\u003c\/b\u003e 9780134494166\u003cbr\u003e\u003cb\u003eASIN:\u003c\/b\u003e -\u003cbr\u003e\u003cb\u003eSKU:\u003c\/b\u003e SP-9780134494166\u003c\/p\u003e","brand":"Pearson","offers":[{"title":"Default Title","offer_id":47700459356291,"sku":"SP-9780134494166","price":62.49,"currency_code":"USD","in_stock":true}],"url":"https:\/\/sebink.com\/products\/clean-architecture-a-craftsmans-guide-to-software-structure-and-design","provider":"Sebink","version":"1.0","type":"link"}