SlideShare ist ein Scribd-Unternehmen logo
1 von 20
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
Вопросы?

Weitere ähnliche Inhalte

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

Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
Media Gorod
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
KewpaN
 
современные технологии управления знаниями (Ecm). возможности и перспективы
современные технологии управления знаниями (Ecm). возможности и перспективысовременные технологии управления знаниями (Ecm). возможности и перспективы
современные технологии управления знаниями (Ecm). возможности и перспективы
EOS-soft
 
Webinar - 2011: ECM eDocLib
Webinar - 2011: ECM eDocLibWebinar - 2011: ECM eDocLib
Webinar - 2011: ECM eDocLib
EOS-soft
 
13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд
KewpaN
 

Ähnlich wie Миграция кода с Magento 1 на Magento 2 (20)

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

Mehr von Elogic Magento Development

Mehr von Elogic Magento Development (16)

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

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