Clean Architecture: A Craftsman’s Guide to Software Structure and Design by Robert C. Martin

1,800.00

PDF PRINTED BOOK!

Pages: 429

Delivery All Over Pakistan Charges Will Apply.

Title May Be Different.

Due to constant currency fluctuation, prices are subject to change with or without notice.

Categories: , , Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Book description

Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”)

By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.

Martin’s Clean Architecture doesn’t merely present options. Drawing on over a half-century of experience in software environments of every imaginable type, Martin tells you what choices to make and why they are critical to your success. As you’ve come to expect from Uncle Bob, this book is packed with direct, no-nonsense solutions for the real challenges you’ll face—the ones that will make or break your projects.

  • Learn what software architects need to achieve—and core disciplines and practices for achieving it
  • Master essential software design principles for addressing function, component separation, and data management
  • See how programming paradigms impose discipline by restricting what developers can do
  • Understand what’s critically important and what’s merely a “detail”
  • Implement optimal, high-level structures for web, database, thick-client, console, and embedded applications
  • Define appropriate boundaries and layers, and organize components and services
  • See why designs and architectures go wrong, and how to prevent (or fix) these failures

Clean Architecture is essential reading for every current or aspiring software architect, systems analyst, system designer, and software manager—and for every programmer who must execute someone else’s designs.

Table of contents:
Cover Page
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
Afterword
PART VII Appendix
Appendix A Architecture Archaeology
Index

 

Reviews

There are no reviews yet.

Be the first to review “Clean Architecture: A Craftsman’s Guide to Software Structure and Design by Robert C. Martin”

Your email address will not be published. Required fields are marked *