CleanArchitecture软件架构与设计匠艺pdf下载pdf下载

CleanArchitecture软件架构与设计匠艺百度网盘pdf下载

作者:
简介:本篇主要提供CleanArchitecture软件架构与设计匠艺pdf下载
出版社:夏晚北京图书专营店
出版时间:2017-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

书名:Clean Architecture 软件架构与设计匠艺

定价:109.00元

作者:(美)RobertC.Martin(罗伯特·C·马丁)

出版社:电子工业出版社

出版日期:2017-05-01

ISBN:9787121342615

字数:513000

页码:424

版次:424

装帧:平装

开本:其他开

商品重量:

编辑推荐


内容提要


马丁的简洁代码不仅仅是提供选项。在半个世纪的软件环境中,每一种可以想象的类型,马丁告诉你做出什么选择,以及为什么它们对你的成功至关重要。正如你所渴望的,这本书中充斥着直接的、不复杂的解决方案,你将面对那些能使你的项目成败的真正挑战。

目录


PART I Introduction 1 Chapter 1 What Is Design and Architecture? 3 The Goal? 4 Case Study 5 Conclusion 12 Chapter 2 A Tale of Two Values 13 Behavior 14 Architecture 14 The Greater Value 15 Eisenhower’s Matrix 16 Fight for the Architecture 18 PART II Starting with the Bricks: Programming Paradigms 19 Chapter 3 Paradigm Overview 21 Structured Programming 22 Object-Oriented Programming 22 Functional Programming 22 Food for Thought 23 Conclusion 24 Chapter 4 Structured Programming 25 Proof 27 A Harmful Proclamation 28 Functional Deposition 29 No Formal Proofs 30 Science to the Rescue 30 Tests 31 Conclusion 31 Chapter 5 Object-Oriented Programming 33 Encapsulation? 34 Inheritance? 37 Polymorphism? 40 Conclusion 47 Chapter 6 Functional Programming 49 Squares of Integers 50 Immutability and Architecture 52 Segregation of Mutability 52 Event Sourcing 54 Conclusion 56 PART III Design Principles 57 Chapter 7 SRP: The Single Responsibility Principle 61 Symptom 1: Accidental Duplication 63 Symptom 2: Merges 65 Solutions 66 Conclusion 67 Chapter 8 OCP: The Open-Closed Principle 69 A Thought Experiment 70 Directional Control 74 Information Hiding 74 Conclusion 75 Chapter 9 LSP: The Liskov Substitution Principle 77 Guiding the Use of Inheritance 78 The Square/Rectangle Problem 79 LSP and Architecture 80 Example LSP Violation 80 Conclusion 82 Chapter 10 ISP: The Interface Segregation Principle 83 ISP and Language 85 ISP and Architecture 86 Conclusion 86 Chapter 11 DIP: The Dependency Inversion Principle 87 Stable Abstractions 88 Factories 89 Concrete Components 91 Conclusion 91 PART IV Component Principles 93 Chapter 12 Components 95 A Brief History of Components 96 Relocatability 99 Linkers 100 Conclusion 102 Chapter 13 Component Cohesion 103 The Reuse/Release Equivalence Principle 104 The Common Closure Principle 105 The Common Reuse Principle 107 The Tension Diagram for Component Cohesion 108 Conclusion 110 Chapter 14 Component Coupling 111 The Acyclic Dependencies Principle 112 Top-Down Design 118 The Stable Dependencies Principle 120 The Stable Abstractions Principle 126 Conclusion 132 PART V Architecture 133 Chapter 15 What Is Architecture? 135 Development 137 Deployment 138 Operation 138 Maintenance 139 Keeping Options Open 140 Device Independence 142 Junk Mail 144 Physical Addressing 145 Conclusion 146 Chapter 16 Independence 147 Use Cases 148 Operation 149 Development 149 Deployment 150 Leaving Options Open 150 Decoupling Layers 151 Decoupling Use Cases 152 Decoupling Mode 153 Independent Develop-ability 153 Independent Deployability 154 Duplication 154 Decoupling Modes (Again) 155 Conclusion 158 Chapter 17 Boundaries: Drawing Lines 159 A Couple of Sad Stories 160 FitNesse 163 Which Lines Do You Draw, and When Do You Draw Them? 165 What About Input and Output? 169 Plugin Architecture 170 The Plugin Argument 172 Conclusion 173 Chapter 18 Boundary Anatomy 175 Boundary Crossing 176 The Dreaded Monolith 176 Deployment Components 178 Threads 179 Local Processes 179 Services 180 Conclusion 181 Chapter 19 Policy and Level 183 Level 184 Conclusion 187 Chapter 20 Business Rules 189 Entities 190 Use Cases 191 Request and Response Models 193 Conclusion 194 Chapter 21 Screaming Architecture 195 The Theme of an Architecture 196 The Purpose of an Architecture 197 But What About the Web? 197 Frameworks Are Tools, Not Ways of Life 198 Testable Architectures 198 Conclusion 199 Chapter 22 The Clean Architecture 201 The Dependency Rule 203 A Typical Scenario 207 Conclusion 209 Chapter 23 Presenters and Humble Objects 211 The Humble Object Pattern 212 Presenters and Views 212 Testing and Architecture 213 Database Gateways 214 Data Mappers 214 Service Listeners 215 Conclusion 215 Chapter 24 Partial Boundaries 217 Skip the Last Step 218 One-Dimensional Boundaries 219 Facades 220 Conclusion 220 Chapter 25 Layers and Boundaries 221 Hunt the Wumpus 222 Clean Architecture? 223 Crossing the Streams 226 Splitting the Streams 227 Conclusion 228 Chapter 26 The Main Component 231 The Ultimate Detail 232 Conclusion 237 Chapter 27 Services: Great and Small 239 Service Architecture? 240 Service Benefits? 240 The Kitty Problem 242 Objects to the Rescue 244 Component-Based Services 245 Cross-Cutting Concerns 246 Conclusion 247 Chapter 28 The Test Boundary 249 Tests as System Components 250 Design for Testability 251 The Testing API 252 Conclusion 253 Chapter 29 Clean Embedded Architecture 255 App-titude Test 258 The Target-Hardware Bottleneck 261 Conclusion 273 PART VI Details 275 Chapter 30 The Database Is a Detail 277 Relational Databases 278 Why Are Database Systems So Prevalent? 279 What If There Were No Disk? 280 Details 281 But What about Performance? 281 Anecdote 281 Conclusion 283 Chapter 31 The Web Is a Detail 285 The Endless Pendulum 286 The Upshot 288 Conclusion 289 Chapter 32 Frameworks Are Details 291 Framework Authors 292 Asymmetric Marriage 292 The Risks 293 The Solution 294 I Now Pronounce You … 295 Conclusion 295 Chapter 33 Case Study: Video Sales 297 The Product 298 Use Case Analysis 298 Component Architecture 300 Dependency Management 302 Conclusion 302 Chapter 34 The Missing Chapter 303 Package by Layer 304 Package by Feature 306 Ports and Adapters 308 Package by Component 310 The Devil Is in the Implementation Details 315 Organization versus Encapsulation 316 Other Decoupling Modes 319 Conclusion: The Missing Advice 321 PART VII Appendix 323 Appendix A Architecture Archaeology 325 Index 375

作者介绍


   罗伯特·C·马丁(Robert C.Martin)(Bob大叔)从1970年编程至今。他是cleancoders.的联合创始人,该网站为软件开发者提供在线视频教育。同时,他还是Bob大叔咨询公司的创始人,该公司为优选大型公司提供软件开发咨询服务、培训以及技能培训服务。同时,他在8th Light公司任“首席匠人”一职,该公司是位于芝加哥的一家软件开发咨询公司。本书作者在各种行业周刊上发表了十余篇文章,同时也经常被靠前会议和行业峰会邀请进行演讲。他曾任C++Report的主编,并且曾任敏捷联盟(Agile Aliance)的主席。

Martin曾经编写和参与编辑了多本图书,包括The Clean Coder、Clean Code、UML for Java Programmers、Agile Software Development、Extreme Programming in Practice、More C++ Gems、Pattern Languages of Program Design 3,以及 Designing Objiect Oriented C++ Applications Using the Booch Method。

序言