Pull to refresh
149
0
Игорь Миняйло @maghamed

Lead Architect, Magento an Adobe

Система управления складом с использованием CQRS и Event Sourcing. Процесс Разработки

Reading time 7 min
Views 4K


Данная статья является продолжением ряда статей опубликованных здесь ранее и посвященных этапам:

  1. Постановке требований
  2. Проектированию
  3. Реализации. Service Layer

В ней описано каким образом мы организовали процесс разработки привлекая разработчиков из собщества Magento с момента старта проекта в середине прошлого лета и с чем мы подошли к General Availability релизу сделанному на прошлой неделе.
Total votes 8: ↑7 and ↓1 +6
Comments 0

Magento выпустила новый мажорный релиз платформы — 2.3.0 GA

Reading time 2 min
Views 3.6K
Вчера компания Magento an Adobe выпустила новую версию платформы 2.3.0 куда вошли:


Magento Community непосредсвенно поучаствовала в релизе исправив 538 Github Issues (Fixed Bugs) и доставив 1030 Pull Requests (Improvements & Bugfixes), которые стали частью релиза 2.3.0

Ссылка на Release Notes
Детальней о новых фитчах релиза



Больше информации под катом
Читать дальше →
Total votes 11: ↑4 and ↓7 -3
Comments 1

MageConf 2017 видео и материалы конференции

Reading time 2 min
Views 3.6K


16го Декабря в Киеве прошла самая большая техническая конференция посвященная платформе Magento и eCommerce в целом. Конференция проходила в 4 параллельных потока, на которых было презентовано 30 докладов и воркшопов. Конференцию посетили 600+ участников.

Главному ивенту предшествовал Magento Contribution Day, проводимый в офисе компании Magento за день до этого и собравший более 100 человек, которые вместе с Magento Core программистами и архитекторами работали над улучшением платформы и исправлением багов. А также над разработкой новой функциональности системы — Multi-Source Inventory.



В ходе ивента было поставлено 40+ Pull Request в Magento 2 репозиторий.

В данном посте предлагаю ознакомиться с видео всех выступлений, которые вы найдете под катом. С программой конференции MageConf 2017 можно ознакомиться перейдя по ссылке.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 0

Magento Dare to Share. Осень — сезон Magento митапов

Reading time 2 min
Views 2.4K


21-го сентября в Киеве состоялся очередной Magento «Dare to Share» Meetup.
Вашему вниманию предлагаются видео докладов прозвучавших в рамках мероприятия, а также анонсы следующих Magento ивентов этой осенью.

  1. Антон Криль, Magento Lead Architect (@AntonKril on ) — Magento 2 directions (Укр.)
  2. Анастасия Сухорукова, Magecom (@a_sukhorukova on ) — Микросервисы для Мagento
  3. Игорь Миняйло, Magento Architect (@iminyaylo on ) — Magento Contribution Day как формат Хакатона
  4. Игорь Сидоренко, Vaimo (@wurkindylkildyl on ) — Динамическое редактирование фронтенда в Magento
  5. Олег Посиняк, Magento Cloud (@OlegPosyniak on ) — Magento Cloud

Тезисы докладов и анонсы следующих ивентов можно прочитать под Катом.
Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Comments 0

Система управления складом с использованием CQRS и Event Sourcing. Service Layer

Reading time 13 min
Views 9.9K


В данной статье будет рассмотрен Service Layer в Magento 2 и сервисы (API интерфейсы) для управления сущностями, которые были описаны в предыдущей статье, посвященной проектированию и выделению доменных сущностей для системы управления складом (Inventory).
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 31

Microservices и Модель Акторов (Actor Model)

Reading time 1 min
Views 14K

Доклад посвящен:

  • Пользовательским интерфейсам ориентированным на задачи (Task Based UI)
  • CQRS (Command/Query Responsibility Segregation)
  • Микросервисы
  • Закон Конвея и его влияние на примере организации команд в Magento
  • Fine-grained сервисы vs Coarse-grained сервисы
  • Синхронность vs Асинхронность
  • Модель Акторов (Actor Model)

Вторая часть доклада находится под хабракатом.
Total votes 9: ↑5 and ↓4 +1
Comments 32

Magento Dare to Share — Открытая Площадка для докладов о Magento, PHP и eCommerce

Reading time 2 min
Views 2.9K


