XNH-3620 Brainstorming your way from a Monolith to a Clean Architecture | Devoxx

Brainstorming your way from a Monolith to a Clean Architecture


method Methodology & Culture

Room 3 (Sabre)

Wednesday from 12:10 til 13:00

Did you ever wanted to (re)write your enterprise application from scratch? I’m sure you did ! And I’m pretty sure the rewritten codebase would be two times smaller than it is right now. But, given the time and budget for a rewrite, what would you do to keep it from becoming “legacy” again in 2 years? Ok, Let's face it! Your boss won’t approve a rewrite! But still, what should you aim for with your continuous refactorings and clean-ups?

Let me share with you what I believe to be the ideal mindset about an enterprise application: Pragmatic, Clean Evolutionary Architecture. Pragmatic = Keep It Short & Simple; Clean = The Onion Architecture (Dependency Inversion Principle); Evolutionary = Continuously redesign.

The discussion will conceptually start from a simplistic one-class system and grow the architecture with additional patterns, justifying any added complexity with fundamental principles of good design + lots of explanations. This way, adding constructs as we go, we’ll end up very close to a minimalist architecture that we actually use today in our projects today.

Even though the talk is mostly about architecture, you’ll see lots of code examples that support my decisions.

 application architecture    design principles    Enterprise Java    Agile  
Victor Rentea Victor Rentea

Java Craftsman. Sr. Engineer & Technical Lead at IBM. Independent Trainer & Coach. I worked on backend systems over the last 10 years, solving challenges of a broad range of enterprise Java applications as a developer, lead and consultant. 4 years ago I joined the ‘coding craftsmanship’ move, and soon after I started preaching about it as an independent trainer/coach. For hundreds of days I’ve trained more than 1000 trainees in all kinds of settings (including academic), usually bundled with other training modules in my curricula. My experience as a trainer allowed me to refine a very entertaining presentation style, spiced with jokes, non-IT-world analogies, and examples that is able to convey even the most complex ideas