Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Avoiding the mud

Avoiding the mud

It’s easy to get started on an application with Symfony2 and its ecosystem creating bundle and mapping entities to forms and to a database to create a prototype. The problem is growing it beyond this to create a maintainable application. With simple entity mapping exposing the data it contains business logic quickly ends up spread around the application. We can end up with a tangle of business logic and a large tangle of related entities. We may have multiple bundles but they are often dependent on each other. Code which may be useful in other applications becomes tangled up with the application specific code.

This talk looks at some of the ways we can avoid these situations arising. How we can create a solid maintainable application. How we can avoid painting ourselves into a corner making it difficult to make changes. How we can avoid our application becoming a big ball of mud. It will look at carefully identifying what bundles should be used for and more importantly what they shouldn’t be used for. How we can decide what bundles we should have and what goes in each. How we can keep parts of our application cleanly separated from each other and the advantages this can bring.

Richard Miller

November 08, 2013
Tweet

More Decks by Richard Miller

Other Decks in Technology

Transcript

  1. no

  2. AbsenceEntity Request Absence Form Cancel Absence Form Approve Absence Form

    Change Absence Type Form Request Absence Command Cancel Absence Command Approve Absence Command Change Absence Type Command
  3. {% if absence.endDate < date() %} past {% else %}

    absence.status {% endif %} getDisplayStatus() AbsenceEntity getEndDate() getStatus()
  4. AbsenceEntity Request Absence Form Cancel Absence Form Approve Absence Form

    Change Absence Type Form Absence View upcoming .html .twig details .html .twig calendar .html .twig unapproved .html .twig getStatus()