SlideShare a Scribd company logo
ELOGIC.co
ΞLOGIC
ELOGIC.co
Миграция кода проектов с M1 на M2
Ivan Bondar
fb.com/bondar.id
ivan.bondar elogic.co
ELOGIC.co
ΞLOGIC
Цели миграции кода:
• Упростить поддержку и сопровождение
• Повысить эффективность доработок
• Улучшить безопасность
ELOGIC.co
ΞLOGIC
Оценить объем и сложность работ.
ELOGIC.co
ΞLOGIC
Запросите все доступные материалы по
текущему проекту M1.
• Исходный код (под системой контроля
версий) + автотесты
• Дамп БД
• Логи
• Документацию (wiki, confluence…),
скриншеты, блоксхемы бизнес-процессов,
юзер-кейсы
ELOGIC.co
ΞLOGIC
Обзор интеграций (CRM, ERP…)
• Обсудить планы обновлений (возможные
изменения форматов передачи данных)
• Обеспечить возможность тестирования
• Обсудить альтернативные способы обмена
данными (REST, SOAP, FTP…csv, xml)
ELOGIC.co
ΞLOGIC
Поискать готовые решения
• в самой magento 2
• Обновления сторонних модулей
• Обсудить альтернативные модули от других
вендоров
• marketplace, packagist, github
ELOGIC.co
ΞLOGIC
Самостоятельно переписать код.
• Обзор кода модулей M1
• - поиск зависимостей (библиотеки, расширения PHP)
• - повторить поиск готовых решений
• Глубоко исследовать код
• - почитать историю коммитов
• - проверить соответствие БД, дата-объектов и сетап-скриптов
• - проследить пути запросов, выявить призрачные классы и
методы
ELOGIC.co
ΞLOGIC
Этапы разработки.
ELOGIC.co
ΞLOGIC
Соблюдайте архитектурные принципы!
• SOLID
• DDD
• KISS
• DRY
ELOGIC.co
ΞLOGIC
Single Responsibility Principle
• разбейте приложение на компоненты,
которые максимально независящих друг от
друга, и реализацию которых можно
поручить параллельно нескольким
разработчикам.
ELOGIC.co
ΞLOGIC
Domen
• Из контекста логики вашего приложения
придумайте симантику домена
• Используйте ее для наименования классов и
методов
ELOGIC.co
ΞLOGIC
Сервис контракты
• Опишите все зависимости в абстракциях
(Объявите интерфейсы)
ELOGIC.co
ΞLOGIC
Простые дата объекты
• Реализуйте гетеры и сеттеры
• Если объект хранится в БД
• - Наследуйте ресурсные модели M2
• - реализуйте одну точку взаимодействия с
ресурсом (репозиторий)
ELOGIC.co
ΞLOGIC
По типичным примерам, переносите
представление админ панели.
• UI компоненты
• - grid, listing, form
• Системные настройки
• - system.xml
• - source модели
ELOGIC.co
ΞLOGIC
Внимательно проследите все зависимости
между классами!
• Используйте поиск по ключевым словам:
• require
• new
• Mage
• model
• singleton
• helper
ELOGIC.co
ΞLOGIC
DDD
• Освободите от бизнес-логики Контроллеры,
Обсерверы, Хелперы, Темплейты…итд
• Постарайтесь реализовать всю логику в
домене.
ELOGIC.co
ΞLOGIC
Контроллеры
• Скорее всего, часть контроллеров
представления практичнее заменить
вызовами web API
• Уделите особое внимание валидации
запросов.
ELOGIC.co
ΞLOGIC
Ресурсные модели
• используйте типичные примеры из M2
• не спешите с оптимизацией
ELOGIC.co
ΞLOGIC
Домен
• переносите бизнес логику в домен
• рефакторинг сложности
• соблюдайте стандарты кода.
ELOGIC.co
ΞLOGIC
Вопросы?

More Related Content

PDF
RST2014_Taganrog_IncodingFramework
PDF
Эффективная работа с Adobe Creative Cloud.
PDF
Импортозамещение Docsvision
PDF
О разработке десктопных приложений / About desktop development
PPT
СЭД Docsvision – предложения по импортозамещению для российских предприятий
PPT
Dotnet
PPTX
Введение в MEF
PDF
Javascript-фреймворки:
 должен остаться только один
