Перейти к основному содержанию

Руководство

Развитие корпоративного приложения

Настоящий вопрос — не «как создать приложение», а «что произойдёт через шесть месяцев, когда ваш бизнес изменится, а приложение останется прежним?». Ниже объясняется, какие изменения возможны без риска, какие отклоняются и почему такой отказ на самом деле защищает вас.

Момент, когда инструмент управления начинает по-настоящему работать

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

Именно тогда большинство инструментов раскрывают свою сущность. Одни вежливо отказывают: «такого поля нет — обойдитесь без него». Другие принимают любые правки, но потом вы обнаруживаете, что данные были тихо перезаписаны. Между этими двумя подходами существует третий: чётко указывать, что можно изменить безопасно, и прямо отказывать во всём остальном.

Три типа изменений — и только один не имеет последствий

Не все изменения равнозначны. Ключевое отличие — это уже введённые данные. Blueprint Maker классифицирует каждое запрашиваемое изменение по трём категориям ещё до принятия какого-либо решения:

  • Без последствий для уже введённых данных: добавление индикатора на дашборд, изменение подписи, добавление необязательного поля, ослабление ограничения.
  • Требуется миграция: переименование столбца, добавление обязательного поля, изменение типа данных. Структура меняется, но существующие данные, как правило, могут быть сохранены.
  • Разрушительные изменения: удаление поля или сущности, исключение значения статуса, которое всё ещё используется, неоднозначное переименование. В этих случаях часть данных может быть утеряна.

Что можно изменить сегодня, не затронув ваши данные

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

Гораздо больше можно сделать ДО того, как приложение будет создано — и это самый эффективный способ: план, сгенерированный на основе вашего описания, редактируется до начала сборки. Исправить сущность, уточнить значение статуса или добавить поле на этом этапе ничего не стоит — ведь данных для сохранения пока нет.

Что отклоняется — и почему это хорошая новость

Если хотя бы одно из запрашиваемых изменений попадает в категорию «требуется миграция» или «разрушительные изменения», пересборка отклоняется. Такой отказ рассчитывается на сервере в момент применения правки — на основе реального сравнения двух версий. Это не предупреждение в интерфейсе, которое можно проигнорировать, а жёсткая блокировка.

Отказ не означает, что ваши данные обязательно будут утеряны. В случае «требуется миграция» их *можно было бы* зачастую сохранить — если бы существовал надёжный инструмент для этого. Он означает нечто более честное: инструмента, который аккуратно переместил бы данные — с пробным запуском на копии и последующей проверкой — пока не существует. Пока он отсутствует, единственно разумная позиция — не делать вид, что всё в порядке.

Это тот же принцип, что и повсюду в продукте: отображаемое значение не должно вводить в заблуждение. Инструмент, принимающий любые правки и «самостоятельно справляющийся» в фоновом режиме, заставит вас обнаружить проблему лишь тогда, когда вы будете искать информацию, которой уже нет. Явный отказ, напротив, требует немедленного решения.

Ваши варианты, если пересборка заблокирована

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

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

Третий вариант — наименее заметный, но наиболее распространённый: просто смириться. Многие потребности, которые на первый взгляд кажутся структурными, решаются добавлением необязательного поля или дополнительного представления — и оба эти изменения проходят без проблем.

Вопрос, который нужно задать перед выбором инструмента управления

Вопрос не в том, «можно ли его адаптировать». Все ответят «да». Вопрос в другом: «что произойдёт, если я запрослю изменение, которое инструмент выполнить не может?»

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

Читать далее

Опишите свой бизнес: план редактируется до сборки