Пока школота выигрывала iPad-ы, аудиоплееры и виртуальные голоса — наша прекрасная менеджер проектов Аня просадила 500 рублей и ничего не выиграла. Но речь не о ней. Дело в том, что это приложение управляется из Битрикса...
Сейчас придут адепты HiLoad проектов и начнут проповедовать Node.JS и Erlang. Ша! Все под контролем :-)
Вообще мы не планировали использовать CMS на этом проекте и не закладывали покупку лицензии в смету. Однако заказчику нужно было дать механизмы по добавлению новых призов, поиску победителей, настройке вероятностей выигрыша... В базовой версии Битрикс это все было практически «из коробки».
Но Битрикс требует довольно тяжелой инициализации, что при большом количестве запросов может сделать приложение — неработоспособным. Решение было довольно тривиальное:
- В момент инициализации приложения — мы считываем и передаем все настройки на клиента. Это нужно сделать только один раз за всю сессию. Здесь мы используем механизм инфоблоков, поскольку инициализация приложения — редкая процедура.
- Обсчет события (броска дротика) — это уже частое событие, которое мы должны уметь обрабатывать быстро. Тут мы отказались от работы с инфоблоками через API и реализовали прямые выборки из базы данных MySQL.
Соответственно, «тяжелая» инициализация фреймворка — не потребовалась. Поскольку серверная логика нашего приложения довольно проста (клиентская часть в разы сложнее) — реализовать ее без фреймворков удалось за считанные часы.
Уже на старте мы соотнесли стоимость разработки админки под клиента «с нуля» и покупки готовой лицензии. Итого:
- Сэкономили;
- Ускорили разработку;
- Дали клиенту не админку-страшилку, а удобное, хорошо документированное средство управления.
А практика показала, что нагрузку держим нармальна :)