کتاب معماری تمیز – راهنمایی استادانه برای طراحی و ساختار نرم‌افزار

عنوان:

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

نویسنده:

Martin, Robert

انتشارات:

Pearson Education;Prentice Hal

نسخه:

pdf

حجم:

8.84MB

دانلود

معرفی کتاب: "معماری تمیز – راهنمایی استادانه برای طراحی و ساختار نرم‌افزار"

راه‌حل‌های عملی معماری نرم‌افزار از رابرت سی. مارتین افسانه‌ای (Uncle Bob)

با به‌کارگیری قوانین جهانی معماری نرم‌افزار، می‌توانید بهره‌وری توسعه‌دهندگان را در طول عمر هر سیستم نرم‌افزاری به‌طور چشم‌گیری افزایش دهید. حالا، با تکیه بر موفقیت کتاب‌های پرفروش Clean Code و The Clean Coder، استاد بزرگ مهندسی نرم‌افزار، رابرت سی. مارتین (Uncle Bob)، این قوانین را فاش می‌کند و به شما یاد می‌دهد چگونه آن‌ها را به کار بگیرید.

کتاب Clean Architecture صرفاً گزینه‌ها را پیش روی شما نمی‌گذارد. رابرت مارتین با بیش از نیم قرن تجربه در محیط‌های مختلف نرم‌افزاری، به شما می‌گوید چه تصمیم‌هایی باید بگیرید و چرا این تصمیم‌ها برای موفقیت حیاتی‌اند.

همان‌طور که از Uncle Bob انتظار می‌رود، این کتاب سرشار از راه‌حل‌های مستقیم، صریح و بی‌پرده برای چالش‌های واقعی‌ای است که با آن‌ها روبه‌رو خواهید شد—چالش‌هایی که می‌توانند پروژه‌های شما را بسازند یا از هم بپاشند.

در این کتاب یاد می‌گیرید که:

  • • معماران نرم‌افزار باید به چه چیزهایی دست یابند و چه اصول و روش‌هایی را برای رسیدن به آن‌ها به کار ببرند؛
  • • اصول اساسی طراحی نرم‌افزار در رابطه با کارکردها، جداسازی مؤلفه‌ها، و مدیریت داده‌ها چیست؛
  • • چگونه الگوهای برنامه‌نویسی با محدود کردن عملکردها، نظم و انضباط لازم را تحمیل می‌کنند؛
  • • چه چیزهایی در طراحی واقعاً حیاتی هستند و چه چیزهایی صرفاً جزئیات‌اند؛
  • • چگونه ساختارهای سطح‌بالای بهینه برای برنامه‌های وب، پایگاه‌داده، کلاینت‌سنگین، کنسولی و نهفته (Embedded) را پیاده‌سازی کنید؛
  • • مرزها و لایه‌های مناسب را تعریف کنید و مؤلفه‌ها و سرویس‌ها را به‌درستی سازمان‌دهی نمایید؛
  • • چرا طراحی‌ها و معماری‌ها شکست می‌خورند و چطور می‌توانید از این شکست‌ها جلوگیری کنید یا آن‌ها را اصلاح نمایید.

کتاب Clean Architecture یک منبع ضروری برای همه‌ی معماران نرم‌افزار (چه فعلی و چه آینده‌دار)، تحلیل‌گران سیستم، طراحان سیستم، مدیران نرم‌افزار و حتی تمام برنامه‌نویسانی است که باید طرح‌های دیگران را پیاده‌سازی کنند.