RST2014_Taganrog_IncodingFramework
Эффективная работа с Adobe Creative Cloud.
Импортозамещение Docsvision
О разработке десктопных приложений / About desktop development
СЭД Docsvision – предложения по импортозамещению для российских предприятий
Dotnet
Введение в MEF
Javascript-фреймворки:
 должен остаться только один

Similar to Миграция кода с Magento 1 на Magento 2 (20)

PDF
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
PDF
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
PDF
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
PDF
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
PPTX
Микросервисы в .NET Core
PPT
1С-Битрикс: Управление сайтом Версия .NET
PPT
10 компонентные и офисные приложения на платформе microsoft
PDF
Desktop app based on node js and html5
PPTX
Обзор OMNITRACKER CleverENGINE
PPT
современные технологии управления знаниями (Ecm). возможности и перспективы
PPT
Webinar - 2011: ECM eDocLib
PPTX
Промышленная разработка ПО. Лекция 2. Инструменты
PPTX
Сбор и анализ требований в Scrum. Адаптация процесса ICONIX
PPTX
Использование ICONIX для анализа требований в Scrum
PPTX
Лучшие практики на практике
PDF
DevOps guide for awesome quality assurance
PDF
Юрий Василевский «Автоматизация в XCode»
PDF
Юрий Василевский "Автоматизация в XCode"
PPT
13 расширенные возможности корпоративных приложений, основы субд
PDF
Workflow: работа над проектом в Яндексе
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
Микросервисы в .NET Core
1С-Битрикс: Управление сайтом Версия .NET
10 компонентные и офисные приложения на платформе microsoft
Desktop app based on node js and html5
Обзор OMNITRACKER CleverENGINE
современные технологии управления знаниями (Ecm). возможности и перспективы
Webinar - 2011: ECM eDocLib
Промышленная разработка ПО. Лекция 2. Инструменты
Сбор и анализ требований в Scrum. Адаптация процесса ICONIX
Использование ICONIX для анализа требований в Scrum
Лучшие практики на практике
DevOps guide for awesome quality assurance
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский "Автоматизация в XCode"
13 расширенные возможности корпоративных приложений, основы субд
Workflow: работа над проектом в Яндексе
Ad

More from Elogic Magento Development (16)

PPTX
Magento Technical guidelines
PPTX
Introduction to Magento Community
PDF
CQRS and Event-Sourcing in Magento2 by examples of MSI
PDF
Chernivtsi Magento Meetup&Contribution day. Naida V.
PPTX
Chernivtsi Magento Meetup&Contribution day. Miniailo.I.
PPTX
Chernivtsi Magento Meetup&Contribution day. V. Kublytskyi
PPTX
The process of a Lean Magento development
PPT
12 Ways to Improve Magento 2 Security and Performance
PPTX
MMnl Pavlo Okhrem
PPTX
Payment integration patterns в Magento2
PPTX
Как благодаря композеру использовать сторонние компоненты в Magento 2
PPTX
Magento 2 - the future of eCommerce
PDF
RequireJS і Magento 2
PPT
Як перехід на Magento допоміг нам стати лідером
PDF
Как переписать модуль с Magento 1 на Magento 2
Magento Technical guidelines
Introduction to Magento Community
CQRS and Event-Sourcing in Magento2 by examples of MSI
Chernivtsi Magento Meetup&Contribution day. Naida V.
Chernivtsi Magento Meetup&Contribution day. Miniailo.I.
Chernivtsi Magento Meetup&Contribution day. V. Kublytskyi
The process of a Lean Magento development
12 Ways to Improve Magento 2 Security and Performance
MMnl Pavlo Okhrem
Payment integration patterns в Magento2
Как благодаря композеру использовать сторонние компоненты в Magento 2
Magento 2 - the future of eCommerce
RequireJS і Magento 2
Як перехід на Magento допоміг нам стати лідером
Как переписать модуль с Magento 1 на Magento 2
Ad

Миграция кода с Magento 1 на Magento 2