Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

168 views

Published on

Presentation from Magento Meetup Lviv 2018 by Ivan Bondar, Elogic

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

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

×