Есть ли в Rails гемы / инструменты / шаблоны для песочницы экспериментальных функций для сплит-тестирования? - PullRequest
3 голосов
/ 22 марта 2012

Мы хотим создать простой механизм, позволяющий инженерам добавлять экспериментальный код и функции в наше приложение, чтобы опробовать новые возможности для подгруппы пользователей, провести A / B-тестирование различных поведений приложений и в целом. предложить среду песочницы, где разработчики могут сходить с ума, не влияя на основной производственный код. Некоторые из наших требований к экспериментальным функциям (EF):

  • Добавление EF должно быть очень простым для всех, кто знаком с Rails, JS / Coffee и нашими приложениями
  • Код EF должен находиться как можно больше вне рабочего кода («на острове»).
  • Код EF не должен превращать раковые щупальца в производственный код, то есть оставаться максимально свободными в связях.
  • На первый взгляд должно быть ясно, что такое код EF, а что нет.
  • Код EF не должен полностью поддерживать организационную политику TDD, UX и т. Д. Фактически целью является быстрое и грязное экспериментирование, мы не хотим, чтобы процесс и политика мешали творчеству и энтузиазму. Только если эксперимент считается успешным (посредством пользовательского тестирования), мы хотим потратить усилия, чтобы довести его до всех политик.
  • Функции EF могут быть включены / выключены на сайте панели мониторинга и могут быть развернуты для определенных пользователей.
  • Разработчики, работающие над производственным кодом, никоим образом не должны быть обременены работой с экспериментальным кодом - в идеале, с полным разделением. Эксперименты могут прерваться, если будет обновлен производственный код, и это предпочтительнее, чем заставлять разработчиков производственного кода поддерживать все эксперименты в актуальном состоянии. Экспериментатор должен продолжать эксперимент.
  • Наша система построена на Rails для сервера и имеет богатое клиентское приложение, написанное на CoffeeScript с Knockout.js и Backbone.js. EF может касаться кода Rails (действия контроллера, маршруты, модели), шаблонов представления, кода CoffeeScript (привязки данных, шаблоны jQuery, модели и модели представлений и т. Д.), CSS / SCSS, и механизм должен разрешать все это в изолированной среде.

В настоящее время мы не так обеспокоены процессом измерения для раздельного или многомерного тестирования, это решаемая проблема с такими инструментами, как драгоценный камень Vanity, или коммерческими решениями, такими как KissMetrics и MixPanel. Нас больше интересует, как создать установку, которая решает проблемы разделения, слияния и обслуживания. Существуют ли такие инструменты для Rails?

1 Ответ

1 голос
/ 29 марта 2012

Есть Развертывание и Деградация драгоценных камней за это, если я вас правильно понимаю.

...