2009-03-09 5 views
0

Espérons que la dernière question en choisissant un langage de mise en œuvre pour cette application web, mais avant de présenter à quelqu'un, nous aimerions savoir ce que vos expériences sont avec le maintien d'une application.Web maintenabilité

Nous avons maintenu (et depuis déplacé vers une solution hébergée) un portail Web basé sur Perl. Le problème était que nous avions des cas où Perl était mis à jour ou qu'un module était mis à jour, et que tout le site était interconnecté, cela devenait un véritable cauchemar car un petit changement dans les modules CPAN pouvait entraîner la mort de tout le site (c'était un portail open source, nous ne l'avons pas créé) parce que quelque chose dans le portail était très spécifique sur le module de version qu'il accepterait.

À plusieurs reprises, un ensemble de mises à jour de sécurité inoffensives a pu provoquer l'effondrement du site Web pendant une période de temps notable. Donc, en décidant de créer une application web basée sur PHP, Django ou Ruby on Rails, les gens peuvent-ils partager ce que la maintenance sur le site a impliqué lors de la mise à niveau de tout ou partie du framework ou de la langue? Comment "facile" est-il de casser ou de corrompre l'application Web en essayant juste d'installer un correctif de sécurité pour un module/gemme que vous n'avez pas créé? Ou n'est-ce pas vraiment un problème?

Répondre

2

Si je déployais une application python ces jours-ci, je vais certainement vérifier virtualenv.

De leur page:

virtualenv est un outil pour créer des environnements Python isolés.

Le problème de base adressé est l'une des dépendances et versions, et autorisations indirectes. Imaginez-vous avoir une application qui a besoin de la version 1 de LibFoo, mais une autre application nécessite la version 2. Comment pouvez-vous utiliser ces deux applications? Si vous installez tout en /usr/lib/python2.4/site-packages (ou quel que soit votre emplacement standard de la plate-forme est), il est facile de se retrouver dans une situation où vous involontairement la mise à niveau d'une application qui shouldn » t être mis à jour.

Ou plus généralement, que faire si vous voulez installer une application et laisser être? Si une application fonctionne, toute modification dans ses bibliothèques ou les versions de ces bibliothèques peuvent rompre l'application.

0

Avec Django, je n'ai jamais eu de problèmes lors de la mise à niveau entre les révisions de points (certains de mes projets ont été bitrotting depuis 0,96 ou plus, donc ils étaient plus complexes). En ce qui concerne les applications réutilisables, cela dépend vraiment de l'application. Dans l'ensemble, cependant, les développeurs qui sont assez disciplinés pour publier leurs applications (plutôt que de supposer que les gens vont exécuter la version de développement) ont tendance à être bons pour assurer la migration entre les versions est indolore.

0

Juste inclure quelques regression tests dans votre tests.py. Si vous ne testez pas, vous le faites mal ...

+0

Il ne demande pas comment savoir si le code a été brisé, mais plutôt la meilleure façon d'éviter de le casser quand les dépendances ont changé. – dmanxiii

0

Les fichiers easy_install et distutils de Python vous permettent d'identifier les versions dont vous avez besoin. Il y a rarement des changements de sécurité inattendus qui invalident les interfaces.

Questions connexes