2009-03-09 3 views
0

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

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

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

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

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

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

ответ

2

Если бы я в настоящее время развертывал приложение python, я бы, конечно, просмотрел virtualenv.

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

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

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

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

0

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

0

Просто введите regression tests в ваш tests.py. Если вы не тестируете, вы делаете это неправильно ...

+0

Он не спрашивает, как узнать, был ли код сломан, а лучший способ избежать его нарушения при изменении зависимостей. – dmanxiii

0

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

Смежные вопросы