cancel
Showing results for 
Search instead for 
Did you mean: 

Не хейт, а критика

Не хейт, а критика

Вижу много вещей которые работают не так как бы хотелось в m2. Система имеет потенциал и я бы хотел чтобы он реализовывался. Попробую расписать что бы я хотел видеть измененным.

 

Модули. Есть мнение что что-то не так с самой концепцией: разделение и интерфейсы как бы есть, а по итогу все равно сильная связанность. Вроде бы в Symfony как раз отошли от разделения пользователей, заказов и т.д. на бандлы и пришли к бандлу "приложение" и остальным независимым модулям. Это не претензия, а скорее размышления.

Так же считаю что модули должны разделиться на логику и UI. Или, как вариант, доработать все компоненты и дать возможность лучше управлять UI из своих модулей. Простой пример: в Actions в DataGrids нельзя менять или удалять пункты меню. Может быть если полезть в ядро и все переопределить - тогда получится, но это не тот подход.

 

Сложность. Я не уверен что возможно построить такую систему типа мадженты с меньшей сложностью, но думаю что возможно. Забавно что многие хорошие инструменты начинают "надрываться" на мадженте: в идеале composer не рассчитан на такое количество модулей и файлов, phpstorm хорошо работает на мелких и средних проектах, а с плагинами на мадженте неохотно ворочается даже на i7 с 16gb. Не представляю работу на ноутбуке, например. Да и браузер не так быстро переваривает админку. Там вообще все тяжелое, "от" и "до".

 

Несогласованность. Это когда часть модулей использует коллекции, другие любят репозитории, а остальные вообще через сущности все загружают. Да, разработчики знают об этой проблеме и постепенно все меняют. Только это занимает годы.

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

 

Баги. Про них уже все давно все знают. Хорошо что последний год стало лучше. Помню как баг с favicon решался год! А там нужно было добавить 10 символов (банальная ошибка).

 

Другие недостатки. Наконец-то я дошел до одного из самых больных мест в моем опыте: extension attributes. Не знаю о чем думали, разрабатывая их. Объявить атрибуты легко, а вот работать с сущностях - боль: как я написал выше, загружать модели можно по-разному и атрибуты "назначать" приходится тоже по-разному. Для репозитория, для коллекции, для сущности. Как удобно! На добавление атрибута можно потратить неделю (если не знаешь что как работает). Ксати, а есть еще и custom attributes! Но то другая история.

Store id и ошибки с нем. Просто ест силы и время. Если ошибся и начал работать с "мульти"-магазинами то получил гемморой при работе с магазином навсегда. Не надо так.