20 Июля в Киевском офисе Magento прошло открытое мероприятие под названием Magento meetup «Dare to Share», которое могли посетить и в котором могли принять участие любые желающие кому интересна платформа Magento 2 и тема электронной коммерции (eCommerce).

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

  1. Игорь Миняйло, Magento (@iminyaylo on ) — Magento Community Engineering
  2. Макс Пронько, The Irish Store (@max_pronko on ) — Автоматизация релизов для Magento 2. Опыт компании The Irish Store
  3. Вячеслав Кравчук, Atwix (@slkra on ) — Story of a Transformation (Укр.)
  4. Андрей Кравец, Forbytes / Gymgrossisten (@Winfle on ) — Dynamic caching of personalised data in Real Life (Укр.)
  5. Александр Козырь, Magecom (@kozyr1av on ) — SOLID-ное программирование на Magento 2

Тезисы докладов можно прочитать под Катом
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 24

Система управления складом с использованием CQRS и Event Sourcing. Проектирование

Reading time 6 min
Views 10K
image
Итак, после постановки требований описанной в части 1 можно перейти к проектированию системы.

Основная наша задача в проектировании, как это понятно из названия статьи, добиться разделения интерфейсов на Query и Command, чтобы впоследствии разделить бизнес сценарии на те, которые будут читать данные (Query интерфейсы) и на те, которые будут изменять данные (Command интерфейсы). А также обеспечить минимальное время ожидание (latency) на обновление данных, доступных через Query, после того как мы изменили данные через Command.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 11

Система управления складом с использованием CQRS и Event Sourcing. Постановка требований

Reading time 4 min
Views 4.7K
image

В последнее время стала популярна концепция Omnichannel, когда чтобы улучшить качество обслуживания клиентов, различные каналы продаж интегрируются в один. И не важно как и где совершается продажа, для продавца имеет смысл объединить все каналы сбыта для того, чтобы выполнить заказ. На практике это означает, что неважно клиент пришел к вам оффлайн, сделал заказ на сайте, в мобильном приложении или в телефонном режиме — вы должны использовать все доступные средства для его выполнения. И для вас, как для продавца, каждый отдельный канал не должен представлять большой разницы. Презентация omni channel на примере Франкфуртского аэропорта (англ.).

Для интеграции описанной выше, со стороны продавца очень важно иметь возожность интегрировать уровни запасов товаров. Потому что инфраструктура розничной торговли может быть достаточно сложной и объединять внешние склады, магазины, магазины с возможностью заказа товаров в магазин (store pick-up), дропшиппинг (схема торговли, при которой Вы продаёте изделия фирмы-поставщика, которая сама пересылает их покупателю от Вашего имени, а Вы только принимаете от покупателя деньги).

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Comments 0

Запрещенные изменения в коде или продолжение истории ремонта одного крана

Reading time 6 min
Views 12K

Данная статья является продолжением ранее опубликованной статьи, которую можно найти здесь.

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

Откладывание рефакторинга на потом ведет к увеличению технического долга и созданию задач (user story) на рефакторинг, которые не имеют business value для product owner-a, а соответственно такие задачи не будут попадать в топ продуктового беклога.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 7

Политика обратной совместимости при разработке фреймворка на примере Magento 2. Часть 1

Reading time 7 min
Views 9.8K
image
*Поломанный кран в офисе Magento и быстрое решение воплощенное в жизнь одним из инженеров — типичный Backward Compatible фикс.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 17

Magento U опубликовало бесплатный курс Fundamentals of Magento 2 Development

Reading time 1 min
Views 7.3K
image

Magento U опубликовало 4 бесплатных курса:


Которые будут доступны до 31го марта 2017 года абсолютно бесплатно для всех желающих.
Курсы включают набор видео уроков, а также pdf материалы и презентации с задачами и тестами в конце каждого урока, которые помогут быстрей разобраться с архитектурой Magento 2.

Содержание курса под хабракатом.
Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 0

Magento BarCamp — новый сезон докладов. Март 2017

Reading time 1 min
Views 2.5K
image

Баркемп (англ. BarCamp) — международная сеть конференций, которая создаётся её участниками. Конференции открыты для всех, проходят в формате докладов, тренингов, презентаций, обсуждений. Весь материал предоставляется самими участниками. © — Wiki

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


Больше под хабракатом
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 0

Отчет и материалы конференции MageConf 2016

Reading time 1 min
Views 4.8K
image
10 Декабря 2016 года в Киеве прошла конференция MageConf 2016. Тематика конференции — весь стек технологий, используемых в Magento. Конференция прошла в 2 потока: Backend и Frontend.

Под катом вы сможете найти видео всех докладов презентованных на конференции:
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 2

Блочное кеширование на стороне клиента

Reading time 6 min
Views 6.7K
В последнее время в высоконагруженных сайтах стали все чаще применять технику Partial Caching или блочного кеширования. Достигается это, как правило, за счет применения, казалось бы уже давно забытого, SSI или близких ему технологий (например, ESI). Например, в связках Nginx + Memcached + SSI или Varnish + ESI.

