Выносим строительный пирог в отдельный модуль
Почему я решил вынести визуальный конструктор строительных слоев в отдельный независимый модуль KIB4D и как это изменит работу с платформой.
Выносим строительный пирог в отдельный модуль
Сегодня мысль скорее для разработчиков, но она должна сделать KIB4D чуть удобнее и понятнее для пользователя.
Хочу вырезать редактор слоев (конструктор пирога стены) из калькулятора точки росы и сделать его отдельным независимым модулем.
В чем проблема сейчас
Сейчас получается, что чтобы добавить конструкцию (собрать пирог стены), нужно идти в точку росы и там делать сборку. Затем этот пирог становится доступен всем инструментам сайта. Вроде и логично, и нет. По сути это инструмент уровня проекта — как, например, ведомость материалов, которая переехала в project/estimate. Держать сборку конструкций внутри другого калькулятора стало неправильно.
Конструкция как отдельная сущность
Хочу, чтобы конструкция — пирог стены, пола или перекрытия — стала самостоятельным элементом на платформе. Заходите в свой проект, один раз собираете конструкцию, называете её (например, «Моя внешняя стена»), настраиваете слои и толщины. Она сохраняется в базе.
В чём плюс такого подхода: например, вы сомневаетесь между 150 и 200 мм утеплителя. Поменяли толщину в одном месте — и весь проект пересчитался мгновенно, потому что все инструменты смотрят в одни и те же данные.
Никакой рутины с ручным вводом.
И даже стало очевидным логичное место в структуре — project/constructions.
Как это выглядит в коде
Принцип DRY и разделение ответственности. Один универсальный Vue-компонент визуального конструктора — он ничего не знает про теплофизику или формулы СНиП, его задача только собрать пирог и отдать на выходе JSON со списком слоев.
Расчетные ядра инструментов становятся простыми потребителями этого JSON: калькулятору точки росы неважно, откуда прилетел пирог — из интерактивной статьи в справочнике или из личного проекта. Берет массив данных, считает, отдает результат.
Что это дает
KIB4D все больше становится модульной системой — собрал цифры по дому один раз, дальше прогоняешь их через разные расчеты.
Пока это архитектурные наброски. Разделение кода начну делать, как только дойдут руки — такие вещи проще закладывать сразу, чем потом переделывать.