何时不在Web应用程序中使用MVC?

GSt*_*Sto 19 php model-view-controller design-patterns

我正在为一个新项目草拟一些想法,并意识到我在设置MVC框架时遇到了一些困难(在这种情况下,CodeIgniter)我喜欢的方式.虽然我相信这可以通过更多地设计并找出更好的布局来克服,但它让我思考:MVC 不是最好的答案吗?如果没有,何时使用MVC对项目来说是一个好主意,何时不是?

我觉得MVC 可以用于任何网络应用程序,但我想知道什么时候它不是最好的解决方案.

Jac*_*yan 20

我认为MVC几乎普遍适用于我们今天看到的Web应用程序.但这并不意味着您使用的框架总是支持您想要做的事情类型.

MVC只是一种适用于网络的模式.特别是它适用于以下列方式访问应用程序的想法:

  • 用户要求一些资源
  • 某些基础数据是从某个地方检索的.
  • 然后将模板应用于该数据,以便向用户显示该模板.

这无疑是Web工作的方式,但是大多数Web MVC框架都是从每个用户产生相对较少的请求的假设开始的,这些请求一次要求大块资源.我发现随着网站频繁移动和更小的AJAX样式请求,许多框架需要一些工作才能使它们很好地发挥作用,因为越来越多的MVC的"视图"部分需要在客户端上处理.对此的框架支持远不如服务器端视图那样成熟.然而,中心范式没有太大变化,中央请求 - 查询 - 模板循环仍然存在.

简而言之:MVC是一种思考应用程序工作方式的好方法,但这并不意味着您将找到一个可以处理所有需求的预编写框架.


Pet*_*ham 5

当它是单页面应用程序时.

(实际上它仍然值得分离关注并在小型中做MVC,但它不是PHP服务器意义上的MVC)


小智 5

MVC 的价值在...

  1. 单个开发人员或小团队使用相同编码语言的项目
  2. 具有单一界面的项目(例如只有桌面版本)
  3. 一个具有丰富 UI、主要在客户端的代码和一组 AJAX 调用的项目
  4. 任何不是网站的东西(例如数据提要、实用程序等)
  5. 任何团队成员不关心简历上有“MVC”的项目
  6. 从现在起 MVC 开始过时的大约 5 年内的任何项目

  • 坦率地说,至少第 6 个论点更多的是一个论点,而不是一个事实,因为已经 7 年了,MVC 仍在应用。 (2认同)