Magento 2

AmdY

Пью пиво
Команда форума
Если шопы лепить, то не нужно никакой CMS, сейчас масса SAAS сервисов, получаешь нормальный магазин с поддержкой за коппейки.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@AmdY, к новому году продажникам обычно приходят гениальные идеи вроде участия в черной пятнице с распродажей гвоздей при условии покупки чехла для мобильного, интеграция с wikimart, автоматизация доставки через несколько служб с автоматическим трекингом.
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
Это я понимаю, писал о шопах, которые лепят, там нафик не надо выделываться. А маджента с пятью поситителями - это уже хайлод, во время чёрной пятницы проще ставить картинку "under construction"
 
Полез посмотреть что наваяли, и сходу
PHP:
public function __construct(
        \Magento\Framework\Model\Context $context,
        \Magento\Framework\Registry $registry,
        \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
        AttributeValueFactory $customAttributeFactory,
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        \Magento\Catalog\Api\ProductAttributeRepositoryInterface $metadataService,
        Product\Url $url,
        Product\Link $productLink,
        \Magento\Catalog\Model\Product\Configuration\Item\OptionFactory $itemOptionFactory,
        \Magento\CatalogInventory\Api\Data\StockItemInterfaceFactory $stockItemFactory,
        \Magento\Catalog\Model\Product\Option $catalogProductOption,
        \Magento\Catalog\Model\Product\Visibility $catalogProductVisibility,
        \Magento\Catalog\Model\Product\Attribute\Source\Status $catalogProductStatus,
        \Magento\Catalog\Model\Product\Media\Config $catalogProductMediaConfig,
        Product\Type $catalogProductType,
        \Magento\Framework\Module\Manager $moduleManager,
        \Magento\Catalog\Helper\Product $catalogProduct,
        Resource\Product $resource,
        Resource\Product\Collection $resourceCollection,
        \Magento\Framework\Data\CollectionFactory $collectionFactory,
        \Magento\Framework\Filesystem $filesystem,
        \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
        \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor,
        \Magento\Catalog\Model\Indexer\Product\Price\Processor $productPriceIndexerProcessor,
        \Magento\Catalog\Model\Indexer\Product\Eav\Processor $productEavIndexerProcessor,
        CategoryRepositoryInterface $categoryRepository,
        Product\Image\CacheFactory $imageCacheFactory,
        \Magento\Catalog\Model\ProductLink\CollectionProvider $entityCollectionProvider,
        \Magento\Catalog\Model\Product\LinkTypeProvider $linkTypeProvider,
        \Magento\Catalog\Api\Data\ProductLinkInterfaceFactory $productLinkFactory,
        \Magento\Catalog\Api\Data\ProductLinkExtensionFactory $productLinkExtensionFactory,
        \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterfaceFactory $mediaGalleryEntryFactory,
        \Magento\Framework\Api\DataObjectHelper $dataObjectHelper,
        \Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface $joinProcessor,
        array $data = []
    ) {
        $this->metadataService = $metadataService;
        $this->_itemOptionFactory = $itemOptionFactory;
        $this->_stockItemFactory = $stockItemFactory;
        $this->_optionInstance = $catalogProductOption;
        $this->_catalogProductVisibility = $catalogProductVisibility;
        $this->_catalogProductStatus = $catalogProductStatus;
        $this->_catalogProductMediaConfig = $catalogProductMediaConfig;
        $this->_catalogProductType = $catalogProductType;
        $this->moduleManager = $moduleManager;
        $this->_catalogProduct = $catalogProduct;
        $this->_collectionFactory = $collectionFactory;
        $this->_urlModel = $url;
        $this->_linkInstance = $productLink;
        $this->_filesystem = $filesystem;
        $this->indexerRegistry = $indexerRegistry;
        $this->_productFlatIndexerProcessor = $productFlatIndexerProcessor;
        $this->_productPriceIndexerProcessor = $productPriceIndexerProcessor;
        $this->_productEavIndexerProcessor = $productEavIndexerProcessor;
        $this->categoryRepository = $categoryRepository;
        $this->imageCacheFactory = $imageCacheFactory;
        $this->entityCollectionProvider = $entityCollectionProvider;
        $this->linkTypeProvider = $linkTypeProvider;
        $this->productLinkFactory = $productLinkFactory;
        $this->productLinkExtensionFactory = $productLinkExtensionFactory;
        $this->mediaGalleryEntryFactory = $mediaGalleryEntryFactory;
        $this->dataObjectHelper = $dataObjectHelper;
        $this->joinProcessor = $joinProcessor;
        parent::__construct(
            $context,
            $registry,
            $extensionFactory,
            $customAttributeFactory,
            $storeManager,
            $resource,
            $resourceCollection,
            $data
        );
    }
может это уже в порядке вещей, и завтра все начнут писать мегакод в стиле яджавапохуист и мы пишем крутой код?
Посредством параметров конструктора программист перечисляет используемые классом объекты-одиночки.
При создании экземпляра класса Magento 2 передаёт значения этих параметров в конструктор автоматически.
Magento 2 позволяет посредством настроечных файлов XML подставить конкретному классу какую-то свою реализацию вместо глобального объекта-одиночки: таким образом реализуется нестандартная бизнес-логика: нестандартное налогобложение, нестандартный складской учёт, нестандартное ценообразование.
Magento - система для бизнеса, бизнес-правила могут быть весьма причудливыми, поэтому важна максимальная гибкость системы.
К такой архитектуре разрабочики пришли после 7 лет эксплуатации Magento 1.x Около 25-30% мирового рынка электронной торговли приходится на Magento. Много известных и высоконагруженных магазинов работает на Magento. http://magento-forum.ru/topic/4642/
 

Adelf

Administrator
Команда форума
Дмитрий, нет смысла оправдывать такой говнокод. даже не стоит пытаться. Не должно быть столько зависимостей у класса.
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
Посредством параметров конструктора программист перечисляет используемые классом объекты-одиночки.
При создании экземпляра класса Magento 2 передаёт значения этих параметров в конструктор автоматически.
Magento 2 позволяет посредством настроечных файлов XML подставить конкретному классу какую-то свою реализацию вместо глобального объекта-одиночки: таким образом реализуется нестандартная бизнес-логика: нестандартное налогобложение, нестандартный складской учёт, нестандартное ценообразование.
Magento - система для бизнеса, бизнес-правила могут быть весьма причудливыми, поэтому важна максимальная гибкость системы.
К такой архитектуре разрабочики пришли после 7 лет эксплуатации Magento 1.x Около 25-30% мирового рынка электронной торговли приходится на Magento. Много известных и высоконагруженных магазинов работает на Magento. http://magento-forum.ru/topic/4642/
А можно было просто почитать книжки по программированию и узнать что такое о пятой букве в SOLID, а не бротить 7 лет в потьмах чтобы прийти не туда.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а еще они врут, например, lamoda на rocket-овском фреймворке на java, они со мной общались когда-то на тему чтобы я им удаленную команду сделал и переписал, но про magento не было речи в принципе, потом в lamoda, вроде, решили .net взять

у angrybirds по их ссылке
Set-Cookie: JSESSIONID=8CE89BAC312E2FC7E4A3F0EE08A4C8C5.cfusion;
 
Последнее редактирование:
а еще они врут, например, lamoda на rocket-овском фреймворке на java, они со мной общались когда-то на тему чтобы я им удаленную команду сделал и переписал, но про magento не было речи в принципе, потом в lamoda, вроде, решили .net взять

у angrybirds по их ссылке
Set-Cookie: JSESSIONID=8CE89BAC312E2FC7E4A3F0EE08A4C8C5.cfusion;
Они не врут, просто такие масштабные проекты как Lamoda, Skype, AngryBirds используют сразу несколько разных систем и технологий.
9 лет назад работал над интернет-магазином dell.com - у них вообще за разные типы страницы интернет-магазина отвечала отдельная команда разработчиков, которая делала отдельное приложение (интегрированное с другими).
Кстати, зачастую (но не всегда) тиражируемое решение для них выступает лишь как первая ступень развития, а затем они всё переписывают всё до неузнаваемости с ростом проекта: это случай с Lamoda. Хорошо спроектированная под крупные проекты тиражируемая система как раз и нацелена на то, чтобы избежать переписывания всего, отсюда и код получается тяжеловесным и сложным для понимания: это случай Magento 2. Я плотно работаю с Magento 2 уже месяца 4, и, на мой взгляд, система точно взлетит в своём сегменте средних и крупных денежных проектов. Какова будет её успешность в сегменте систем для микро-бизнеса (где популярны WooCommerce и OpenCart) - пока неизвестно (смотря насколько получится скрыть техническую сложность от администратора), но там и бюджеты небольшие.
 

Absinthe

жожо
тиражируемая система как раз и нацелена на то, чтобы избежать переписывания всего, отсюда и код получается тяжеловесным и сложным для понимания: это случай Magento 2
Не вижу оснований для подобных выводов. Зато вижу основание для обратных:

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

fixxxer

К.О.
Партнер клуба
Дмитрий, любой код получается тяжеловесным и сложным для понимания исключительно от хреновой архитектуры. Не надо оправдывать говнокод сложностью. Принципы объектно-ориентированного дизайна разработаны ровно с целью управления сложностью крупных проектов, в данном случае авторы очевидно не справились с этим аспектом.

В том, что взлетит - не сомневаюсь, но основная причина - раскрученный бренд, наличие фич из коробки и доступность разработчиков, специализирующихся на технологии, а вовсе не качество кода. Примерно как с Битриксом.
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
масштабные проекты используют сразу несколько разных систем и технологий.
- Используете ли вы php в Гугл?
- Да, используем. У нас в офисе есть страничка, через которую мы пиццу заказываем - она написана на php.
(С) Лурк :)

Дима, а кроме мадженто что ты в жизни делал дольше пары месяцев? Какие системы ты успешно писал года два-три - то есть так, что они вообще не падают, и сроки разработки в целом соблюдаются?
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
нет :) ну, часто обещаемые 99.9% - то есть лежать не более 9 часов за год.
да хотя бы не более пары выходных после пятничной выкладки!
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
у нас чаще 99,5% обещают и это нормальных 2 дня которые испортят настроение за весь год
 

fixxxer

К.О.
Партнер клуба
99.9, 99.5... Помнится был такой веселый говнохостинг-провайдер valuehost, у них был SLA! Где было прописано 98% :)
 

AnrDaemon

Продвинутый новичок
Дададад, помню у нас клановая страничка там хотилась в незабвенные года.
Брехня про 98%, две недели минимум в году лежал.
 
Сверху