TaskAgile code design
For a TaskAgile application, the code design will be at three levels—the architecture level, abstraction level, and implementation level. We will only talk about the architecture level design here. When we start the implementation, we will work on the abstraction level design. Most of the implementation level design will be carried out during the implementation phase. We will practice test-driven development, write acceptance tests, and keep refactoring the code to keep it clean, simple, and expressive.
Now, let's look at the architecture level design. We will introduce two designs—layered architecture and hexagonal architecture. Each design has its pros and cons. Let's go through them one by one.
Layered architecture
The layered architecture pattern is a common technique that's used to break complicated systems into separate layers, where each layer focuses on its own concern. The usual separation is to use layers, that is, the presentation layer, business layer, and...