Недавно и на Хабре тоже появился топик в котором автор описывал данный метод кеширования.

В данном топике в 3м варианте решения автор предложил читателям топика привести свои варианты решения относительно данной задачи.

Этому, собственно, и посвящается этот топик.
Читать дальше →
Total votes 48: ↑37 and ↓11 +26
Comments 105

Кастомные переменные Google Analytics, или новые возможности для сегментирования вашего трафика

Reading time 4 min
Views 11K
Как Вы, вероятно, уже знаете не так давно произошло обновление Google Analytics. Данное обновление было освещено и здесь, на хабре, — Грандиозное обновление Google Analytics

В частности изменения коснулись:
  • Увеличено количество целей до 20 (4 набора по 5 целей в каждом)
  • Появились цели новых типов (время проведенное на сайте и кол-во просмотренных страниц)
  • Веб-аналитика мобильных сайтов. Статистика с приложений на платформах Android и IPhone также как для веб-сайтав
  • Адаптация кода Analytics под выбранную платформу
  • Появление Pivot таблиц в отчетах — то чего очень не хватало многим, и из-за чего приходилось использовать Excel
  • Фильтрация данных в отчетах на лету
  • Добавлена новая метрика — уникальные посетители
  • Расширена возможность работы с событиями
  • Полностью изменены принципы работы с пользовательскими переменными


На последнем я бы и хотел остановить свое внимание.
Читать дальше →
Total votes 42: ↑37 and ↓5 +32
Comments 21

Как обрабатывать Fatal Error в PHP

Reading time 4 min
Views 19K
В одном из наших проектов (социальная генеалогическая сеть), о котором я писал в данном топике, мы используем очередь отложенных событий, реализованную на мемкеше. Ее архитектура такова: приложение записывает в эту очередь различные события и данные, относящиеся к ним (тип события, входящие параметры, и функция обработчик этого события). После чего менеджер(-ы) очереди разбирают эту очередь и выполняют отложенные события. В частности такая очередь используется для сбора статистики, но также и для других более критичных к выполнению задач.
Поэтому очень важно обеспечить high availability для менеджера(-ов) очереди.

Но т.к. ф-ия обработчик очереди к нам приходит из вне, то за качество этого обработчика события мы не отвечаем, т.е. если обработчик вдруг выбросит ошибку, то нам ее нужно обработать и продолжить работу менеджера очереди. Но иногда случается, что обработчики выбрасывают фатальные ошибки (Fatal Error), и это может стать проблемой…

Читать дальше →
Total votes 15: ↑8 and ↓7 +1
Comments 33

«Мое Дерево» — круг расширяется!

Reading time 4 min
Views 1.3K
Давно хотел представить сообществу стартап, которым мы занимаемся, но всё как-то считал его неготовым и недоделанным. Но вчера, после очередного релиза, в котором мы презентовали миру, пожалуй, главную на сегодняшний день нашу фичу, и очень надеемся, что эта фича в будущем получит приставку killer :-) я решил, что не стоит дальше откладывать дело в долгий ящик и заявить о себе во всеуслышание! Итак — Мое Дерево.

Мое Дерево - Дерево Друзей
Читать дальше →
Total votes 101: ↑85 and ↓16 +69
Comments 83

История о том как SVN copy победил SVN merge

Reading time 3 min
Views 1.8K
Итак, сразу опишу нашу ситуацию и потом объясню почему дал этой статье такое глупое название :-)

Наша команда из 4х человек работает на одном проекте (пока не буду говорить, что за проект, надеюсь, напишу о нем позже)

У нас было 3 SVN ветки: Production (стабильная ветка, которая обслуживает запросы пользователей), Staging (промежуточная ветка), Trunk (девелоперская ветка).

Читать дальше →
Total votes 8: ↑4 and ↓4 0
Comments 30

Все то, о чем мы так долго мечтали — первый официальный релиз MySQL 5.1

Reading time 1 min
Views 695
Собственно сегодня наткнулся на ссылку http://lists.mysql.com/announce/565 и сразу спешу поделиться с хабро-сообществом.

Здесь говорится, что сегодня вышел первый релиз MySQL Server 5.1.30 Generally Available (GA), который является первым релизом, рекомендованным для использования на продакшн серверах.

Основные нововведения в версии 5.1. представлены по этой ссылке http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html

А также описаны в статье tuta_larsonЧто нового в MySQL 5.1

Также немаловажно будет ознакомится со списком открытых багов для версии 5.1. — http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html


Ну и собственно ссылка на скачивание — http://dev.mysql.com/downloads/
Total votes 57: ↑53 and ↓4 +49
Comments 33
1

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity