skip to content
Covid-19 virus
COVID-19 Resources

Reliable information about the coronavirus (COVID-19) is available from the World Health Organization (current situation, international travel). Numerous and frequently-updated resource results are available from this search. OCLC’s WebJunction has pulled together information and resources to assist library staff as they consider how to handle coronavirus issues in their communities.

Image provided by: CDC/ Alissa Eckert, MS; Dan Higgins, MAM
Clean architecture : a craftsman's guide to software structure and design Preview this item
ClosePreview this item

Clean architecture : a craftsman's guide to software structure and design

Author: Robert C Martin
Publisher: London, England : Prentice Hall, [2018]
Edition/Format:   Print book : EnglishView all editions and formats
Building 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  Read more...

(not yet rated) 0 with reviews - Be the first.

More like this

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...


Genre/Form: History
Document Type: Book
All Authors / Contributors: Robert C Martin
ISBN: 9780134494166 0134494164
OCLC Number: 1004983973
Description: xxv, 404 pages : illustrations ; 24 cm
Contents: Part I. Introduction : What is design and architecture? : The goal? ; Case study --
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 : Paradigm overview : Structured programming ; Object-oriented programming ; Functional programming ; food for thought --
Structured programming : Proof ; A harmful proclamation ; Functional decomposition ; No formal proofs ; Science to the rescue ; Tests --
Object-oriented programming : Encapsulation? ; Inheritance? ; Polymorphism? --
Functional programming : Squares of integers ; Immutability and architecture ; Segregation of mutability ; Event sourcing --
Part III. Design principles : SRP: the single responsibility principle : Symptom 1: Accidental duplication ; Symptom 2: Merges ; Solutions --
OCP: the open-closed principle : A thought experiment ; Information hiding --
LSP: the Liskov substitution principle : Guiding the use of inheritance ; The square/rectangle problem ; LSP and architecture ; Example LSP violation --
ISP: the interface segregation principle : ISP and language ; ISP and architecture --
DIP: the dependency inversion principle : Stable abstractions ; Factories ; Concrete components --
Part IV. Component principles : Component cohesion : The reuse/release equivalence principle ; The common closure principle ; The common reuse principle ; The tension diagram for component cohesion --
Component coupling : The acyclic dependencies principle : Top-down design ; The stable dependencies principle ; The stable abstraction principle --
Part V. Architecture : What is architecture : Development ; Deployment ; Operation ; Maintenance ; dt Keeping options open ; Device independence ; Junk mail ; Physical addressing --
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) --
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 --
Boundary anatomy : Boundary crossing ; The dreaded monolith ; Deployment components ; Threads ; Local processes ; Services --
Policy and level --
Business rules : Entities ; Use cases ; Request and response models --
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 architecture --
The clean architecture : The dependency rule ; A typical scenario --
Presenters and humble objects : The humble object pattern ; Presenters and views ; Testing and architecture ; Database gateways ; Data mappers ; Service listeners --
Partial boundaries : Skip the last step ; One-dimensional boundaries --
Layers and boundaries : Hunt the wumpus ; Clean architecture? ; Crossing the streams ; Splitting the streams --
The main component : The ultimate detail --
Services: great and small : Service architecture? ; Service benefits? ; The kitty problem ; Objects to the rescue ; Component-based services ; Cross-cutting concerns --
The test boundary : Test as system components ; Design for testability ; The testing API --
Clean embedded architecture : App-titude test ; The target-hardware bottleneck --
Part VI. Details : 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 --
The Web is a detail : The endless pendulum ; The upshot --
Frameworks are details : Framework authors ; Asymmetric marriage ; The risks ; The solution ; I now pronounce you ... --
Case study: video sales : The product ; Use case analysis ; Component architecture ; Dependency management --
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 / Jason Gorman --
Part VII. Appendix : Architecture archaeology.
Responsibility: Robert C. Martin.


Drawing on over a half-century of experience in software environments of every imaginable type, legendary software craftsman Martin explains to readers that, by applying universal rules of software  Read more...


User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...


Be the first.
Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data


