Источники чисел страницы: internal-component, контракты данных в internal-component и project-status.json; дата среза показана в карточке состояния.
Раздел 3
Какие данные использует программа
Сначала программа получает требования к секции. Затем она добавляет состав квартир, их места, результаты проверки и координаты для готовой схемы.
Общая модель данныхкаждый шаг добавляет новые сведения ↓
01Задание
02Состав квартир
03План по рядам
04Проверенные размеры
05Координаты схемы
06Данные об ошибке
Каждый шаг дополняет общую модель новыми данными.
Как читатьКаждая карточка показывает, кто создаёт сведения, что в них записано и где программа использует их дальше.
Зачем смотретьПо этой последовательности можно понять, на каком шаге появилась ошибка: в задании, составе квартир, размещении, проверке или схеме.
От задания до схемы
Какие сведения появляются по ходу расчёта
Карточки идут в том же порядке, что и расчёт: каждая часть программы получает уже подготовленные сведения и добавляет свои.
экран
Исходные требования
Здесь указано, какие квартиры нужны, в каком количестве и с какими площадями.
Создаёт: экран с требованиями.
Используют: размещение и сравнение вариантов.
Контракт данных
Версия
Отдельной версии нет: это текущее задание формы.
Проверка
Тип, количество и диапазон площади приводятся к допустимому виду.
Инвариант
Обязательное количество квартир не бывает отрицательным.
Ошибка
Незаполненное обязательное поле остаётся на экране и не уходит в расчёт.
подбор квартир
Состав квартир для размещения
Например: «0 студий, 1 однокомнатная, 2 двухкомнатные, 1 трёхкомнатная». Места для квартир программа выберет на следующем шаге.
Создаёт: подбор квартир.
Используют: размещение, проверка размеров и карточки вариантов.
Контракт данных
Версия
Отдельной версии нет: порядок типов задаёт общий справочник квартир.
Проверка
Дробные, отрицательные и нечисловые количества приводятся к целым неотрицательным значениям.
Инвариант
Каждая позиция массива всегда относится к одному и тому же типу квартиры.
Ошибка
Недопустимое количество становится нулём, а не ломает следующий шаг.
расстановка
План по рядам
Здесь уже видно, какая квартира стоит в каком ряду и с каким смещением от края.
Создаёт: расстановка.
Проверяет: проверка размеров.
Контракт данных
Версия
Отдельной версии нет: план живёт внутри текущего расчёта.
Проверка
План сверяется с рядами выбранного типа секции.
Инвариант
Каждая квартира принадлежит одному ряду и имеет одно смещение от его начала.
Ошибка
Недопустимое перемещение отклоняется, прежний план сохраняется.
проверка размеров
Размеры и предупреждения
Здесь записаны ряды, занятые места, выходы за границы и предупреждения.
Создаёт: проверка размеров.
Используют: схема, сравнение вариантов и повторение ошибок.
Контракт данных
Версия
Отдельной версии нет: модель строится заново из плана.
Проверка
Сверяются границы рядов, занятые блоки, доступы и переполнение.
Инвариант
Квартира не может молча выйти за ряд или занять защищённую зону.
Ошибка
Проблема становится предупреждением или переполнением и остаётся видимой.
схема
Координаты схемы
Здесь записано, где на экране должны находиться квартиры, коридор и свободные места. Благодаря этому схема сохраняет правильный масштаб.
Создаёт: построение схемы.
Используют: коридор, квартиры, пустоты и перетаскивание.
Контракт данных
Версия
Отдельной версии нет: координаты производятся из проверенной модели.
Проверка
Рамки рядов и элементов должны иметь конечные размеры и координаты.
Инвариант
Все элементы используют одну систему координат и один масштаб.
Ошибка
Элемент без допустимой рамки не рисуется как достоверная часть схемы.
поиск ошибок
Данные для повторения ошибки
В одном файле сохраняются исходные требования и результат расчёта. Его можно открыть на другом компьютере и повторить ошибку.
Создаёт: сохранение данных об ошибке.
Использует: повторный запуск расчёта.
Контракт данных
Версия
schemaVersion: 2.
Проверка
При открытии проверяются структура файла и смысловые связи между его частями.
Инвариант
Количество квартир в выбранном составе совпадает с квартирами по рядам.
Ошибка
Файл другой версии или с нарушенной связью отклоняется с объяснением.
Технические сведения
Исходные требования
requirements
Состав квартир
Solution
План по рядам
manualRows
Проверенные размеры
layout rows
Координаты схемы
RowFrame
Данные об ошибке
DebugSnapshot
Словарь
Чем отличаются план, раскладка, модель и схема
Эти слова описывают разные стадии одного результата, поэтому не используются как взаимозаменяемые.
План
Выбранный порядок квартир по рядам: что и в какой последовательности нужно разместить.
Раскладка
Физические места и смещения квартир, ЛЛУ, переходов и свободных интервалов.
Модель
Структурированные данные раскладки, которые можно проверить, пересчитать и передать дальше.
Схема
Визуальное представление уже проверенной модели: SVG с квартирами, коридором, дверями и предупреждениями.
Правило: если меняется набор данных, нужно проверить все части программы, которые его используют. Например, после изменения данных о квартирах по рядам проверяют размещение, размеры, схему и повторение ошибок.