а потом оказывается, что все что ты написал - это говонокод, и начинаешь еще и правильный код читать. В общем, это бесконечный процесс. А еще есть фронт, верстка, и прочие темы. Жизни не хватит
Я например до сих пор не знаю где ивент дёрнуть: в сервисе? В контроллере? Если в сервисе, то получается, что мы тупо все из контроллера перенесли в другой класс, а хотелось бы только логику. Если в контроллере - то он должен этим заниматься? Вот и думай теперь.