Разработчики часто просят рассказать о моём опыте использования Backbone.
Многие слышали об этом MVC-фреймворке, смотрели примеры и документацию, но не решаются начать с ним работать. Поэтому вчера я сделал мини-доклад на встрече MoscowJS, призванный рассказать о том, как мы построили базовую архитектуру и какие получили плюсы. И сегодня в этой статье я публикую слайды, схемы и краткое описание.
Читать дальше →
trivia: REST и виртуальные машины не совместимы.
Есть давний спор, в котором я участвовал несколько раз, и который пока висит не решённым. Выношу сюда существующую аргументацию, с интересом выслушаю комментарии и дополнительные аргументы.
Итак,
тезис 1: REST хорошо, *-RPC (например, XML-RPC, JSON-RPC) — плохо.
тезис 2: Т.к. REST хорошо, его нужно использовать для управления виртуальными машинами (в частности, в облаке).
На первый взгляд так и есть. Например, если мы хотим поменять атрибут (допустим, атрибут «загрузочный диск») для виртуальной машины, то мы пишем:
PUT .../vm333/disk1/bootable
enable=true
PUT .../vm333/disk1/bootable
enable=false
Или даже так:
POST /vm/333/disk1/bootable
DELETE /vm333/disk1/bootable
Если мы хотим создать диск, мы говорим POST /vm333/disk2 и передаём атрибуты (вроде размера или хранилища).
Однако, это хорошо только до того момента, пока наша инфраструктура напоминает записи в БД.
А теперь простой вопрос: как в REST будет выглядеть команда перезагрузки виртуальной машины? Ведь состояние машины не меняется, как была running, так и остаётся. Очевидно, что перезагрузка не идемпотентный вызов, то есть мы должны говорить POST. Но 'POST что и куда?'. Заметим, даже shutdown/start вполне себе укладываются в POST power-state'а. Но вот ребут — который нарушает логику «имманентности» состояния объекта в БД и приводит нас в жестокий императивный мир — увы, не укладываются. Аналогичные проблемы будут при операции 'install' (запуск установки OS).
Причина тут куда более глубокая, чем просто «не очень хорошо получается». Извините за слово «онтология», но эта причина — онтологическая.
Суть проблемы
Читать дальше →