Каковы некоторые общие стратегии управления версиями веб-приложений для конечного пользователя?

Я пишу веб-приложение, и меня интересуют будущие обновления и то, как обновление веб-приложения повлияет на работу пользователей.

В частности, мне было интересно, как такая компания, как Google, подходит к этой проблеме. Например, я видел несколько примеров, когда определенное приложение Google спрашивало пользователя, хотят ли они перейти на «новые документы Google» или что-то подобное. Это опыт, который я хотел бы предоставить, но я не уверен, как это сделать. Если это важно, я пишу приложение, которое использует backbone.js и имеет тяжелый клиентский компонент JS. Я видел несколько дискуссий, в которых говорилось об управлении версиями компонента REST или компонента WebServices, но ни одно из них не обсуждало фактический клиентский код или серверные компоненты (конечно, серверная часть может не иметь большого значения, если все это находится за версионной веб-службой).

Меня интересует, как они достигают этого, с точки зрения приложения и (предположительно) с точки зрения серверной БД.

Таким образом, кажется, что есть несколько проблем.

  • Где в корне веб-сайта живут версионные приложения
  • Как вы обслуживаете несколько версий для разных пользователей
  • Как вы версионируете серверное хранилище данных
  • Поскольку я использую магистраль, мне особенно интересно разработать маршрутизатор для этого типа приложений. Если разные версии находятся в подкаталоге, как мне создать правильный маршрутизатор?

Вероятно, есть и другие соображения.


person meecect    schedule 28.05.2012    source источник
comment
Это принадлежит: programmers.stackexchange.com   -  person Diodeus - James MacFarlane    schedule 28.05.2012
comment
stackoverflow.com/a/11078299/476712 отвечает на ваш вопрос?   -  person lorefnon    schedule 18.06.2012


Ответы (1)


Это очень быстро усложняется, особенно при совместной работе в Google Docs, например, вы хотите, чтобы разные версии документа были совместимы друг с другом. Таким образом, вы можете либо решить не изменять свою базу данных до каждой основной версии, а затем перевести всех на новую версию вашего приложения, либо сделать «конвертеры», которые могут преобразовывать ваши данные из одной версии в другую (и обратно) и сохранять разные базы данных синхронизируются, принимая данные из разных версий «приложения».

«Самый простой» способ справиться с этим — использовать журнал событий или даже перейти к чему-то вроде CQRS, это шаблоны, которые делают размышления о ваших данных таким образом намного более управляемым.

Но я бы дважды подумал, прежде чем реализовывать что-то подобное. Вам это ДЕЙСТВИТЕЛЬНО нужно? Соответствуют ли (огромные?) затраты (крошечным?) преимуществам? Вам это нужно НА ДАННОМ ЭТАПЕ?

person Vespakoen    schedule 18.02.2013