«Сметтер» — система для контроля производства работ, финансов, прибыли и расчетов по объектам и сметам в строительстве, ремонте, отделке и благоустройстве.
Активные пользователи «Сметтера» сообщают о недочетах и высказывают пожелания о том, какие опции стоит добавить. На основе фидбека мы продолжили развивать продукт и внедрять новый функционал. Вот список обновлений, реализованных с февраля по май 2018 года:
Наиболее сложной доработкой из перечисленных оказался «Справочник расценок», а именно функционал, отвечающий за сортировку и редактирование позиций в справочнике. Разработка справочника затянулась на долгих три месяца, хотя мы рассчитывали уложиться за месяц.
«Поскольку это веб-приложение и была выбрана схема работы по протоколу HTTP, у нас возникли трудности с отслеживанием очередности запросов. Все действия по изменению сметы на сервере должны выполняться точно в такой же последовательности, что и на клиенте. Так, например, мы не можем изменить название позиции раньше, чем эта позиция появится в базе данных сервера. Запросы с клиента отправляются асинхронно и мы не знаем, в какой последовательности они придут на сервер, также не знаем, с какой скоростью сервер их обработает и отдаст ответ. Таковы особенности работы сети и протокола HTTP, в частности. Поэтому могла возникнуть ситуация, когда данные на сервере начинают отличаться от данных на клиенте, и это особенно касается сортировки.
Позиции в справочнике имеют жесткую двухуровневую структуру, целостность которой обеспечена индексами сортировки и привязкой к родителю (если есть). Нарушение этой структуры может привести (и приводило в сметах) к различным негативным эффектам: например, таким, как неправильный расчет по смете, „пропажа“ позиций на клиенте, либо просто к невозможности продолжить работу по смете на стороне клиента. Таким образом, узким местом стало сохранение структуры позиций в смете. На изменение структуры позиций влияют три действия: добавление, удаление и сама сортировка непосредственно. Кроме того, оставалась нерешенной проблема, когда запрос на обновление позиции приходил раньше, чем запрос на добавление позиции.»
Артем Михайлов, программист проекта
В связи с этим было принято решение разработать новую схему сортировки позиций в справочнике, которая отличается от схемы сортировки позиций в сметах. На проработку, внедрение и тестирование и ушло много часов. В дальнейшем, по мере увеличения количества пользователей, редактирование справочника расценок и смет для пользователей будет удобным, быстрым и не давать сбоев.
С другими разработанными нами сайтами можно ознакомиться здесь.
Проведите конкурс среди участников CMS Magazine
Узнайте цены и сроки уже завтра. Это бесплатно и займет ≈5 минут.