From big ball of mud to clean architecture with Symfony

Avatar of Rolando Caldas Rolando Caldas

Surely the story sounds familiar: You have an application that has been made with Symfony taking advantage of everything that allows you to develop fast: Twig, Doctrine, Form, Asserts, Annotations, Symfony Events, Firewall, Security, etc.

The application grew too fast and one day you find yourself with an application with duplicate entities, entities that do not contribute anything but confusion, too-powerful forms, magic that not even who created it understands ... no tests (the elephant in the room)...

What do we do then? "Let's start again, now we'll do it right"! The result? Multiple applications (as many as new attempts to get it right), all with replicated functionality... all "wrong".

You've heard "things" about TDD, DDD, CQRS, Hexagonal Architecture, Onion Architecture... Rich Domain Models and it's clear to you: that's your salvation. Shall we start again? In case you haven't learned the lesson yet... You can evolve your big ball of mud towards clean architectures without having to start from scratch.

In this talk we will address how we faced the problem keeping Symfony as a framework on which to develop the product:

- What previous decisions we made and why... both in terms of code and organization and work of the team.
- What components we rely on to start thinking about clean and abandon mud.
- How we face the transformation of anemic entities coupled to Symfony and Doctrine to rich domain models.
- How we approach testing.
- Trade-offs we assume as part of the process and why we don't care.

Delivered in English
Room:
Track Blackfire.io

Friday, December 10, 2021 at 13:30 PM – 14:05 PM

Intermediate talk, some familiarity with the topic required.