Приветствую, ребята!
Пишет вам программист из Екб, казалось бы, с большим опытом коммерческой разработки (10 лет). Начинал с CMS, два года назад перешел на Laravel, а сейчас работаю и с Symfony.
В разработке использую деление на сервисы/репозитории/модели. Да и все на этом.
Доки по инструментам (в том числе по Ларавелю и Симфони) прочитал от корки до корки. Многоие уже забыл, но знаю ,где искать.
Заучил популряные паттерны, прочитал Совершенный код Макконнелла и Чистый код дядюшки Боба. Чистую архитектуру тоже прочитал.
На бумаге все выглядит просто волшебно. Но применять на практике получается лишь малую часть теории.
Сейчас пробую погружаться в DDD и луковую архитектуру. Но постоянно ощущение, что архитектура получается неудачной и попытки применять современные методы к архитектуре лишь раздувает код бесполезными классами.
С одной стороны мой код работает и решает бизнес-задачи. На текущих проектах числюсь сеньором, т.к. хороши их знаю и решаю задачи быстрее других приходящих-уходящих мидлов. С другой - со временем его качестве совершенно не растет последние годы и я застрял на уровне мидла.
Подскажите, пожалуйста, ребята, сеньоры и архитекторы, каким образом проще всего "пробить" свой потолок и выйти на следующий уровень?
Пока вижу для себя такие варианты:
- устроиться мидлом в крупную контору с отлаженными процессами и четкими стандартами, вроде Мэйл, Озон, Ламоды, стартапов Сбера итд
- писать что то для open source и надеяться, что более опытные ребята будут коментировать мой код и кидать МР с улучшениями
- пройти онлайн курсы с практикой
Перед первым останавливает лишь то, что придется переходить на более низкий рейт на долгое время. Если иначе не выйдет набраться ума-разума, то пойду этим путем. Но хотелось бы избежать, т.к. ипотека, двое детей. Переходить на мидловские 180к будет больно. Можно, конечно, попробовать EPAM или аналоги (когда то даже Toefl сдавал), которые предлагают норм ЗП. Но там все будет зависесть от проекта - можно попасть на такой легаси, что ...
Второй вариант кажется маловероятным (шанс, что либа/сервис выстрелит довольно мал)
Онлайн курсы чекнул в нескольких популярных школах - там все больше про языки и инструменты. Но с этим и так порядок - php, js, typescript, основы Golang - все имеется. Брокеры сообщений, базы данных юзаю активно. А курсов именно по написанию качественного кода в больших проектах с "разветвленной" бизнес логикой, найти не удалось.
Буду рад за подсказки и ваши мысли.
P.S. перечитал еще раз свое сообщение и показалось, что недостаточно четко сформулировал проблему.
Мой код решает проблемы "здесь и сейчас", но он не элегантен, он становится трудно поддерживаемым и расширяемым спустя год, мои решения трудно переиспользовать. Порой его трудно покрывать тестами.
TDD пробовал - не получилось. Пишу пол дня тесты, потом меняется какая мелочь в условии или оказывается, что сам не досмотрел, вношу изменения иии пол дня работы на смарку.
Обратился именно в этот чат, т.к. сложилось впечатление, что именно на Symfony в мире PHP строится большенство "энтерпрайз" проектов.