Задать вопрос

Приложение масштаба предприятия на Symfony?

Добрый день.
На Хабре нашел ссылку на статью:
Symfony modular, microservice-ready architecture. ...
и
Часть 2
Репозиторий

Интересует мнение о самом подходе автора. Он изменил файловую структуру проекта на Symfony 6, разделил фронтенд( у автора Angular ) от бэкенда( REST API ), на бэкенде определил структуру приложения с разбиением на модули, даже БД разделил по принципу минимально необходимых данных для каждого модуля, даже ценой денормализации данных и.т.д. Каждую свою мысль автор сопровождает теоретическими предпосылками и вроде как, даже логично. Вопрос: насколько данное решение соответствует современным тенденциям при построении приложения уровня предприятия? Нахожусь на распутье. Требуется: переписать ERP уровня небольшого машиностроительного предприятия, WEB-интерфесом которой пользуются все службы предприятия, от отдела кадров и производства, до кладовщиков, работников ОТК и.т.д. Используется самописанная и не слабонервных CMS ( PHP + JavaScript ), MySQL, ~ 150 пользователей одновременно, > 100 таблиц. На фронтенде уже значительно позже начали использовать JQuery, до этого vanilla JS, новый PHP-код писали уже с применением ООП и PSR. Тонны в худшем проявлении китайско-индусского кода, полное пренебрежение всеми правилами и принципами программирования, никаких CSS, все стили прописаны, как style="background-color:red" и.т.д. Собираюсь уже достаточно давно, откладывал по разным причинам, только сейчас, собственно, начал собирать все данные в кучу, поддерживать ЭТО стало слишком муторно, балласт слишком тяжел. Сначала хотел взять Symfony as is, как говорится, с Twig и Doctrine, прикрутить фронтенд с Encore и VueJS, создать Entities, написать нужные сервисы и.т.д. А потом прочел упомянутую статью. Просьба специалистам по Symfony прокомментировать-покритиковать данную статью, посоветовать, что из неё можно взять на вооружение, а что есть не самое удачное решение автора, ну и общее видение предпочтительных решений описанной задачи.
Спасибо.
  • Вопрос задан
  • 257 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 5
@caballero
Программист
гемор создания ERP это сложность реализации самой ERP
какой там язык вопрос десятый

использование такого сложного фреймворка как synfony только осложняет дело

использование javascript фреймворков нафиг не нужных а в таких приложениях это дополнительных гемор

ну написал некто на хабре что он так сделал и что? мало ли кто как делает
Ответ написан
@galliard
Ну, если решитесь на такую архитектуру - тщательно скрывайте от других разработчиков свое место жительства))

Но лучше все-таки использовать стандартную архитектуру симфони, и уже в контроллерах/сервисах/дто можно раскладывать классы в поддиректории.

А фронтенд, если решите делать его на ангуляр/реакт/етц - лучше вообще в отдельный репозиторий вынести.
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
По моему имху такого плана приложение писать стоит на ларавеле, фронт vue, react, angular. Если же конечно не перейти на другой язык на бэке
Ответ написан
EugeneOne77
@EugeneOne77
Laravel, Vue, Wordpress разработчик.
Писать надо на том, что лучше знаешь. Если нет опыта в symphony то переделать такое легаси и одновременно учить - будет очень сложно. Сам по себе фреймворк не решает проблемы.
Вообще тут две разных задачи - фронт и бэк.
По бэку - зависит от того, насколько грамотно база данных сделана. Если она правильно нормализована - то без разницы, по большому счету, какой фреймворк. Я бы как в комментах выше предложил laravel все-таки. С непривычки доктрина в симфони тот еще зверь. Лично я в некоторых проектах подключал eloquent из laravel отдельно (библиотека работы с бд).
А про фронт - надо смотреть как запросы сделаны. Если более-менее норм, можно вообще вначале на vuejs сделать как надо (ну или на чем-то другом, просто это самый простой). А потом уже с бэком решать. Встроить vuejs в симфони\ларавел не проблема.
Ответ написан
Комментировать
@rorc
Приложения масштаба предприятия пишутся на Symfony очень легко и удобно, в одиночку примерно за 2-3 месяца.
Но с одним огромным примечанием - опыт работы и знание фреймворка.

Судя по вопросам опыта у вас не так много. Создать проект из коробки сейчас возможно в двух вариантах, традиционное приложения (ставится много компонентов, включая шаблонизатор) и приложение для микросервисов (удобно, когда точно знаешь, что нужно и как установить).
Третий вариант - использовать только нужные отдельные компоненты, как делают во многих cms.

Какие сложности возникнут:
1 - перенос текущих таблиц и данных, нормальный генератор для доктрины убили несколько версий назад.
2 - готовых пользователей можно сказать нет, есть минимальный функционал, который нужно расширить.
3 - проработка структуры url адресов, прав доступа, преобразования данных.

По стилю кода внутри страницы style="background-color:red", это ни о чём не говорит, если не знать полностью историю, возможно сроки поджимали, фронт разработчика не было или запланировали, а их уволили.

Laravel для первоначального прототипа, когда нет опыта разработки подобных систем подойдет лучше. После скорее всего упретесь в производительность, но возможно и так сойдет.

Мой путь был бы примерно следующим.
Посмотреть на структуру базы данных.
Изучить как работает система прав, уровней доступа
Посмотреть на готовые REST фреймворки, возможно решение уже написано.
Если готового нет, только тогда начинать делать самостоятельно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы