2009-07-23 65 views
2

在一些较小的网站上使用了Codeigniter和Kohana等一些PHP框架之后,我开始怀疑MVC是否仍然适用于大型项目,如果有的话,需要采取哪些预防措施来保持清洁的地方。大型网站使用什么做法来防止这种情况发生?亚马逊或Flickr的代码使用MVC还是其中的一些变体?有没有一个指南,鉴于某个问题,告诉你如何最好地实现大型项目的MVC?什么时候MVC不再适用于大型项目?

- 相切 -

使用的Kohana目前的一个项目,我开始怀疑我的模型应该有什么样的作用。通常情况下,模型只能描述我正在尝试构建的对象的一小部分。即,需要用户的对象,所以我使用Users_Model从Users表中提取用户。但是每个用户在他们的库存中也有几个项目,所以我还需要使用Users_Inventory_Model。但是,每个库存项目都有其他表格与之关联,等等,直到我发现在控制器中建立一个用户需要我访问多个模型。现在,想象一下,在许多不同的控制器中这样做,突然间我发现自己的代码繁杂,代码冗余,控制器也很肥。

这让我想到,也许我应该拥有处理大部分咕噜作品的库。这样,我可以有一个用户库,让它加载我所有相关的用户数据并运行大部分逻辑,比如更新,删除等。这是大多数MVC项目发展的方式吗?让图书馆完成与模型的大部分交互,而控制器调用图书馆并为视图准备数据?无论如何,这只是我关于MVC的一个问题,我一直无法在网上找到答案。

+0

那么,stackoverflow.com是用mvc构建的:-) – nos 2009-07-23 17:04:57

回答

5

事实上,它适用于所有这些MVP和MVC真正发光的大项目。所有的软件设计模式都是“创建”的(除了建立通用词汇)来处理软件的复杂性。因此,如果使用得当,MVC将在大型项目中对您有很大的帮助。

与小应用程序相比,它可以使用鼠标方式一起入侵,但由于没有适当的分隔,它们足以支持噩梦。

+0

该文章链接的PPP书是否值得阅读,或者我可以在网上找到相应的材料吗? – Brad 2009-07-23 16:56:16

相关问题