فهرست مطالب

  • Title Page
  • Copyright Page
  • Dedication
  • Contents
  • Foreword
  • Preface
  • Acknowledgments
  • About the Author
  • PART I Introduction
  • Chapter 1 What Is Design and Architecture?
  • The Goal?
  • Case Study
  • Conclusion
  • Chapter 2 A Tale of Two Values
  • Behavior
  • Architecture
  • The Greater Value
  • Eisenhower’s Matrix
  • Fight for the Architecture
  • PART II Starting with the Bricks: Programming Paradigms
  • Chapter 3 Paradigm Overview
  • Structured Programming
  • Object-Oriented Programming
  • Functional Programming
  • Food for Thought
  • Conclusion
  • Chapter 4 Structured Programming
  • Proof
  • A Harmful Proclamation
  • Functional Decomposition
  • No Formal Proofs
  • Science to the Rescue
  • Tests
  • Conclusion
  • Chapter 5 Object-Oriented Programming
  • Encapsulation?
  • Inheritance?
  • Polymorphism?
  • Conclusion
  • Chapter 6 Functional Programming
  • Squares of Integers
  • Immutability and Architecture
  • Segregation of Mutability
  • Event Sourcing
  • Conclusion
  • PART III Design Principles
  • Chapter 7 SRP: The Single Responsibility Principle
  • Symptom 1: Accidental Duplication
  • Symptom 2: Merges
  • Solutions
  • Conclusion
  • Chapter 8 OCP: The Open-Closed Principle
  • A Thought Experiment
  • Directional Control
  • Information Hiding
  • Conclusion
  • Chapter 9 LSP: The Liskov Substitution Principle
  • Guiding the Use of Inheritance
  • The Square/Rectangle Problem
  • LSP and Architecture
  • Example LSP Violation
  • Conclusion
  • Chapter 10 ISP: The Interface Segregation Principle
  • ISP and Language
  • ISP and Architecture
  • Conclusion
  • Chapter 11 DIP: The Dependency Inversion Principle
  • Stable Abstractions
  • Factories
  • Concrete Components
  • Conclusion
  • PART IV Component Principles
  • Chapter 12 Components
  • A Brief History of Components
  • Relocatability
  • Linkers
  • Conclusion
  • Chapter 13 Component Cohesion
  • The Reuse/Release Equivalence Principle
  • The Common Closure Principle
  • The Common Reuse Principle
  • The Tension Diagram for Component Cohesion
  • Conclusion
  • Chapter 14 Component Coupling
  • The Acyclic Dependencies Principle
  • Top-Down Design
  • The Stable Dependencies Principle
  • The Stable Abstractions Principle
  • Conclusion
  • PART V Architecture
  • Chapter 15 What Is Architecture?
  • Development
  • Deployment
  • Operation
  • Maintenance
  • Keeping Options Open
  • Device Independence
  • Junk Mail
  • Physical Addressing
  • Conclusion
  • Chapter 16 Independence
  • Use Cases
  • Operation
  • Development
  • Deployment
  • Leaving Options Open
  • Decoupling Layers
  • Decoupling Use Cases
  • Decoupling Mode
  • Independent Develop-ability
  • Independent Deployability
  • Duplication
  • Decoupling Modes (Again)
  • Conclusion
  • Chapter 17 Boundaries: Drawing Lines
  • A Couple of Sad Stories
  • FitNesse
  • Which Lines Do You Draw, and When Do You Draw Them?
  • What About Input and Output?
  • Plugin Architecture
  • The Plugin Argument
  • Conclusion
  • Chapter 18 Boundary Anatomy
  • Boundary Crossing
  • The Dreaded Monolith
  • Deployment Components
  • Threads
  • Local Processes
  • Services
  • Conclusion
  • Chapter 19 Policy and Level
  • Level
  • Conclusion
  • Chapter 20 Business Rules
  • Entities
  • Use Cases
  • Request and Response Models
  • Conclusion
  • Chapter 21 Screaming Architecture
  • The Theme of an Architecture
  • The Purpose of an Architecture
  • But What About the Web?
  • Frameworks Are Tools, Not Ways of Life
  • Testable Architectures
  • Conclusion
  • Chapter 22 The Clean Architecture
  • The Dependency Rule
  • A Typical Scenario
  • Conclusion
  • Chapter 23 Presenters and Humble Objects
  • The Humble Object Pattern
  • Presenters and Views
  • Testing and Architecture
  • Database Gateways
  • Data Mappers
  • Service Listeners
  • Conclusion
  • Chapter 24 Partial Boundaries
  • Skip the Last Step
  • One-Dimensional Boundaries
  • Facades
  • Conclusion
  • Chapter 25 Layers and Boundaries
  • Hunt the Wumpus
  • Clean Architecture?
  • Crossing the Streams
  • Splitting the Streams
  • Conclusion
  • Chapter 26 The Main Component
  • The Ultimate Detail
  • Conclusion
  • Chapter 27 Services: Great and Small
  • Service Architecture?
  • Service Benefits?
  • The Kitty Problem
  • Objects to the Rescue
  • Component-Based Services
  • Cross-Cutting Concerns
  • Conclusion
  • Chapter 28 The Test Boundary
  • Tests as System Components
  • Design for Testability
  • The Testing API
  • Conclusion
  • Chapter 29 Clean Embedded Architecture
  • App-titude Test
  • The Target-Hardware Bottleneck
  • Conclusion
  • PART VI Details
  • Chapter 30 The Database Is a Detail
  • Relational Databases
  • Why Are Database Systems So Prevalent?
  • What If There Were No Disk?
  • Details
  • But What about Performance?
  • Anecdote
  • Conclusion
  • Chapter 31 The Web Is a Detail
  • The Endless Pendulum
  • The Upshot
  • Conclusion
  • Chapter 32 Frameworks Are Details
  • Framework Authors
  • Asymmetric Marriage
  • The Risks
  • The Solution
  • I Now Pronounce You …
  • Conclusion
  • Chapter 33 Case Study: Video Sales
  • The Product
  • Use Case Analysis
  • Component Architecture
  • Dependency Management
  • Conclusion
  • Chapter 34 The Missing Chapter
  • Package by Layer
  • Package by Feature
  • Ports and Adapters
  • Package by Component
  • The Devil Is in the Implementation Details
  • Organization versus Encapsulation
  • Other Decoupling Modes
  • Conclusion: The Missing Advice
  • PART VII Appendix
  • Appendix A Architecture Archaeology
  • Index

مشخصات

نام کتاب

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

نویسنده

Martin, Robert

انتشارات

Pearson Education;Prentice Hal

تاریخ انتشار

2018;2017

ISBN

9780134494166

تعداد صفحات

472

زبان

انگلیسی

فرمت

pdf

حجم

8.84MB

موضوع

Computer software -- Development; Computer software--Development; Electronic books; Software architecture