Pull to refresh

Comments 14

Ох, чувствую, сейчас мне напихают, но все же зануда mode on.
И в русском, и во французском языках высшие титулы принято писать с заглавной буквы. В данном случае это le Roi.
Добрый день!

Название статьи отличное, и мы, будучи в какой-то степени конкурентами Magento, прочитали ее не без удовольствия и даже с некоторой долей злорадства.

Однако, этот король еще долго не умрет, даже если по мнению автора его эра уже клонится к закату — даже ( если вдруг, что вряд ли) после того, как движок перестанут официально разрабатывать и поддерживать, он еще много лет будет кормить комьюнити девелоперов и фрилансеров. Все просто: многочисленные живые магазины никто махом не закроет, ибо миграция на другую незнакомую платформу со своими собственными скрытыми косяками и болячками — это уж очень трудоемкий, дорогой и рискованный процесс для бизнеса, которому каждый день простоя чреват финансовыми потерями. Поэтому как разработчик Magento, Вы еще долго сможете на этом короле зарабатывать и на хлеб, и на масло к нему.

Более того, очень вероятно, что через пару лет Magento — двойку все же полюбят искренней и чистой любовью — у нас есть свой собственный пример аналогичного «финта ушами», правда, случился он несколькими годами ранее.

Те, кто хорошо знаком с Magento и работают с западным рынком ( США, Канада, Англия в частности), наверняка слышали и про X-Cart. Как и первая Magento, X-Cart 4 с процедурным кодом развивался на протяжении многих лет, обрастал фичами, расширениями, третьесторонними девелоперами ( тем, что в Магентомире принято называть экосистемой).

Когда в 2013 году мы выкатили X-Cart 5 с MVC/OOP/Doctrine на борту, с принципиально иной архитектурой, мы столкнулись с теми же сложностями, что вторая Magento испытывает сейчас:

  • сильно меньше готовых расширений и внешних разработчиков, желающих изучать по сути новую платформу с довольно значительным learning curve, и эти расширения писать, так как мало клиентов
  • а клиентов мало было, так как было мало расширений и девелоперов.
  • то есть, по сути, своего рода замкнутый круг, где новое коммьюнити еще не сформировалось, а старое хейтит все новое


Когда мы показывали пятерку существующим пользователями X-Cart 4, они не сразу могли оценить новые фичи, а вот отсутствие ряда старых, которыми они активно пользовались, конечно, бросалось им в глаза. В итоге мы приняли стратегическое решение не форсить «пересаживание» клиентов на 5ку, а продолжить поддерживать X-Cart 4 для существующих пользователей, но новым предлагать в первую очередь X-Cart 5 ( при условии, что он мог решить их бизнес-задачи).

Спустя 3 года большой и планомерной работы, нам удалось «заслужить любовь» и клиентов, и разработчиков: количество продаж «новой-клевой-незнакомой» X-Cart 5 росло, росло, и в итоге в 2016 году таки превысило продажи «старой доброй» X-Cart 4. Ну, а с ростом количества клиентов, конечно, и разработческое комьюнити подтянулось. Сейчас у нас далеко не 10K расширений, но очень значительную часть основных потребностей владельца интернет-магазина они закрывают.

Что показательно, на нашем форуме уже год как перестали появляться полные печали и безнадежности посты ( вот прямо как Ваш, только на английском), а вместо них всякие you guys rock, I changed my opinion и тд — то есть произошла смена вектора в отношении комьюнити к новой платформе.

В общем, давайте посмотрим, что Вы скажете через 2-3 года, когда Le Roi хорошенько осмотрится и продолжит завоевание мира — все же, у него сейчас огромная армия «верноподданных» и нехилые бюджеты на маркетинг

… Хотя и хотелось бы под шумок отъесть у Magento кусок пирога =)
Вы должны понимать, что Magento и Woo сложно назвать прямыми конкурентами. Так как они конкурируют за разные сегменты рынка. Woo нацелен на очень маленького продавца, в то время как Magento 2 начала ориентироваться на мерчанта с годовым оборотом 20+ млн. $ при этом удерживая сегменты, которые заняла М1. Oro изначально себя позиционировал как В2В решение, а не В2С. В Magento 1 не было предложений для В2В из коробки вообще. Посмотрим, как М2 отреагирует на это в ближайшее время. Пока же можно смело говорить, что наибольшим конкурентом для Magento 2 на рынке является Magento 1
Woo нацелен на очень маленького продавца

Alexa Top 1K:


  • Magento: 10
  • Woo: 4

Может все-таки на "не очень маленького продавца"? Очень маленькие в "топ 1000" не попадают.


при этом удерживая сегменты, которые заняла М1

Миграция клиентов в феврале 2017:


  • Magento: -754
  • Woo 2.6: 10,189
  • Woo: 4,696
  • Woo 2.5: -1,625
  • Woo 2.4: -527
  • Woo 2.3: -361
  • Woo 2.2: -209
  • Woo 2.1: -179
  • Woo 2.0: -147
  • Woo 1.6: -44

