Выносим строительный пирог в отдельный модуль

Почему я решил вынести визуальный конструктор строительных слоев в отдельный независимый модуль KIB4D и как это изменит работу с платформой.

Выносим строительный пирог в отдельный модуль

Сегодня мысль скорее для разработчиков, но она должна сделать KIB4D чуть удобнее и понятнее для пользователя.

Хочу вырезать редактор слоев (конструктор пирога стены) из калькулятора точки росы и сделать его отдельным независимым модулем.

В чем проблема сейчас

Сейчас получается, что чтобы добавить конструкцию (собрать пирог стены), нужно идти в точку росы и там делать сборку. Затем этот пирог становится доступен всем инструментам сайта. Вроде и логично, и нет. По сути это инструмент уровня проекта — как, например, ведомость материалов, которая переехала в project/estimate. Держать сборку конструкций внутри другого калькулятора стало неправильно.

Конструкция как отдельная сущность

Хочу, чтобы конструкция — пирог стены, пола или перекрытия — стала самостоятельным элементом на платформе. Заходите в свой проект, один раз собираете конструкцию, называете её (например, «Моя внешняя стена»), настраиваете слои и толщины. Она сохраняется в базе.

В чём плюс такого подхода: например, вы сомневаетесь между 150 и 200 мм утеплителя. Поменяли толщину в одном месте — и весь проект пересчитался мгновенно, потому что все инструменты смотрят в одни и те же данные.

Никакой рутины с ручным вводом.

И даже стало очевидным логичное место в структуре — project/constructions.

Как это выглядит в коде

Принцип DRY и разделение ответственности. Один универсальный Vue-компонент визуального конструктора — он ничего не знает про теплофизику или формулы СНиП, его задача только собрать пирог и отдать на выходе JSON со списком слоев.

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

Что это дает

KIB4D все больше становится модульной системой — собрал цифры по дому один раз, дальше прогоняешь их через разные расчеты.

Пока это архитектурные наброски. Разделение кода начну делать, как только дойдут руки — такие вещи проще закладывать сразу, чем потом переделывать.