How one should code in eZ Platform

Some eZ Platform devs are old ez legacy devs. Some of them (like me) started building eZ websites on 3.x releases. The thing is they have bad old habits and they tend to keep building ezPlatform projects on a legacy way of doing things. But that's a bad path. After taking some time on a eZ 5.x and eZ Enterprise projects here is what I found out.