Данные говорят, как минимум, о том, что миграция в Woo несколько проще, чем в Magento, а не о том, что Magento удерживает сегменты. Magento 2 может и "начала ориентироваться на мерчанта с годовым оборотом 20+ млн. $", но ориентируются ли эти мерчанты на Magento 2?

Касательно \Magento\Sales\Api\OrderStatusHistoryRepositoryInterface он автогенерированный и он работает. Но согласен что неявно и документации не хватает, но стараемся исправлять ситуацию.


По поводу bugfixes — я полностью разделяю Вашу боль (думаю многие core-разработчики тоже), мы тоже сталкиваемся с ситуациями когда исправленный баг несколько месяцев не может попасть в релиз версию. Причин несколько почему так — это и бекпортирование с develop ветки, и регрессионное тестирование для каждого релиза, но последнее время сделали упор на внедрение бОльшего кол-ва автотестов (в первую очередь функциональных) и на горизонте виднеются положительные изменения в этом направлении.

Перевел свой проект в production mode — да, класс \Magento\Sales\Api\Data\OrderStatusHistory\Repository имплементирующий интерфейс \Magento\Sales\Api\OrderStatusHistoryRepositoryInterface появился в файле .../var/generation/Magento/Sales/Api/Data/OrderStatusHistory/Repository.php.


Будем надеяться, что положительные изменения в багфиксах станут скорее правилом, а не исключением. Могут ведь иногда и за 2 минуты смержиться:
image

Они уже становятся правилом (the future is here), так как твит Макса Пронько, который Вы привели посвящен мероприятию, которые называется Magento Contribution Day, которое прошло в Италии (Meet Magento Italy).
Также в ближайшее время подобный ивент пройдет в Хорватии.
Идея простая — представители комьюнити фиксят открытые GitHub issue и вмете с представителями Core Magento Team обрабатывают фикс, ревьювят и вливают в Magento mainline.
Комьюнити вроде бы довольно такой инициативе.
По поводу других комьюнити инициатив также можно прочитать здесь.

Но основная — это то, что выделилась отдельная команда Community Engineering Team, которая занимается процессингом внешних Pull Request-ов. Чтобы максимально уменьшить время ожидания пул реквестов в очереди.
За успехами этой команды можно следить на открытой GitHub борде с PR-ами.

ну и собственно представити комьюнити уже сами начали ревьювить и процессить внешние пул реквесты.
Об этом в ближайшее время будет отдельный пост на Хабре.

Коллега maghamed, может у Вас есть идея, как бы злосчастный PR-5145 протолкнуть в ближайший релиз?

уже написал по этому поводу письмо продакт оунерам, отвечающим за бекпорты в 2.0.* и 2.1.* так как фикс обратно совместимый проблем доставить его в эти релизы быть не должно.

В developer mode репозиторий тоже сгенерируется при инициализации объекта, где используется интерфейс как зависимость, или после выполнения сборки всего di с помощью bin/magento setup:di:compile.

Относительно глобальных вопросов, которые Вы затронули:
Или неоднозначные зависимости между данными в тех же store-таблицах или stock-таблицах?

Стоки в Мадженто отдельная история, не зря в офисе весит такой девиз.
Из API интерфейса StockItemInterface знание о вебсайтах убрали. Идеально поля website_id не должно быть в таблице StockItem, т.к. StockItem это не что иное как сущность-связка продуктов к стокам, которое хранит кол-во товара на конкретном стоке. Опять же идеально было бы если бы такую связку мы могли задавать в каком-то скоупе, website только один из возможных скоупов. Пока поле website_id в таблице это рудимент, так как опять же пока еще Magento из коробки поддерживает только один сток. Но с точки зрения индексов сделали, чтобы комьюнити могло самостоятельно писать малти стоковые экстеншены.

почему для EAV заложено только 8 типов сущностей (customer, customer_address, catalog_category, catalog_product, order, invoice, creditmemo, shipment) из которых через админку для расширения доступны только атрибуты продукта (catalog_product)? Почему проигнорированы такие сущности, как admin, authorization, stock, sales_rule, cms, rating, report, review, ...?

Мадженто идет к тому, чтобы любые сущности были расширяемы дополнительными атрибутами. Не только перечисленные вами, а все, включая сущности добавленные сторонними разработчиками. Первый шаг был сделан к этому с добавлением Extension Attributes в Data API интерфейсы. Но пока это нельзя назвать полноценной заменой EAV, потому что программист обязан сам заниматься персистингом и ретривингом данных этого атрибута, что приносит замедление производительности. Поэтому корректное решение в данном случае было бы взять ответственность по сохранению и извлечению атрибута, а также эффективному хранению и фильтрации по нему на сторону Мадженты, а не стороннего программиста.

Но… попробуйте программно сохранить store (Store View в терминах админки), руководствуясь best practices от Magento 2 — не получится. Это при том, что репо-класс для \Magento\Store\Model\Store существует, правда без метода save()

Это известный gap, не могу сказать когда именно он будет исправлен
не зря в офисе весит такой девиз.

ну тогда не все так безнадежно, как мне казалось :)

Ох, а ещё Т9 заменил висит на весит, но это, в контексте описанных выше проблем, уже мелочи :)
Sign up to leave a comment.

Articles