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

Lead Architect, Magento an Adobe

Send message

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

Reading time7 min
Views4K


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

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

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

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

Reading time2 min
Views3.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
Comments1

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

Reading time2 min
Views3.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
Comments0

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

Reading time2 min
Views2.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
Comments0

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

Reading time13 min
Views9.9K


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

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

Reading time1 min
Views14K

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

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

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

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

Reading time2 min
Views2.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
Comments24

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

Reading time6 min
Views10K
image
Итак, после постановки требований описанной в части 1 можно перейти к проектированию системы.

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

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

Reading time4 min
Views4.7K
image

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

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

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

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

Reading time6 min
Views13K

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

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

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

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

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

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

Reading time1 min
Views7.4K
image

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


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

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

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

Reading time1 min
Views2.5K
image

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Читать дальше →
Total votes 8: ↑4 and ↓40
Comments30

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

Reading time1 min
Views701
Собственно сегодня наткнулся на ссылку 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
Comments33
1

Information

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