Cargando…

Get your hands dirty on clean architecture : build 'clean' applications with code examples in Java /

Building for maintainability is key to keep development costs low (and developers happy). The second edition of "Get Your Hands Dirty on Clean Architecture" is here to equip you with the essential skills and knowledge to build maintainable software. Building upon the success of the first e...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Hombergs, Tom (Autor)
Otros Autores: Starke, Gernot (writer of foreword.)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Birmingham, UK : Packt Publishing Ltd., 2023.
Edición:Second edition.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)
Tabla de Contenidos:
  • 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