Organizing Code
Wouldn’t it be nice to recognize the architecture just by looking at the code?
In this chapter, we’ll examine different ways of organizing code and introduce an expressive package structure that directly reflects a Hexagonal Architecture.
In greenfield software projects, the first thing we try to get right is the package structure. We set up a nice-looking structure that we intend to use for the rest of the project. Then, during the project, things become hectic, and we realize that in many places the package structure is just a nice-looking facade for an unstructured mess of code. Classes in one package import classes from other packages that should not be imported.
We’ll discuss different options for structuring the code of the BuckPal example application that was introduced in the Preface. More specifically, we’ll look at the Send money use case, which allows a user to transfer money from their account to another.