Shopify против Magento: взгляд разработчика

Опубликовано: 2019-04-23

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

Но что это на самом деле означает для разработчиков на практике и как этот выбор влияет на продавцов и их клиентов?

Информационной безопасности

В мире Magento каждый интернет-магазин представляет собой собственную независимую установку программного обеспечения Magento. Magento работает примерно в 200 000 магазинов, и все они используют множество различных версий, модулей, исправлений и настроек.

Magento — это программное обеспечение с открытым исходным кодом, что означает, что его код (во всех версиях и исправлениях) общедоступен для просмотра в Интернете. Это, в сочетании с тем фактом, что существует более 200 000 магазинов Magento, работающих с конфиденциальными данными о клиентах и ​​платежах, делает Magento чрезвычайно привлекательной мишенью для злоумышленников, стремящихся найти и использовать уязвимости безопасности в программном обеспечении.

Когда команда Magento выпускает исправление безопасности, каждый магазин Magento необходимо обновлять отдельно, и ответственность за это лежит на каждом продавце. Этот процесс часто осложняется тем, что магазины Magento могут сильно различаться по своей реализации. Обновление, которое успешно применяется к одному магазину, может легко вызвать проблемы при применении к другому магазину из-за различий в сторонних модулях, темах или локальных настройках.

Для продавцов и разработчиков это может создать большую и неожиданную нагрузку, как в случае с обновлением безопасности Magento SUPEE-6788. Это обновление исправило несколько уязвимостей в Magento, но также нарушило обратную совместимость с сотнями популярных модулей сообщества. Помимо применения исправления безопасности, все затронутые модули сообщества необходимо будет обновить для обеспечения совместимости. Это поставило разработчиков перед трудным выбором: либо ждать, пока поставщики выпустят обновленные версии своих модулей сообщества, либо обновлять эти модули вручную. Если они будут ждать продавцов, их магазин Magento останется уязвимым; если они вручную обновляют эти модули, код модуля не синхронизируется с версией поставщика, что может усложнить будущие обновления.

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

С тех пор как я перешел на разработку на платформе Shopify Plus, мне не пришлось тратить время на исправление уязвимостей в системе безопасности магазинов Shopify. Это одно из самых больших преимуществ, которое дает выбор хостингового решения по сравнению с программным обеспечением с открытым исходным кодом. Платформа и все конфиденциальные данные размещены и защищены Shopify, многомиллиардной публичной компанией.

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

Хостинг, веб-трафик, базы данных и масштабирование

миграция_масштабирование

В ходе A/B-тестирования Amazon однажды обнаружил, что 500-миллисекундная задержка скорости загрузки страницы приводит к падению продаж на 5%. Google также обнаружил, что задержка в 500 миллисекунд привела к 20-процентному падению поискового трафика и дохода от рекламы, а также к снижению удовлетворенности пользователей.

Оптимизация скорости загрузки страниц действительно очень важна.

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

Работая разработчиком Magento, вы постоянно думаете о скорости загрузки страниц и загрузке базы данных.

Magento — это очень большая кодовая база, состоящая из тысяч файлов и миллионов строк кода. Он хранит конфигурации системы, модуля и макета в файловой системе в виде больших XML-файлов, разбор которых требует значительных вычислительных ресурсов. Он реализует модель хранения данных Entity-Attribute-Value, распространяя связанные данные по множеству разных таблиц в базе данных, что требует сложных и дорогостоящих запросов к базе данных даже для таких простых вещей, как получение данных о продукте. Все это делает Magento одной из самых сложных платформ для размещения и масштабирования, и по мере роста трафика на ваш сайт решения этих задач становятся все более сложными.

Чтобы ускорить работу в производственной среде, Magento реализует множество уровней кэширования на уровне приложения, включая кэширование для конфигурации системы, разметки XML, блочного вывода HTML и полной генерации страницы. Это означает, что как разработчик вы должны убедиться (путем тщательного рассмотрения и тестирования), что все локальные настройки и модули сообщества должным образом используют все эти кеши, потому что даже единичная недействительность кеша может сильно повлиять на скорость загрузки страницы.

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

Разработка, технологии и ресурсы

migration_frameworks

С точки зрения разработки основное различие между Magento и Shopify заключается в том, что Magento — это монолитная платформа электронной коммерции, тогда как Shopify — это размещенная платформа, взаимодействующая с широким спектром внешних сервисов.

При разработке для Magento вся ваша деятельность по разработке происходит в его рамках; вы добавляете и изменяете код в этой структуре, чтобы расширить и изменить ее функциональность. Весь ваш код исходит из ядра Magento, которое использует предопределенный набор технологий и строго регламентирует их использование.

Как разработчик Magento, вы пишете объектно-ориентированный PHP, наследующий библиотеки Zend, поверх базы данных MySQL, используя Prototype, а иногда и jQuery во внешнем интерфейсе. Это очень сложная и узкоспециализированная структура, и может потребоваться много специальной подготовки, чтобы стать продуктивным в ней. Это увеличивает стоимость и степень сложности найма и адаптации.

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

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

Что все это значит для торговцев

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

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