A good software architecture should keep the cost of development low over the complete lifetime of an application.
Ever wondered about how to actually implement a “Clean Architecture” or a “Hexagonal Architecture”? There’s a lot of noise around these keywords, but you can find very little hands-on material on this topic.
This book fills a void by providing a hands-on approach to the Hexagonal architecture style from the concepts behind it down to actual code.
All About Hexagonal Architecture
- learn the concepts behind "Clean Architecture" and "Hexagonal Architecture"
- explore a hands-on approach of implementing a Hexagonal architecture with example code on GitHub
- develop your domain code independent of database or web concerns
Get a Grip on Your Layers
- learn about potential problems of the common layered architecture style
- free your domain layer of oppressive dependencies using dependency inversion
- structure your code in an architecturally expressive way
- use different methods to enforce architectural boundaries
- learn the consequences of shortcuts and when to accept them
- ... and more
What Readers Say
"Tom Hombergs has done a terrific job in explaining clean architecture - from concepts to code. Really wish more technical books would be as clear as that one!"Gernot Starke - Fellow at INNOQ, Author of Software Architecture Books, Coach, and Consultant
"Love your book. One of the most practical books on hexagonal architecture I have seen/read so far."Marten Deinum - Spring Framework Contributor and Author of "Spring 5 Recipes" and "Spring Boot 2 Recipes"
"A book taken right out of the machine room of software development. Tom talks straight from his experience and guides you through the day-to-day trade-offs necessary to deliver clean architecture."Sebastian Kempken - Software Architect at Adcubum
"Thank you for the great book, it helped me gain significant insight into how one would go about implementing hexagonal and DDD in a modern Spring project."Spyros Vallianos - Java Developer at Konnekt-able
"After reading it I had one of these 'aha' moments when things finally click in your brain."Manos Tzagkarakis - Java Developer at Datawise
Table of Contents
- What's Wrong with Layers?
- Inverting Dependencies
- Organizing Code
- Implementing a Use Case
- Implementing a Web Adapter
- Implementing a Persistence Adapter
- Testing Architecture Elements
- Mapping Between Boundaries
- Assembling the Application
- Enforcing Architecture Boundaries
- Taking Shortcuts Consciously
- Deciding on an Architecture Style