Как не начать говн*кодить?
- Оу, смотрите, я сумел сделать форму и отправить ее POST запросом и вывести ответ и это все в одном файле !
- Таак, шаблоны на Wordpress, отлично, только что за файл functions.php. О! Анонимные функции я видел такое в JQuery ! Оказывается все так просто.
- Воот, раскидал функции (процедуры) по конкретным файлам. Думаю так будет удобнее и понятнее.
- ООП, ооп. Везде требуют ООП. "Классы", "наследование", "инка..." чего ?! Понял ! Классы - это же такая неплохая обертка для моих любимых функций !
- Ого ! Блин, опять приходится плодить одинаковый функционал. Наверное наследование поможет это исправить. СТАТИЧЕСКИЕ МЕТОДЫ !!!
- Черт, везде необходимо знание фреймворка. Попробую-ка я Symfony. *!"#$^$&@мать !!! КТо придумал эту хрень ! Месяц прошел я так ничего и не запустил !!
- Роутинг, хм, толково. Контроллеры. Сервисы. Ага, так вот что означает single responsibility. 
- Ребята ! Я предлагаю не пихать всё в один бандл, а разделить.
- ORM, репозитории, сервисы, сущности ...
- ТАК ВОТ ЗАЧЕМ НУЖНЫ ИНТЕРФЕЙСЫ !
- Чё за "бизнес логика" такая ? DDD ? Чта, простите ?
- Б*я, б*я, б*я... Так,  если эту сущность вынести в этот модуль, то тогда у нас появляется зависимость в вот этом модуле, а это не хорошо. Блин, этот метод вообще не несет смысла. Тааак, а тут стандартный Chain Responsibility . Отлично, напишу-ка тест под это дело.
- Да пофиг, что по CQRS команда не должна возвращать результат, мне так удобно.
...
- Да Сережа, делать вот как ты делаешь - это и есть говнокод.
Поговнокодить немного чтоб был опыт. А потом поймать удачу за хвост и устроиться в хороший проект, где уже есть качественная кодовая база.