listeners, easy to understand, to test. + Easy to dispatch events outside application. + Scalable! - Sometimes, hard to understand what happen. - Need tools / rules to keep a common logic. - Try to limit entities usage. ;) What else?
toggling. + Make code reviews. + Keep a clean codebase. + Use encapsulation! <3 + Be generic + Promote reusability - Onboard people too quickly. - Depend too much on the framework - Let your container get too big. - Try not to extend the framework.