Поддержка веб-фреймворка - PullRequest
0 голосов
/ 09 марта 2009

Надеюсь, последний вопрос при выборе языка реализации для этого веб-приложения, но прежде чем рассказать кому-либо, мы хотели бы узнать, как вы относитесь к обслуживанию приложения.

Мы поддерживали (и с тех пор перешли на хост-решение) веб-портал на основе Perl.

Проблема заключалась в том, что у нас были случаи, когда Perl обновлялся или обновлялся модуль, и поскольку весь сайт был взаимосвязан, это легко стало кошмаром, потому что одно небольшое изменение в модулях CPAN могло привести к смерти всего сайта ( был порталом с открытым исходным кодом, мы его не создавали), потому что на портале было что-то очень конкретное в отношении того, какой модуль версии он будет принимать.

Было несколько раз, когда безобидный набор обновлений безопасности мог привести к развалу сайта в течение заметного периода времени.

Итак, принимая решение о создании веб-приложения на основе PHP, Django или Ruby on Rails, могут ли люди поделиться тем, что влечет за собой поддержка сайта при обновлении всей или части фреймворка или языка?

Насколько "легко" сломать или дать сбой веб-приложению, просто пытаясь установить исправление безопасности для модуля / драгоценного камня, который вы не создали? Или это не проблема?

Ответы [ 4 ]

2 голосов
/ 09 марта 2009

Если бы я в эти дни развертывал приложение на Python, я бы обязательно проверил virtualenv .

Со своей страницы:

virtualenv - инструмент для создания изолированные среды Python.

Основная проблема, которую нужно решить, одна из зависимостей и версий, и косвенно разрешения. Представить вас есть приложение, которое нуждается в версии 1 из LibFoo, но другое приложение требуется версия 2. Как вы можете использовать оба эти приложения? если ты установить все в /usr/lib/python2.4/site-packages (или независимо от стандарта вашей платформы местоположение), это легко в конечном итоге в ситуация, когда вы непреднамеренно обновить приложение, которое не должно быть улучшен.

Или, в общем, что если вы хотите установить приложение и оставить его быть? Если приложение работает, любой изменить в своих библиотеках или версии этих библиотек могут сломаться приложение.

0 голосов
/ 09 марта 2009

Python easy_install и distutils дают вам довольно надежный способ определить, какие версии вам нужны. Редко появляются неожиданные изменения безопасности, которые делают интерфейсы недействительными.

0 голосов
/ 09 марта 2009

Просто включите несколько регрессионных тестов в ваш tests.py Если вы не тестируете, вы делаете это неправильно ...

0 голосов
/ 09 марта 2009

С Django у меня никогда не возникало проблем при обновлении между точечными ревизиями (некоторые из моих проектов были запущены с 0.96 или около того, поэтому они были более сложными). Что касается приложений многократного использования, это действительно зависит от приложения. В целом, однако, разработчики, которые достаточно дисциплинированы, чтобы выпускать свои приложения (вместо того, чтобы предполагать, что люди будут запускать версию для разработки), как правило, способны обеспечить безболезненную миграцию между версиями.

...