何时应该使用框架来开发网站?

7

我一直在采用n层结构开发网站,目前我的需求得到了满足。但是像Zend FrameworkSymfony这样强大的框架越来越受欢迎,我想知道如何判断是否是时候转向框架了?

我是否处于一种困境中?什么是正确的选择?

7个回答

10

如果你对自己的方法感到满意 - 永远不要停下。
框架并非是由神而写成,而是由人们编写。其中有些人可能比你知识少,或者有不同的观点。
此外,它更像是一种强加给你的范式,而不是工具箱。一种宗教信仰。
如果你有自己的方法且适合你,最好开发自己的框架。虽然不像著名框架那样通用,但也不会像它们那样臃肿和缓慢。


7
认为自己比建立一个框架的整个社区的人都更优秀,这通常是一种傲慢的表现。大多数试图制作自己的框架的人只是在重复造轮子,这应该被避免。框架并不会“指示”任何事情。它们中的大多数可以以多种方式使用。 - selfawaresoup
3
那是另一种看法,我很欣赏。 - Your Common Sense
3
自己编写框架并没有什么问题。在许多情况下,你可能只需要MVC结构本身和一些用于安全性、表单处理和数据库抽象的实用工具类。有些框架(比如CakePHP)几乎是过度臃肿的。 - Lotus Notes
哈哈...真得喜欢一个名叫“Lotus Notes”的人谈论膨胀问题。我猜没有比他更好的专家了。 - cHao
修改我之前的评论,CakePHP允许极快的开发时间,特别是对于简单的CRUD应用程序。但是Cake文档不是很完整,如果您需要做一些复杂的事情或需要停止Cake执行的许多“魔法操作”之一,它会变得有点丑陋。 - Lotus Notes

3

是的。

它不仅可以加快开发时间(一旦您了解了框架的使用方法),还可以让其他开发人员更好地理解站点的工作原理。


1
因为你的其他开发人员没有学习PHP,而只是学了Cake或ZF?!真是什么鬼?! - Timothy

3
使用框架当然有其优势,因为您可以更快地编写代码,无需担心在 Web 应用程序中始终需要的许多功能,因此可以更多地考虑应用程序特定的实现,并且只需升级其他功能。
当然,使用框架在协作方面也具有优势,因为如果您使用一个众所周知的框架,那么有很多人知道它,而无需花费时间培训他们。
但是,当您使用框架时,必须尊重其结构、编码风格和设计。通常这不是问题,因为如果您明智地选择了一个框架,您就不会感到有必要离开正确的轨道。

3
最好的方法就是尝试一下!大约一年前,我从自己的编码风格转移到了CakePHP,此后再也没有回头。这使得我更容易处理其他人基于框架的代码,并且整体上减少了在六个月后查看自己的代码时的困惑,因为现在代码遵循了更严格的格式并且更加可预测。
如果你正在考虑这个问题,那么现在尝试一下可能是最好的时机,因为你显然已经对它产生了兴趣。如果你发现自己不喜欢使用它们,那么你总是可以回到你平常的方式(甚至像Shrapnel上校说的那样写自己的方式)。

3

我们公司选择使用Zend框架的四个原因:

1 - 通用语法:该框架有自己的语法,所有编码人员必须按照一定程度遵循它。这使得使用外部开发人员或应对员工流动更加容易。

2 - 规模:所涉及的网站规模需要MVC架构。

3 - 经过测试的组件:该框架已经预先构建了大多数组件,让您可以专注于模型。

4 - 品牌信誉:从客户的角度来看,使用知名框架品牌具有一定价值。它意味着标准解决方案,并将客户与您的自定义框架“解耦”。


标准化方法加1分。如果一个项目使用了一堆标准组件来进行路由、控制器、缓存等操作,那么让某个人快速上手就会变得容易得多,而如果所有这些东西都是独特的(并且可能没有框架代码那样好文档化),那么就会变得困难。当然,如果你是一个单兵作战,这个问题就不那么重要了。 - timdev
但是我认为我们应该将客户端与我们的自定义代码耦合在一起,这样他们就无法去其他地方了!! - Timothy

2

每当您不确定软件的最终结果时,预制库通常可以处理几乎任何事情,因此您可以轻松地在其上扩展您的网站。如果将来会有新人参与其中,他们可以轻松地加入,无需学习您的操作方式。

但除此之外,我认为Shrapnel上校是正确的。


1
只要你自己无法回答这个问题,我会说:总是使用一个框架。
我认识很多开发人员认为使用框架会让他们成为“非真正的程序员”,这简直是愚蠢至极。这种错误的自豪感不应妨碍我们创造结构良好且易于维护的代码。
使用一个好的框架可以帮助你解决许多烦人的小问题,从而让你专注于实际项目。当然,没有什么事情是你不能在没有框架的情况下完成的,但是有了框架,你能够更快地完成,并且避免很多麻烦。
也许经验会告诉你有些情况下你不需要框架,或者事实上没有框架更好,但这样的情况非常罕见。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接