Самописные движки и велосипед интернет-магазина — что лучше?
Мы сначала радовались, что у нас всё своё: движок магазина, личного кабинета, виджеты, модули на любой вкус и цвет, разве только платёжные системы чужие, но если бы закон позволял, и тут сделали бы своё (закон, конечно, позволяет, но только через игольное ушко). Это действительно прекрасное чувство первооткрывательства - все шишки собрать - зато все становятся родными.
А потом поняли, что свой велосипед, конечно, ближе педалями. Но куда лучше совершенствовать популярный и уже прокачанный чужой. Потом - это через пять лет.
Александр Сысоев, помнится, при разработке ДубльГиса - тоже сетовал, что чужие варианты его не устраивали, однако тогда он был первопроходцем, и это недовольство понятно - под новые запросы гораздо лучше подойдут самописные решения. Мы же в техническом аспекте пока не первопроходцы. Есть куча достоинств, но все они неуникальны.
Есть же и обратные примеры, решили мы - когда какой-то элемент продукта заимствуется, и продукт вполне себе развивается (Android + Linux, Microsoft + Chromium, MacOS + FreeBSD и т.д.). Решили и пошли на сторону.
Какие недостатки оказались у нашего велосипеда?
- На первые три шаблона магазина у нас ушло три же года. Зато на внедрение чужого четвёртого - пара месяцев (пока всё в процессе, но мы уже продвинулись дальше и больше, чем раньше - MVP не за горами).
- Многие клиенты отзывались, что рубрикатор прежнего магазина (половина спросит, что это такое, зачем такое длинное?) был невыносим. И очень сложный движок (двенадцатиэтажная смесь из PHP, Twig и AngularJS), с которым что-либо интегрировать, надстроить или же убрать оттуда, было долго - откуда, спросите, взялись три года?
- Иногда казалось, что баги - не гости, а хозяева. Можно сказать, один из шаблонов они так и не выпустили из состояния беты (но клиентам не очень-то и надо было).
- На этом месте многие подумают, что дело в не тех руках не тех разработчиков. Но половина их до сих пор в штате, а другая половина ушла в более крупные компании. И что характерно - после принятия решения о развороте - у нас баги в таком объёме кончились, а в более крупных компаниях тоже вроде бы не начались.
- А дело в том, что мы изначально делали различные доработки под конкретные запросы клиентов, а поверх этого следующие, в итоге система с каждым разом становилась всё более сложной. Каждый разработчик привносил что-то своё, а когда они уходили, остальным надо было навёрстывать-перевёрстывать.
Отдельные пять копеек про личный кабинет. Тут всё просто - Angular.js и рядом не стоит с Vue.js. Ну и раньше в личном кабинете все опции были разбросаны и структурированы по не всегда понятной логике, так что запрос в поддержку "инструкцию прочёл, но ничего не понял" преобладал. А теперь же и визуально-динамически просто космос, и в поддержке тишина.
Загадка с подвохом из раннего ЛК: чем отличаются опции "Добавить метод оплаты" и "Добавить платёжный модуль" и какая из них нужнее пользователю, если вторая находится на видном месте, а первая спрятана за семью ссылками?
Итак, в этом году мы сделали ставку на движок Wordpress + Woocommerce. Какие проблемы сразу решили?
- Разработка/внедрение/кастомизация/поддержка стали проще и быстрее.
- Удивительно, но оказывается, можно обходиться вообще без костылей.
- Плюс огромное количество плагинов от Вордпресса позволяют интегрировать что угодно под конкретного клиента. То же SEO, например, со всеми наворотами. В предыдущем решении мы до него так основательно и не дошли.
- Дорогая лицензия приобретённого плагина, на самом деле, довольно быстро окупается, как минимум тем, что разработчики тратят меньше человеко-часов, значит, и рублей.
С другой стороны, какие проблемы теперь предстоит решать?
- Масштабируемость - решение от Вордпресса выходит коробочно-узким, у нас же задача предоставить его для всех клиентов и для каждого со своими хотелками. Есть несколько бесплатных и сырых плагинов кэширования, которые нужно довести до ума, однако есть и проблема с самим шаблоном. Вордпресс открыт - это круто, а вот плагины его уже достаточно закрыты, и некоторые моменты там совсем не оптимальные. Но всё решаемо.
- Возможно, понадобятся дополнительные лицензии для дополнительных плагинов. Но про их окупаемость уже сказали.
- Удивительно, но без костылей всё же не обойтись. Но очевидно, что один костыль в продукте лучше, чем продукт в костылях. Речь о том, что W+W позволяет очень гибко настраивать внешний вид, какие угодно блоки можно построить для клиента. Но есть слабое место в компиляции стилей. Тут два варианта - либо набрать сразу кучу готовых стилей, и подключать их по желанию клиента. Либо же импровизировать и сделать более динамическими. Сами создатели темы рассчитывали, что всё будет происходить через админку WP, мы же намерены всё это осуществлять через API, в том и костыль, потому что админка WP - не самое надёжное место.
- К слову, про уязвимость - каждый знаток Вордпресса жалуется на то, что разработчики плагинов о безопасности заботятся в последнюю очередь. Мы сами это уже почувствовали на уровне интересных, но пока безадресных запросов, однако для этого уже готовы несколько безопасных фишек и ещё в планах навешать разных редиректов, заглушек и прочих полезных штук.
- Ещё одна проблема - новое мы, конечно, упростим. Но сама система усложняется. Потому как при внедрении новых функций оглядываться на совместимость со старыми всё же придётся. Например, из того же API не получится выкинуть ненужные в новом личном кабинете параметры, так как они используются в старом. Рефакторинг - не совсем решение.
Но главное - сейчас есть концепция - платформа приложений для бизнеса, которая ясна и для покупателя, и для нас.
Недавно на vc.ru уже случился холивар на тему недоразработчиков недовордпресса. Что сказать: если уникальность вредит ценности - в Фортран такую уникальность. А Вордпресс свою ценность уже доказал.
И в конце - велкам для пока ещё закрытого тестирования. Все хотелки учтутся, а самые активные тестировщики получат скидки, плюшки и воплощение всех (адекватных, конечно) пожеланий к своим магазинам.