我会说,所谓的“死”项目,只要项目本身是可靠的并且你喜欢它,就没有那么大的危险。问题是,如果库或框架已经完成了你认为你想要的一切,那么这没什么大不了的。如果您启动并运行了一个稳定的项目,那么您应该完成对框架的考虑(完成!)并只关注您的web 应用程序。不应要求您每个月都使用最新版本更新框架本身。
就个人而言,我认为最重要的一点是你找到一个对你的项目来说是直观的。什么最有意义?MVC?URL 中的每个元素都应该是一个单独的对象吗?交互性 (AJAX) 将如何工作?仅仅因为它是“行业标准”或者因为它被许多大牌网站使用而选择一些东西是没有意义的。也许他们选择它是为了满足与您完全不同的需求。阅读每个框架的教程并保持批判性。如果它不符合你的思维方式,或者你已经看到它做得更优雅,那么继续前进。你在这里考虑的是设计良好的设计无异于保持灵活性和可扩展性。每种语言都有数百个新旧 Web 框架。您一定会找到六个按照您在项目中的想法工作的方法。
我认为必须的要点:
- 可通过插件扩展:检查是否已经有各种中间件任务的插件,例如 memcache、gzip、OpenID、AJAX goodness 等。
- 简单性和模块化:越复杂,学习曲线越陡峭,您对其稳定性的信任度就越低;对特定技术的“锁定”越多,您最终被脚踝缠住的可能性就越大。
- 与数据库无关:您可以使用 sqlite3 进行开发,然后通过更改一行代码或配置切换到您的生产数据库吗?
- 平台无关:你能在 Apache、lighttpd 等平台上运行它吗?你能把它移植到云中运行吗?
- 模板不可知论:您可以切换模板系统吗?假设您聘请了专门的设计师,而他们真的想选择其他东西。
- 文档:如果它是开源的,我没有那么严格,但需要有足够的官方文档,以使我能够完全理解如何编写自己的插件,例如。还要看看是否有使用相同框架的工作站点的源代码。
- 许可证和源代码:您是否有权访问源代码并允许对其进行修改?考虑一下你是否可以在商业上使用它!(即使您目前没有这样做的计划。)
总而言之:灵活性。如果我对所有四点都满意,我就完成了。请注意我在那里没有任何关于“死亡”的信息?如果核心设计很好,并且有易于安装的插件来完成你想做的每一个 web-dev 3.0-beta 流行语的事情,那么我不在乎最后一次 SVN 提交是否是在 2006 年。