This training is a pragmatic review of the most common architectural decisions of a backend system, including Layered Architecture, agnostic Domain, feature slicing, decoupled subdomains (Modulith), data mappers, and validation. For a deeper understanding, most concepts are demonstrated in Java code, uncovering a series of implementation tricks that you can immediately apply to your project. The last section overviews practical strategies that you can use to gradually decouple a monolithic system into independent subdomains.
The lack of a clear structure can slow us down and put the project in danger, but over-engineering can also generate remarkable waste of time, money, and brainpower. To help you find the amount of “just-enough design”, this training adopts a pragmatic point of view and then introduces techniques to gradually evolve the design to match the growing functional complexity.
To be able to browse the code sample easily on your local machine, you would need a laptop with JDK 11+, a decent IDE and access to GitHub and Maven Central.
Technical Stack used in Live-Coding Examples: Java/Spring, but the discussion will be loosely coupled to the language/framework specifics, so backend developers of all languages are welcome.
If you want the best of this training, you can prepare in advance by:
Victor is a Java Champion, and Trainer writing code for over two decades. He regularly shares his passion for Refactoring, Architecture, and Unit Testing with the Bucharest Software Crafters Community that he founded, today one of the largest in the world. He gives intense conference talks that aim to educate in a live, entertaining way. On victorrentea.ro you can find past talks, training offers, video classes, and social channels.