Get your hands dirty on clean architecture : build 'clean' applications with code examples in Java /: build 'clean' applications with code examples in Java. (2023)
- Record Type:
- Book
- Title:
- Get your hands dirty on clean architecture : build 'clean' applications with code examples in Java /: build 'clean' applications with code examples in Java. (2023)
- Main Title:
- Get your hands dirty on clean architecture : build 'clean' applications with code examples in Java
- Further Information:
- Note: Tom Hombergs ; foreword by Gernot Starke.
- Authors:
- Hombergs, Tom
- Other Names:
- Starke, Gernot writer of foreword.
- Contents:
- Cover -- Title Page -- Copyright -- Dedication -- Foreword -- Contributors -- Table of Contents -- Preface -- Chapter 1: Maintainability -- What does maintainability even mean? -- Maintainability enables functionality -- Maintainability generates developer joy -- Maintainability supports decision-making -- Maintaining maintainability -- Chapter 2: What's Wrong with Layers? -- They promote database-driven design -- They're prone to shortcuts -- They grow hard to test -- They hide the use cases -- They make parallel work difficult -- How does this help me build maintainable software? Chapter 3: Inverting Dependencies -- The Single Responsibility Principle -- A tale about side effects -- The Dependency Inversion Principle -- Clean Architecture -- Hexagonal Architecture -- How does this help me build maintainable software? -- Chapter 4: Organizing Code -- Organizing By Layer -- Organizing by feature -- An architecturally expressive package structure -- The role of dependency injection -- How does this help me build maintainable software? -- Chapter 5: Implementing a Use Case -- Implementing the domain model -- A use case in a nutshell -- Validating input The power of constructors -- Different input models for different use cases -- Validating business rules -- Rich versus anemic domain model -- Different output models for different use cases -- What about read-only use cases? -- How does this help me build maintainable software? -- Chapter 6: Implementing a Web Adapter --Cover -- Title Page -- Copyright -- Dedication -- Foreword -- Contributors -- Table of Contents -- Preface -- Chapter 1: Maintainability -- What does maintainability even mean? -- Maintainability enables functionality -- Maintainability generates developer joy -- Maintainability supports decision-making -- Maintaining maintainability -- Chapter 2: What's Wrong with Layers? -- They promote database-driven design -- They're prone to shortcuts -- They grow hard to test -- They hide the use cases -- They make parallel work difficult -- How does this help me build maintainable software? Chapter 3: Inverting Dependencies -- The Single Responsibility Principle -- A tale about side effects -- The Dependency Inversion Principle -- Clean Architecture -- Hexagonal Architecture -- How does this help me build maintainable software? -- Chapter 4: Organizing Code -- Organizing By Layer -- Organizing by feature -- An architecturally expressive package structure -- The role of dependency injection -- How does this help me build maintainable software? -- Chapter 5: Implementing a Use Case -- Implementing the domain model -- A use case in a nutshell -- Validating input The power of constructors -- Different input models for different use cases -- Validating business rules -- Rich versus anemic domain model -- Different output models for different use cases -- What about read-only use cases? -- How does this help me build maintainable software? -- Chapter 6: Implementing a Web Adapter -- Dependency Inversion -- Responsibilities of a web adapter -- Slicing controllers -- How does this help me build maintainable software? -- Chapter 7: Implementing a Persistence Adapter -- Dependency inversion -- Responsibilities of a persistence adapter -- Slicing port interfaces Slicing persistence adapters -- An example with Spring Data JPA -- What about database transactions? -- How does this help me build maintainable software? -- Chapter 8: Testing Architecture Elements -- The test pyramid -- Testing a domain entity with unit tests -- Testing a use case with unit tests -- Testing a web adapter with integration tests -- Testing a persistence adapter with integration tests -- Testing main paths with system tests -- How much testing is enough? -- How does this help me build maintainable software? -- Chapter 9: Mapping between Boundaries -- The "No Mapping" strategy The "Two-Way" mapping strategy -- The "Full" mapping strategy -- The "One-Way" mapping strategy -- When to use which mapping strategy? -- How does this help me build maintainable software? -- Chapter 10: Assembling the Application -- Why even care about assembly? -- Assembling via plain code -- Assembling via Spring's classpath scanning -- Assembling via Spring's Java Config -- How does this help me build maintainable software? -- Chapter 11: Taking Shortcuts Consciously -- Why shortcuts are like broken windows -- The responsibility of starting clean -- Sharing models between use cases … (more)
- Edition:
- Second edition
- Publisher Details:
- Birmingham, UK : Packt Publishing Ltd
- Publication Date:
- 2023
- Extent:
- 1 online resource (168 pages), illustrations
- Subjects:
- 005.1/2
Software architecture
Web applications
Java (Computer program language)
Electronic books - Languages:
- English
- ISBNs:
- 9781805125914
1805125915 - Related ISBNs:
- 9781805128373
- Access Rights:
- Legal Deposit; Only available on premises controlled by the deposit library and to one user at any one time; The Legal Deposit Libraries (Non-Print Works) Regulations (UK).
- Access Usage:
- Restricted: Printing from this resource is governed by The Legal Deposit Libraries (Non-Print Works) Regulations (UK) and UK copyright law currently in force.
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library HMNTS - ELD.DS.788866
- Ingest File:
- 21_006.xml