Primary Entity<\/h3>\n
<http:\/\/\/oclc\/1004983973<\/a>> # Clean architecture : a craftsman\'s guide to software structure and design<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:CreativeWork<\/a>, schema:Book<\/a> ;\u00A0\u00A0\u00A0\nlibrary:oclcnum<\/a> \"1004983973<\/span>\" ;\u00A0\u00A0\u00A0\nlibrary:placeOfPublication<\/a> <http:\/\/\/vocabulary\/countries\/enk<\/a>> ;\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Topic\/computer_programming_history<\/a>> ; # Computer programming--History<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/\/class\/004.22\/e23\/<\/a>> ;\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Topic\/computer_software_development<\/a>> ; # Computer software--Development<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Topic\/software_architecture<\/a>> ; # Software architecture<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Topic\/computer_programming<\/a>> ; # Computer programming<\/span>\n\u00A0\u00A0\u00A0\nschema:about<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Topic\/computers_computer_architecture<\/a>> ; # COMPUTERS--Computer Architecture<\/span>\n\u00A0\u00A0\u00A0\nschema:author<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Person\/martin_robert_c<\/a>> ; # Robert C. Martin<\/span>\n\u00A0\u00A0\u00A0\nschema:bookFormat<\/a> bgn:PrintBook<\/a> ;\u00A0\u00A0\u00A0\nschema:datePublished<\/a> \"2018<\/span>\" ;\u00A0\u00A0\u00A0\nschema:description<\/a> \"Building 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, no-nonsense answers to key architecture and design questions like: What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps? What are the core principles of software architecture? What is the role of the architect, and what is he\/she really trying to achieve? What are the core principles of software design? How do designs and architectures go wrong, and what can you do about it? What are the disciplines and practices of professional architects and designers? Clean Architecture 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.<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\nschema:exampleOfWork<\/a> <http:\/\/\/entity\/work\/id\/3086855830<\/a>> ;\u00A0\u00A0\u00A0\nschema:genre<\/a> \"History<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\nschema:inLanguage<\/a> \"en<\/span>\" ;\u00A0\u00A0\u00A0\nschema:isPartOf<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Series\/robert_c_martin_series<\/a>> ; # Robert C. Martin series.<\/span>\n\u00A0\u00A0\u00A0\nschema:name<\/a> \"Clean architecture : a craftsman\'s guide to software structure and design<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\nschema:productID<\/a> \"1004983973<\/span>\" ;\u00A0\u00A0\u00A0\nschema:workExample<\/a> <http:\/\/\/isbn\/9780134494166<\/a>> ;\u00A0\u00A0\u00A0\numbel:isLike<\/a> <http:\/\/\/id\/resource\/GBB759158<\/a>> ;\u00A0\u00A0\u00A0\nwdrs:describedby<\/a> <http:\/\/\/title\/-\/oclc\/1004983973<\/a>> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n\n

Related Entities<\/h3>\n
<http:\/\/\/class\/004.22\/e23\/<\/a>>\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/entity\/work\/data\/3086855830#Person\/martin_robert_c<\/a>> # Robert C. Martin<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Person<\/a> ;\u00A0\u00A0\u00A0\nschema:familyName<\/a> \"Martin<\/span>\" ;\u00A0\u00A0\u00A0\nschema:givenName<\/a> \"Robert C.<\/span>\" ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Robert C. Martin<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/entity\/work\/data\/3086855830#Series\/robert_c_martin_series<\/a>> # Robert C. Martin series.<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nbgn:PublicationSeries<\/a> ;\u00A0\u00A0\u00A0\nschema:creator<\/a> <http:\/\/\/entity\/work\/data\/3086855830#Person\/martin_robert_c<\/a>> ; # Robert C. Martin<\/span>\n\u00A0\u00A0\u00A0\nschema:hasPart<\/a> <http:\/\/\/oclc\/1004983973<\/a>> ; # Clean architecture : a craftsman\'s guide to software structure and design<\/span>\n\u00A0\u00A0\u00A0\nschema:name<\/a> \"Robert C. Martin series.<\/span>\" ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Robert C. Martin series<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/entity\/work\/data\/3086855830#Topic\/computer_programming<\/a>> # Computer programming<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Computer programming<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/entity\/work\/data\/3086855830#Topic\/computer_programming_history<\/a>> # Computer programming--History<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Computer programming--History<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/entity\/work\/data\/3086855830#Topic\/computer_software_development<\/a>> # Computer software--Development<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Computer software--Development<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/entity\/work\/data\/3086855830#Topic\/computers_computer_architecture<\/a>> # COMPUTERS--Computer Architecture<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"COMPUTERS--Computer Architecture<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/entity\/work\/data\/3086855830#Topic\/software_architecture<\/a>> # Software architecture<\/span>\n\u00A0\u00A0\u00A0\u00A0a \nschema:Intangible<\/a> ;\u00A0\u00A0\u00A0\nschema:name<\/a> \"Software architecture<\/span>\"@en<\/a> ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/vocabulary\/countries\/enk<\/a>>\u00A0\u00A0\u00A0\u00A0a \nschema:Place<\/a> ;\u00A0\u00A0\u00A0\ndcterms:identifier<\/a> \"enk<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n
<http:\/\/\/isbn\/9780134494166<\/a>>\u00A0\u00A0\u00A0\u00A0a \nschema:ProductModel<\/a> ;\u00A0\u00A0\u00A0\nschema:isbn<\/a> \"0134494164<\/span>\" ;\u00A0\u00A0\u00A0\nschema:isbn<\/a> \"9780134494166<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.\n\n\n<\/div>\n