Oops... your message was not sent

Your message has been successfully sent

тематические истории, основанные на опыте компании JetRuby
Электронная коммерция

Командная работа в Shopify: трудности и пути их решения

Shopify — это сервис для разработки интернет-магазинов. Легко кастомизируемая платформа с большим набором готовых шаблонов. Отдельного разговора заслуживают темы Shopify. Это очень удобный и простой в использовании инструмент. Пышно выражаясь, можно сказать, что работа с ними доставляет истинное удовольствие.

Для задачи темы Shopify в интернет-магазине вам нужно всего лишь:

  • Скачать Desktop Theme Editor app;
  • С его помощью загрузить тему магазина в свой компьютер;
  • Сохранить отредактированный файл, после чего Desktop Theme Editor загрузит его в магазин.

На этом все. Можно проверять изменения в продакшене. Однако простота и легкость этого процесса загадочным образом улетучиваются, если вы работаете в команде. Почему так происходит?

Истоки проблемы

По причине того, что в Shopify нет локального development окружения, работа ведется либо в staging, либо в production, а программирование — исключительно в production, причем напрямую. Как известно, это плохая затея. Почему? Потому что одним неловким движением можно сломать всю верстку. Отметим, что еще существует вариант использования “неактивных” тем для разработки, однако к нему мы вернемся позже.

Суть проблемы

Для того чтобы проникнуть в суть проблемы, нам нужно представить, как выглядит работа в команде. Представляем:

  1. Команда программистов публикует проект с помощью Git;
  2. Каждый член команды в своей ветке вносит в него локальные изменения;
  3. Внесенные изменения тщательно тестируются и сливаются с мастер-веткой, после чего всё отправляется в production.

Внимание: проблема — в случае с Shopify этого сделать нельзя. Представьте такую ситуацию: два программиста, скажем — Элис и Боб, редактируют одну и ту же тему. Оба скачивают ее, оба редактируют, а затем пользуются Shopify Theme Editor для загрузки  изменений. Вроде бы все идет по плану. Но при этом ребята постоянно затирают друг другу изменения, что делает невозможным ни программирование, ни тестирование.

Решение

Для ведения командной разработки необходимо создать проект с контролем версий. Что для этого нужно? Для начала создадим две копии одной и той же темы и запушим каждую из них в соответствующую ветку Git. А теперь рассмотрим вновь образовавшийся процесс на примере наших программистов –  Элис и Боба:

  • Элис создает репозиторий в Git;
  • Далее она создает главную тему в магазине Shopify;
  • После этого копирует тему для форка Боба;
  • Потом скачивает главную тему (используя Desktop Theme Editor) и пушит ее в мастер-ветку Git;
  • Элис создает в Git ветку “Боб”;
  • В завершение Элис скачивает тему Боба (используя Desktop Theme Editor) и пушит ее в ветку “Боб” в Git.

Процесс разработки

В сложившейся ситуации оба программиста могут работать со своими собственными темами в development режиме. Главное – не путать ветки. Теперь Элис просто отправляет свои изменения в master. Такой подход очень гибок. Его использование дает нам следующие преимущества:

  • Наличие собственной ветки и собственной темы для каждого программиста;
  • Возможность добавить production-ветку и production-тему для деплоев каждым из них (заметьте: это никак не повлияет на чей-либо код).

Главное – помнить, что каждой ветке Git соответствует своя копия темы в админ-панели Shopify. Все! Теперь можно заниматься разработкой в Shopify без конфликтов и противоречий. Овцы целы, волки сыты и все довольны.

department
Статью подготовил
Отдел Электронной коммерции
Команда имеет богатый опыт в разработке онлайн-решений для бизнеса. Мы используем только самые передовые технологии из области электронной коммерции.
New Articles