English 中文(简体)
Web框架可维护性
原标题:
  • 时间:2009-03-09 17:21:10
  •  标签:

希望这是选择此网络应用程序实现语言的最后一个问题,但在向任何人展示之前,我们希望了解您维护应用程序的经验。

我们维护了一个基于Perl的Web门户网站(现已转移到托管解决方案)。

问题在于我们有一些情况,其中Perl被更新或模块被更新,由于整个网站是相互关联的,因此在CPAN模块中进行的一小点改变就很容易变成噩梦,因为该门户网站(这是一个开源门户网站,我们没有创建它)中的某些内容非常特定,只接受特定版本的模块。

有几次,一个无害的安全更新集合会导致网站在相当长的时间内崩溃。

因此,在决定基于PHP、Django或Ruby on Rails创建Web应用程序时,人们可以分享升级框架或语言的整个或部分维护所需的工作。

当尝试为未创建的模块/宝石安装安全修复程序时,破解或故障网络应用程序有多“轻松”?或者这真的不是一个问题吗?

最佳回答

如果我最近要部署Python应用程序,我肯定会检查virtualenv

从他们的页面:

virtualenv is a tool to create isolated Python environments.

The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.4/site-packages (or whatever your platform s standard location is), it s easy to end up in a situation where you unintentionally upgrade an application that shouldn t be upgraded.

Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.

问题回答

使用Django,我曾经在升级中从未遇到过任何问题(我的一些项目从0.96或更早的版本开始遭受了一些衰退,因此它们更为复杂)。至于可重用的应用程序,它确实取决于应用程序。但总的来说,那些有纪律地发布他们的应用程序的开发人员(而不是假定人们会运行开发版本)往往擅长确保版本之间的迁移是轻松的。

只需在tests.py中包含一些回归测试。如果您不进行测试,则做错了...

Python 的 easy_install 和 distutils 为您提供了一个相当可靠的方式来识别您需要的版本。很少有出乎意料的安全更改会使接口失效。





相关问题
热门标签