Горячие правки бизнес-логики без перекомпиляции: как мы меняем формы и таблицы за 5 минут
Представьте: клиент пишет, что нужно добавить новое поле в форму заказа — «предпочитаемое время доставки». В классической веб-разработке это означает: открыть проект в IDE, добавить поле в модель, изменить миграцию БД, переписать HTML, закоммитить, запушить, задеплоить на сервер, подождать компиляции. Весь процесс занимает от 4 часов до 2 дней.
У нас это занимает 5 минут. И я сейчас покажу, как это работает на платформе Falcon Space. Потому что для малого бизнеса скорость внесения правок — это конкурентное преимущество. Пока вы «деплоите», конкуренты уже получили заказ.
Почему в классической разработке правки такие долгие
Типовой проект на PHP или Java с фреймворками вынуждает вас:
- Останавливать сервер или делать деплой в «окошко».
- Перекомпилировать весь проект (в Java это особенно больно).
- Запускать миграции БД, которые могут привести к ошибкам.
- Тестировать, потому что изменение в одном месте часто ломает другое.
В итоге даже маленькая правка типа «сменить цвет кнопки» или «добавить фильтр в таблицу» выливается в 2-3 часа работы и ожидания. А если проект на аутсорсе — ещё и в лишние деньги по договору.
В Falcon Space мы пошли другим путём. Вся бизнес-логика вашего приложения — это не скомпилированный код, а хранимые процедуры SQL и HTML-разметка на Bootstrap. Никакого серверного кода, который нужно пересобирать.
Как вносить правки через кабинет разработчика
У нас есть специальный личный кабинет — «Кабинет разработчика». Он доступен владельцу платформы или сотруднику с правами администратора. Заходите, выбираете нужную процедуру, редактируете, нажимаете «Сохранить» — и изменения вступают в силу мгновенно. Сервер перезагружать не нужно.
Покажу на реальных примерах.
Правка 1. Добавить новое поле в форму регистрации
Вам нужно, чтобы клиент указывал свой телефон и промокод. Форма регистрации в Falcon Space — это обычный HTML на странице плюс SQL-процедура, которая сохраняет данные.
Действия:
- Заходим в «Управление страницами», находим страницу регистрации.
- В блоке HTML добавляем поле
<input name="phone" />и<input name="promocode" />. - Переходим в «Хранимые процедуры», находим процедуру `[app].[register_user]`.
- Добавляем в неё новые параметры и вставку в таблицу.
- Жмём «Сохранить». Всё.
Время: 5 минут. Не нужно лезть в модель, контроллер, сервис, репозиторий.
Правка 2. Изменить логику расчёта цены заказа
Было: цена = количество × цена_единицы. Стало: добавить скидку 10% для постоянных клиентов.
Действия:
- Находим процедуру `[app].[calc_order_price]`.
- Меняем SELECT: вместо `@qty * @price` пишем
CASE WHEN @is_vip = 1 THEN @qty * @price * 0.9 ELSE @qty * @price END. - Сохраняем.
Время: 2 минуты. Следующий заказ уже посчитается со скидкой.
Правка 3. Добавить новый статус для заказа
Вы решили, что нужно добавить статус «Передан в доставку».
Действия:
- Заходим в раздел «Справочники» (админка платформы) и добавляем новую запись в таблицу статусов — 2 минуты.
- Если нужно, чтобы при установке этого статуса отправлялось уведомление, ищем процедуру `[app].[order_status_update]` и добавляем внешнее действие
SELECT 'send_notification' .... - Сохраняем.
Время: 10 минут.
Всё это может делать не программист, а толковый менеджер или администратор, который знаком с основами SQL. Мы даже написали документацию с примерами для таких случаев.
Что можно править, а что нельзя (ограничения)
Мы не скрываем, что не всё можно изменить «на лету». Структурные элементы платформы — меню, заголовок, расположение локализации — требуют изменений в коде ядра. Но их мало, и они редко нужны.
Можно править без перекомпиляции:
- Содержимое любой страницы (HTML, CSS, JS).
- Бизнес-логика (SQL-процедуры).
- Формы и таблицы (через редактирование страниц).
- Права доступа (через админку).
- Внешние виды (через глобальные CSS/JS).
- Справочные данные.
Требует изменения ядра (редко):
- Структура главного меню (можно обойти через JS, но лучше согласовать с нами).
- Внешний вид переключателя языков.
- Изменение стандартного поведения компонентов (например, таблица с особой сортировкой).
Но даже если нужно что-то изменить в ядре, мы делаем это в рамках планового обновления. Вы не платите отдельно. А «горячие правки» — бесплатны и моментальны.
Реальный пример из жизни: как мы поменяли логику откликов на площадке за 30 минут
Один наш клиент — площадка по поиску аниматоров для детских праздников. В процессе приёма первых заказов выяснилось, что аниматоры слишком часто откликаются на проекты с заведомо низкой ценой, создавая шум. Заказчик попросил добавить правило: «Если у аниматора рейтинг ниже 4 звёзд, он может откликнуться только на проекты с бюджетом не выше 5000 руб».
Мы зашли в кабинет разработчика, нашли процедуру `[app].[add_bid]`, которая вызывается при отклике. Добавили проверку:
IF @performer_rating < 4 AND @project_budget > 5000
BEGIN
SELECT 'error' AS result, 'Ваш рейтинг слишком низок для этого проекта' AS message;
RETURN;
END
Сохранили. Через 30 минут новое правило заработало. Без перезапуска сервера, без деплоя, без ночных кошмаров. Заказчик сказал: «Это магия». Нет, это просто правильная архитектура.
Что нужно знать, чтобы вносить правки самостоятельно
Вам (или вашему сотруднику) достаточно базового уровня SQL: SELECT, INSERT, UPDATE, DELETE, IF, JOIN. И немного HTML для форм и таблиц. Не нужно знать JavaScript (хотя он тоже поддерживается), не нужно разбираться в фреймворках, не нужно понимать, как работает IIS.
Если ваш менеджер за полдня освоит эти основы — он сможет:
- Добавить новое поле в форму заказа.
- Создать простой отчёт в виде таблицы.
- Изменить условие для отправки письма клиенту.
- Импортировать данные из Excel через готовый механизм.
Это радикально снижает стоимость сопровождения. Вам не нужен штат программистов за 150-300 тыс. руб/мес. Достаточно одного аналитика с знанием SQL за 70-100 тыс. руб, который будет и менеджерить, и править логику.
Почему мы так сделали и как это влияет на надёжность
Может возникнуть страх: «А если я ошибусь в процедуре, сайт упадёт?». Да, если написать бесконечный цикл или удалить все данные, то можно навредить. Поэтому у нас есть:
- Логирование всех изменений процедур (можно откатить к предыдущей версии).
- Роли: доступ к кабинету разработчика можно дать только проверенным людям.
- Тестовый стенд — делайте правки сначала на копии, потом переносите на прод.
Но на практике такие случаи редки. Хранимые процедуры компилируются при первом вызове, и синтаксические ошибки SQL сервер отловит сразу. А бизнес-ошибки (например, неверное условие) быстро исправляются — потому что вы видите результат мгновенно.
Подход «логика в SQL» также даёт высокую производительность. Процедуры выполняются внутри базы данных, не тратится время на передачу данных между сервером приложений и БД. Нагрузочные тесты показывают, что наша платформа выдерживает 1000 запросов в минуту на бюджетном VPS — во многом благодаря этому.
Как попробовать самим
У нас есть демо-стенд, где вы можете зайти в кабинет разработчика и потренироваться. Создайте свою таблицу, добавьте форму, напишите процедуру. Всё без установки, бесплатно. Запрос демо.
Если вы уже клиент — откройте документацию по SQL и начните с малого. Мы всегда поможем, если что-то пойдёт не так (поддержка в чате).
Помните: скорость внесения правок — это когда вы можете адаптировать свой IT-продукт под рынок за часы, а не за недели. С Falcon Space это реально.
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта