besogonskiy
@besogonskiy

Какой основной патерн применить для маркетплейса в laravel?

Пишем торговую площадку типа Маркет Плейс. Где в отличии от интернет магазина допускается регистрация поставщиков и размещение ими своих товаров. Работа наших операторов сводится к тому чтобы они как то выявляли одни и те же товары от разных поставщиков и объединяли их в общую сущность чтоб был один товар и несколько торговых предложений.

Сейчас к нам в команду пришел программист Symfony и предлагает ввести патерн CQRS и писать в Symfony Style.
Я же присматривался ранее к Porto. Дмитрий Афанасьев про него хорошо убедительно рассказал.
Ну и к ddd присматривался.

Вот как нам лучше развивать проект? Нужно еще учесть, что код должен быть читабельным и чтобы мы любого джуна в команду взяли и он чтоб с первого же дня разобрался. Если мы будем писать в Symfony Style то новички уже не разберутся.

Как лучше разрулить ситуацию?

Я считаю что лучше декларировать подход и расписать документацию о том как он работает и как в него добавляются новые методы чтоб любой прогер уже смог по этой инструкции действовать иначе так получится, что новый разработчик захочет покинуть проект, а там уже не Laravel, а код, который тяжело читается, но ведущий к правильной архитектуре.
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
samizdam
@samizdam
> Сейчас к нам в команду пришел программист Symfony и предлагает ввести патерн CQRS и писать в Symfony Style.
> Как лучше разрулить ситуацию?

Всё смешалось, стили, программисты, "патерны" какие-то. Вы пытаетесь решить множество не связанных вопросов по организации разработки хватаясь за разные термины, которые на слуху, но про которые пока имеете смутное представление. Термины из разных областей, к тому же.

Если у вас цель - в первую очередь набраться опыта за счёт проекта, попробовать разное, похоливарить на работе и поэксперименировать - держать в том же духе!

Если цель - сдать проект в разумные сроки и бюджет - пишите так как умеете и знаете, постепенно повышая свой уровень, изучая новые подходы, желательно не на основном проекте, а на досуге, или в не критичных его частях хотя бы. Иначе, с таким рвением, вам придётся весь проект переписывать на новую парадигму / фреймворк / "патерн" (прости фаулер) каждый месяц.

Наймите или выделите кого-то на роль лида, и пусть он определяет что использовать, а что нет. Но не каждый новый приходящий разработчик. При всём уважении к Симфони и не любви в Ларавель.

> лучше декларировать подход и расписать документацию о том как он работает и как в него добавляются новые методы

Проблема в том, что если проект будет жить, всё это много раз поменяется, под новые требования, рефакторинг, фиксы. И документация будет врать. Лучше код писать насколько простым, насколько это возможно. Чтобы глядя на него было несложно разобраться. На эту тему много рассуждений у Р. Мартина и С. Макконнелла.

Я тесты использую, как фиксацию того, как работает код, документацию стараюсь вообще избегать.

Я не очень понял пассаж про нового разработчика покидающего проект, вы сбивчиво излагаете. Вообще код ревью общепринятая практика, чтобы изменения в коде не были сюрпризом для команды.

> код, который тяжело читается, но ведущий к правильной архитектуре.
Если пожертвовать простотой кода, к "правильной" архитектуре это вас точно не приведёт. Чем сложнее понять код, тем больше шансов понять его не правильно, и добавить новый не как следовало бы.

Что значит "правильная архитектура" для начала стоит определить. На самом деле её не бывает, это Грааль. Я бы сказал, что есть подходящая и не подходящая, избыточная для требований проекта и отстающая от них, мешающая развитию. По тому что озвучено, ларавеля, с его общепринятыми подходами, вам должно хватит за глаза надолго. Вот когда перестанет хватать, вы хотя бы будете решать реальную проблему, а не придуманную. И найдёте ту архитектуру, которая подходит лучше изначальной, к новым реалиям.

В таких категориях попробуйте мыслить. Если вместо того чтобы пилить свой маркетплейс (т.е. нужные фичи), вы будете искать Грааль, успех проекту не светит.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы