Gravity Forms и GravityKit
Формы на WordPress — это инфраструктура: на них держатся заявки, регистрации и заказы у огромного числа сайтов. Семь лет мы работали внутри этой экосистемы — не над отдельным сайтом, а над слоем, поверх которого строят другие разработчики.
- Заказчик
- GravityKit (Katz Web Services) и Gravity Forms (Rocketgenius)
- Годы
- 2013 — 2020
- Роль
- Ведущий бэкенд-разработчик
- Стек
- PHP и WordPress, React, Svelte
Задача
Gravity Forms — одно из самых распространённых решений для форм на WordPress; его ставят у себя университеты, международные организации и крупные компании. GravityView надстраивается сверху и превращает накопленные заявки в приложение: каталоги, таблицы, карты, поиск и правку записей прямо на сайте.
Работа над таким продуктом отличается от работы над сайтом. Ошибку нельзя откатить на одном сервере: обновление уезжает на все установки сразу. Обратная совместимость — не пожелание, а обязательство перед тысячами чужих сайтов и плагинов.
Что сделали
- GF_Query — механизм запросов к записям форм, появившийся в Gravity Forms 2.3: объединения, условия и сортировка вместо ручной сборки SQL.
- Бэкенд GravityView: показ записей на сайте, фильтрация, поиск и редактирование без участия администратора.
- Совместимость и производительность на чужих установках, которые невозможно проверить заранее.
Результат
Код 2018 года работает до сих пор
GF_Query вошёл в Gravity Forms 2.3 и остаётся в продукте: он отрабатывает на каждом сайте, где стоят эти формы.
Это самый буквальный пример того, о чём весь этот сайт. Мы ушли из проекта в 2020 году, а написанное продолжает выполняться каждый день, без нас.
Почему это про нас
Продуктовая разработка приучает к дисциплине, которой не требует заказная: думать об обновлении, которое нельзя отозвать, и о совместимости с кодом, который писали не вы. Ту же осторожность мы приносим в чужие системы — в Важную Рыбу и Royal Thai, где рядом с работающей учётной системой нужно было достроить новое, ничего не сломав.