Fi1osof: от внутренностей MODX к современной архитектуре
Я не вернулся в MODX затем, чтобы снова делать сайты на MODX.
Я вернулся потому, что сегодня есть большой пласт старых проектов, которые всё ещё приносят бизнесу деньги, но сами стали техническим ограничением. И для таких проектов мало человека, который умеет поставить pdoTools, поправить чанк или обновить miniShop.
Нужен тот, кто понимает и старый MODX изнутри, и то, куда проект должен двигаться дальше.
Это как раз мой случай.
Я не просто пользовался MODX
В MODX я пришёл давно и довольно быстро упёрся не в отсутствие готовых компонентов, а в архитектурные ограничения самой системы.
Когда не хватало нормального административного инструмента для выполнения кода и исследования живого runtime, появился Console.
Когда стало понятно, что работа с данными слишком тесно завязана на frontend/runtime и snippets, появился modxSite — API-first слой на processors и xPDO.
Когда хранение шаблонного кода в базе стало мешать переносимости и нормальной разработке, сначала появился phpTemplates, а затем modxSmarty.
Когда понадобилась ecommerce-модель без превращения проекта в ещё один толстый framework поверх MODX, появился shopModx.
То есть это были не случайные Extras. Это была одна линия:
меньше магии → больше явного API → нормальные модели → processors → файловый код → отделение presentation
Часть старого кода и примеров до сих пор доступна публично:
Я ковырял не только компоненты, но и само ядро
Одна из важных черт моей работы с MODX — я довольно рано перестал воспринимать границы платформы как нечто священное.
Если стандартный механизм не выдерживал задачу, я лез в xPDO, request lifecycle, cache map, routing и внутренние классы MODX и смотрел, где именно находится реальный предел.
Например, когда речь заходила о сотнях тысяч ресурсов, проблема была не в каком-то одном медленном сниппете. MODX пытался строить и кешировать огромную карту ресурсов целиком. Для проектов на 150 тысяч документов мне приходилось переписывать части request-механизма, потому что стандартная модель уже начинала рассыпаться.
В обсуждении проекта на 500 000 ресурсов я прямо писал: без серьёзного тюнинга MODX из коробки нормально живёт примерно на десятках тысяч ресурсов, дальше приходится менять сам подход.
Это хороший пример разницы между «знать компоненты MODX» и понимать, где и почему сама архитектура перестаёт выдерживать нагрузку.
Я спорил с доминирующим подходом не из любви к спорам
В русскоязычной экосистеме победил другой путь: больше готовых универсальных компонентов, ниже порог входа, быстрее сборка сайта интегратором.
Я много лет спорил с этим подходом, потому что смотрел на MODX как программист.
Меня интересовали:
- модели данных;
- API;
- переносимость кода;
- наследование;
- processors;
- separation of concerns;
- стоимость сопровождения через годы.
Отсюда и modxSite, modxSmarty, shopModx.
Сегодня спор уже не особенно интересен. Интереснее другое: время дало возможность проверить архитектурные решения на длинной дистанции.
Сейчас именно связанность старых MODX-проектов с runtime, Extras и presentation layer становится одной из главных проблем при модернизации и headless-переходе.
Потом я ушёл далеко за пределы MODX
Последние 10+ лет я не сидел внутри этой экосистемы.
Я работал с современными backend и frontend-стеками, API, Node.js, React, GraphQL, инфраструктурой и большими инженерными системами. Дошёл до bigtech и позиции tech lead.
Это важнее любой строчки «N лет опыта с MODX».
Потому что сегодня задача владельца старого MODX-сайта не в том, чтобы найти самого опытного человека по чанкам.
Задача — провести работающий legacy-проект через технологическую границу:
старый MODX → API → новый frontend → новые сервисы → постепенное отключение legacy
Для этого недостаточно знать только старую сторону. И недостаточно знать только новую.
Почему это имеет значение сегодня
Современный разработчик может прекрасно знать Next.js, GraphQL, Kubernetes и AI-интеграции, но открыть MODX-проект 2013 года и ничего там не понять.
Старый MODX-специалист может прекрасно знать TVs, Fenom, pdoTools и miniShop, но не иметь опыта проектирования систем за пределами этой экосистемы.
Моя ценность находится в пересечении: глубокое знание legacy MODX + опыт архитектурной работы внутри него + 10+ лет современной разработки вне MODX + опыт технического лидерства.
Именно поэтому я могу взять на себя не отдельную доработку, а техническую ответственность за переход проекта из одного поколения технологий в другое.
Чего я не собираюсь делать
Я не собираюсь возвращаться на рынок дешёвой сборки MODX-сайтов.
Я не предлагаю создавать новые проекты на MODX.
И я не собираюсь убеждать владельца, которого полностью устраивает его текущий стек, что ему срочно нужна миграция.
Моя аудитория — те, кто уже чувствует проблему:
- сайт приносит деньги, но развивать его всё тяжелее;
- старые подрядчики исчезают;
- новые специалисты боятся трогать legacy;
- полная перепись слишком рискованна;
- бизнес не хочет ещё десять лет зависеть от MODX.
Я знаю обе стороны достаточно хорошо, чтобы не заставлять бизнес выбирать между вечным legacy и опасным переписыванием с нуля.
Именно в этом сегодня смысл моего возвращения в MODX.