Brainstorming your way from a Monolith to a Clean Architecture

Did you ever want 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 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, time to wake up! Your boss won’t approve a rewrite! But still, what should you aim for with your assiduous refactorings and clean-ups?

The ideal mindset for an enterprise application should be: Pragmatic, Clean Evolutionary Architecture.

  • Pragmatic = Keep It Short & Simple
  • Clean = The Onion Architecture (Dependency Inversion Principle)
  • Evolutionary = Continuously redesign
  • Architecture = that will ensure Developer Comfort & Safety.
  • Tests, tests, tests = Responsible Development

The goal of this talk is to open the eyes of enterprise application developers, to encourage them to be critical of the often imposed enterprise architecture, and to empower them to think out-of-the-box. They will then be able to tackle unexpected functional complexity with an appropriate minimalistic design that can maintain a low design complexity (less code, happier developers).

Speaker

Victor Rentea
An enthusiast Clean Coder, Senior Software Engineer at IBM, and independent Trainer.


Agenda:

  1. Introduction: KISS, DDD vs Transaction Script

  2. Modeling Data
    The Fit Entity that obeys you
    Value Objects
    Data Transfer Objects that isolate your Entities

  3. Extracting Logic
    Mappers that encapsulate conversion
    Facades that implement logic
    Extracting Domain Services for KISS or DRY
    Logic Extraction Patterns

  4. The Clean Architecture
    Dependency Inversion Principle -- the best of OOP (cf. Uncle Bob)
    Consuming Repositories
    Calling External Services

  5. Testing
    Principles - Design Feedback
    Testability
    A new style of TDD: Extract and Split

Target audience

Enterprise application developers (JavaEE, Spring, even non-Java) with at least 3 years of hands-on backend experience.

The talk will only address the backend architecture (from the controller to the database).

References: Clean Code (Robert C. Martin), Rethinking Java EE Patterns (Adam Bien), TDD by example (Kent Beck), Extreme Programming Explained (Kent Beck)

When

Wednesday, February 22, 2017
7:00 PM

Where

IBM Romania
Bulevardul Vasile Milea 4A, 061344
București, România

Meetup

Check out the event page.