PHP China | 中国开源之路 's Archiver

某个人 发表于 2008-11-18 16:28

MVC普遍滥用真的有必要么?

走题了。今天在英文版逛荡无意中发现一个帖子:MVC框架论战[。进去一看。了不得。口战啊。不过不是在PHPChina而是在[url=http://pookey.co.uk/blog/archives/43-phplondon08-the-crazy-guy-mail.html][color=#3c78a7]这里[/color][/url],根据英文版的版主说,这是Chris hartjes(做Symfony项目的一个牛人),在他的blog里登出的邮件.新建我转到这里。因为今天我看了一天的Pro.PHP头很大。再看英文会吐:)把信丢这里,明天来看了再做评论。
  不过对于我个人而言。MVC架构确实好像太泛滥了点。就因为他符合用户-浏览器-服务端正好3个不同阶层的层次么?我觉得巨麻烦。一个小网站也好,一个大网站也罢,大项目不说。不管是不是适合用MVC都是用上再讲。MVC只是个模式。说白了。就是观察者模式的高级应用(当然,是我个人的理解)。为什么不是把程序的效能放第一位,不是把程序的开发、维护放在第一位,而是麻木的应用MVC呢?现在几乎所有框架都是围着他转。这也是为什么我不想用框架的原因。灵活吗?我倒不觉得。。体现出程序的乐趣吗?有设计而言吗?MVC三层给你框得死死的。看起来真的一点意思没有。
  要使用框架,学会基本语法。然后把项目分成三层,套上去。结束。看哪个框架在这几部分的工作做得最好,就最能赢得使用者的认可。不知道是不是我偏激了。也不知道是不是我是只狐狸(吃不到葡萄说葡萄是酸的。)
  但这个MVC的普遍滥用确实说到了我心坎上。一直迷惑我的一件事。

[[i] 本帖最后由 七月十五 于 2008-11-18 19:54 编辑 [/i]]

海底的鱼 发表于 2008-11-18 17:13

呵呵,LZ太在乎了,管他是不是MVC,但是用框架开发项目不是不提高了开发速度呢?
答案很显然,是
当然,这个项目绝不是一个留言板咯

“为什么不是把程序的效能放第一位,不是把程序的开发、维护放在第一位”,这句话我没明白嘛意思,用框架开发,直接体现的就是易维护,但效率却大打折扣

现在大部分我们所了解的和不了解的PHP框架都是基于MVC,单点入口的模式,LZ如果愣是对MVC看不顺眼,也可以搞个别的什么C啊,M啊,你打乱了来就是

“这也是为什么我不想用框架的原因。灵活吗?”,要灵活也不能天马行空的来,框架是什么?我的理解就是给你提供了一组可以直接拿来用的解决方案,同时它也给你带来了一组约定,也就是制约了,如果你遵从框架的约定,那么我想应该还算“灵活”吧

宗旨是什么?只有一个,用框架是提高开发速度,便于维护,我不觉得全面向过程的代码要比OOP的代码好维护

胡乱说了几句,别砸我,LX继续

[[i] 本帖最后由 海底的鱼 于 2008-11-18 17:19 编辑 [/i]]

某个人 发表于 2008-11-18 17:17

楼上的也误会我的意思了。
事实上对于MVC我是很有好感的。。但动不动就是MVC。。。。
框架看谁的MVC最像就是好的。。。
啊啊。。只是纯粹的理论性探讨罢了

youscript 发表于 2008-11-18 20:35

MVC并不是完美的,有些情况用它不合适

LeoPHP 发表于 2008-11-18 20:42

MVC也是有设计模式锤炼而后得出的
当然设计模式并不只能整出MVC而已

fhjr999 发表于 2008-11-18 20:44

如果工作较长时间以后,手头积累了一套用着顺手的东西,那其实就无所谓用不用框架了,你的那堆东西就是一个框架,拼拼凑凑项目就搞定了,开发速度也许比用框架还要快。

但是对于很多人来说,框架提高的开发效率也非常明显。你不需要考虑底层的架构(这部分很 麻烦的),框架就为你定制好了,而且还提供了丰富的库。

而对于MVC,用起来也确实比较方便。

LeoPHP 发表于 2008-11-18 20:54

框架相对来说有一个学习和熟悉的过程,被称之为学习曲线。
如果你有自己的类库并形成了特定逻辑,用于开发应该,那就是你自己的开发框架。也叫做自主核心。这样的核心一来熟悉,二来不受兼容性的约束,运用自如,开发速度相对来说要快很多。
“自主”非常重要,因为那是你的尖刀,可以使你立于不败之地。
但是自主的核心一般有很多制约。
一来不通用,兼容性成问题。二来技术力量不够,性能和安全成问题。三来后继乏人,延续性成问题。

所以,掌握一门流行框架,拥有自主的核心。可以两手准备,攻守兼备。

[[i] 本帖最后由 LeoPHP 于 2008-11-18 20:55 编辑 [/i]]

wbsifan 发表于 2008-11-18 23:09

[quote]原帖由 [i]LeoPHP[/i] 于 2008-11-18 20:54 发表 [url=http://bbs.phpchina.com/redirect.php?goto=findpost&pid=730575&ptid=91714][img]http://bbs.phpchina.com/images/common/back.gif[/img][/url]
框架相对来说有一个学习和熟悉的过程,被称之为学习曲线。
如果你有自己的类库并形成了特定逻辑,用于开发应该,那就是你自己的开发框架。也叫做自主核心。这样的核心一来熟悉,二来不受兼容性的约束,运用自如,开 ... [/quote]

小样,换了马甲你以为我就不认认你了?

同意, MP"自主核心" 和TP 同时使用中....

FreeLiver 发表于 2008-11-19 04:01

mvc理解好像存在误区,因为这些理论什么的可能来自其他语言,就像我看java里面介绍mvc和在其他地方看到的不一样。
其实理解完全可以按照自己的来,有人就非要说那个那个的什么c应该写在m里面。这样真是有点限制的死死的。不同人对三者之间的看法可能有不同,而且不应该局限于分清其区别而应该按照实际来达到维护,效率的平衡点

fhjr999 发表于 2008-11-19 11:05

m应该直接面向功能与数据。而C应该专注于流程。

比如表单的验证与入库。我会选择将验证部分放入C,而将入库放入M。

fhjr999 发表于 2008-11-19 11:08

框架在强制你应用一些比较良好设计思想,比如代码分层、封装,当然最终做的好不好,还是要看个人功力。

而不使用框架的话,对于高手无所谓,一样的结构良好,而对于经验不足的新人来说,就真的是比较糟糕了,虽然用了框架也一定就做的好,但是不用的话会更糟。

quanhaier 发表于 2008-11-19 13:45

看需求,看公司
自己做,爱怎么做怎么做

slawdan 发表于 2008-11-20 13:00

MVC很麻烦么?

实际上,开发过程中需要我们手动去搞的就是 M 和 V 而已……写多了你会发现,把模板和逻辑分离会成为习惯~不管用没用框架……

关于php里M和V的定义其实并不准确。python框架Django的概念更适合web开发:
MTV  :  Model, Template , View
除了模型相同以外,模板就是模板,View本身和逻辑合并即可(在实际开发中,其实大部分同学都是这样做的~)

feifengxlq 发表于 2008-11-20 16:29

滥用当然没有必要!:lol:
但 好好用并且用好还是很有必要的!

对于MVC,你真的精通了吗?熟悉了吗?熟悉了,你自己就清楚了,没有必要去说,去讨论了。。。

wbsifan 发表于 2008-11-20 16:46

[quote]原帖由 [i]feifengxlq[/i] 于 2008-11-20 16:29 发表 [url=http://bbs.phpchina.com/redirect.php?goto=findpost&pid=735893&ptid=91714][img]http://bbs.phpchina.com/images/common/back.gif[/img][/url]
滥用当然没有必要!:lol:
但 好好用并且用好还是很有必要的!

对于MVC,你真的精通了吗?熟悉了吗?熟悉了,你自己就清楚了,没有必要去说,去讨论了。。。 [/quote]

哎...
LS的总是用反问去回答问题
有点像赌桌上的心理.

programmerhuang 发表于 2008-11-20 16:51

MVC ≠ 框架
MVC主要解决的问题就是外观和内部逻辑分开. (每个模式都有要解决的主要问题)
而这个, 恰好是楼主说的关注于程序, 程序员关注于程序, 美工关注于外观.
实现外观和内部逻辑分离, 都可以算是MVC结构.

在PHP中, 很多MVC一般都不是使用观察者模式, 很多是使用了Builder等一些模式.
PHP中大多的MVC应用, 也不是分层结构, 而是一个三角形.

正如LS说的, 精通它才能毁灭它, 不知道LZ精通了没.

呵呵, 享受编程tukiz05

leric 发表于 2008-11-24 19:55

等楼主攒了不少经验想要自己写个框架的时候,写出来的极有可能就是个MVC

FreeLiver 发表于 2008-12-8 21:43

老实说,程序员在平面设计方面真的真的很差……
一个人同时具备美感和超强的逻辑,不是没有,而是很少,很少

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.