聊聊web框架的MVC

1 view
Skip to first unread message

CL (Ciu Loeng) Lam

unread,
Jan 4, 2009, 11:36:57 PM1/4/09
to pyth...@googlegroups.com
想跟大家讨论一下web框架的设计模式。现在的web框架大多数都是MVC。除了MVC还有什么别的设计吗?MVC是不是就这么完美,没有缺点呢?如果有,那缺点又是什么呢?怎么样可以改进?

limodou

unread,
Jan 4, 2009, 11:39:20 PM1/4/09
to pyth...@googlegroups.com
2009/1/5 CL (Ciu Loeng) Lam <lamci...@gmail.com>:

> 想跟大家讨论一下web框架的设计模式。现在的web框架大多数都是MVC。除了MVC还有什么别的设计吗?MVC是不是就这么完美,没有缺点呢?如果有,那缺点又是什么呢?怎么样可以改进?

还有从django兴起的MVT(Model View Template)。其实大同小异。只是一个设计方法,感觉不出有什么缺点。

--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: (new)http://http://hi.baidu.com/limodou
(old)http://www.donews.net/limodou

Her0

unread,
Jan 5, 2009, 2:30:14 AM1/5/09
to python-cn`CPyUG`华蟒用户组
感觉还是java强啊!mvt不知道是不是学的freemaker

On Jan 5, 12:39 pm, limodou <limo...@gmail.com> wrote:
> 2009/1/5 CL (Ciu Loeng) Lam <lamciulo...@gmail.com>:
>
> > 想跟大家讨论一下web框架的设计模式。现在的web框架大多数都是MVC。除了MVC还有什么别的设计吗?MVC是不是就这么完美,没有缺点呢?如果有,那缺-点又是什么呢?怎么样可以改进?

大郎

unread,
Jan 5, 2009, 2:43:03 AM1/5/09
to pyth...@googlegroups.com
2009/1/5 CL (Ciu Loeng) Lam <lamci...@gmail.com>

想跟大家讨论一下web框架的设计模式。现在的web框架大多数都是MVC。除了MVC还有什么别的设计吗?MVC是不是就这么完美,没有缺点呢?如果有,那缺点又是什么呢?怎么样可以改进?

去用它。再发现不足。不用则都是它家之言。既是这么多框架都在应用,说明他有可取之处。

--
Ken(#)baicai.com, 百才招聘(http://www.baicai.com).产品部

limodou

unread,
Jan 5, 2009, 2:50:58 AM1/5/09
to pyth...@googlegroups.com
2009/1/5 Her0 <react...@gmail.com>:
> 感觉还是java强啊!mvt不知道是不是学的freemaker
>

如何叫强,如何叫不强,要有比较。至于出处不知道,反正我是第一次从django处看到的。

Zoom.Quiet

unread,
Jan 5, 2009, 2:53:01 AM1/5/09
to pyth...@googlegroups.com
2009/1/5 limodou <lim...@gmail.com>:

> 2009/1/5 Her0 <react...@gmail.com>:
>> 感觉还是java强啊!mvt不知道是不是学的freemaker
> 如何叫强,如何叫不强,要有比较。至于出处不知道,反正我是第一次从django处看到的。
>
一通百通,
谁学谁的不重要,重要的是哪种框架适合你,,,


--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
向靠谱,反脑残!

CL (Ciu Loeng) Lam

unread,
Jan 5, 2009, 2:56:10 AM1/5/09
to pyth...@googlegroups.com
MVC的话,我觉得应该是java引进过来的。Java一开始是有module 1,module 2,然后就发展到Struts 1.X。这里的Struts就已经是MVC架构了。
发展到目前,我所知道的绝大多数的框架都是使用这种设计模式。不只是Java在用,python,php,Ruby等的语言的Web框架都是采用了这种设计。
但这种模式真的就无懈可击了吗?完全没有缺点了吗?就不能有第二种模式来打破这种垄断?

2009/1/5 limodou <lim...@gmail.com>

刘鑫

unread,
Jan 5, 2009, 3:00:06 AM1/5/09
to pyth...@googlegroups.com
JAVA党说起JAVA伟大的OO,伟大的MVC,伟大的设计模式时,Smalltalk在图灵奖的授奖台上发笑……

2009/1/5 CL (Ciu Loeng) Lam <lamci...@gmail.com>

MVC的话,我觉得应该是java引进过来的。Java一开始是有module 1,module 2,然后就发展到Struts 1.X。这里的Struts就已经是MVC架构了。
发展到目前,我所知道的绝大多数的框架都是使用这种设计模式。不只是Java在用,python,php,Ruby等的语言的Web框架都是采用了这种设计。
但这种模式真的就无懈可击了吗?完全没有缺点了吗?就不能有第二种模式来打破这种垄断?







--
杀人放火金腰带,补路修桥无尸骸。

……

劉鑫
March.Liu

Leo Jay

unread,
Jan 5, 2009, 3:01:22 AM1/5/09
to pyth...@googlegroups.com
2009/1/5 CL (Ciu Loeng) Lam <lamci...@gmail.com>:

> MVC的话,我觉得应该是java引进过来的。Java一开始是有module 1,module 2,然后就发展到Struts

你没有好好看过<<设计模式>>吧,MVC是smalltalk引入的。那时候还没java呢。

> 1.X。这里的Struts就已经是MVC架构了。
> 发展到目前,我所知道的绝大多数的框架都是使用这种设计模式。不只是Java在用,python,php,Ruby等的语言的Web框架都是采用了这种设计。
> 但这种模式真的就无懈可击了吗?完全没有缺点了吗?就不能有第二种模式来打破这种垄断?
>


--
Best Regards,
Leo Jay

ubunoon

unread,
Jan 4, 2009, 3:05:24 AM1/4/09
to python-cn
      虽然设计模式一书中大量使用了smalltalk的代码,但并不是说mvc就是从smalltalk中出来的,是在大家逐渐开发oop软件时候,慢慢形成的,当然smalltalk是oop的鼻祖语言之一,自然会有许多给mvc实现的地方。
      MFC开发出来的也是基于MVC的,那时java估计也还没有出现呢!
 
 
 
2009-01-04

ubunoon

发件人: Leo Jay
发送时间: 2009-01-05  16:01:22
收件人: python-cn
抄送:
主题: [CPyUG:75862]_Re:_聊聊web框架的MVC

smallfish

unread,
Jan 5, 2009, 3:12:27 AM1/5/09
to pyth...@googlegroups.com
我也是听说最早的概念是从smalltalk引进,只不过java里也有类似的概念提出来,然后struts框架更加显式的提出了MVC三层概念,里面的Action,ActionForm,Bean细分的很清楚。

如果说缺点的话,它不适合小型开发,简单来说就写几个简单的页面,也分层的很清楚,如果boss要是尽快完成或者频繁修改,就会觉得这个模式真的不爽了,MVC适合中等规模以上的开发,多人开发的那种,分工比较明确。
--
blog : http://hi.baidu.com/smallfish7788
bbs : http://bbs.chinaunix.net/forum-55-1.html
smallfish / xiaoyu9805119

--------------------------------------------------
From: "Leo Jay" <python...@gmail.com>
Sent: Monday, January 05, 2009 4:01 PM
To: <pyth...@googlegroups.com>
Subject: [CPyUG:75862] Re: 聊聊web框架的MVC

Jean.Xu

unread,
Jan 5, 2009, 3:21:31 AM1/5/09
to pyth...@googlegroups.com
不同意MVC不适合小型开发这个观点
MVC是要把html代码和程序代码分离,小项目为啥不适合?


2009/1/5 smallfish <smal...@live.cn>

大郎

unread,
Jan 5, 2009, 3:22:16 AM1/5/09
to pyth...@googlegroups.com
2009/1/5 smallfish <smal...@live.cn>
我也是听说最早的概念是从smalltalk引进,只不过java里也有类似的概念提出来,然后struts框架更加显式的提出了MVC三层概念,里面的Action,ActionForm,Bean细分的很清楚。

如果说缺点的话,它不适合小型开发,简单来说就写几个简单的页面,也分层的很清楚,如果boss要是尽快完成或者频繁修改,就会觉得这个模式真的不爽了,MVC适合中等规模以上的开发,多人开发的那种,分工比较明确。

大哥,好像不是这样的 :) 


--
Ken(#)baicai.com, 百才招聘(http://www.baicai.com).产品部

free.wang

unread,
Jan 5, 2009, 3:22:30 AM1/5/09
to pyth...@googlegroups.com
我还是把mvt理解为MVC的。
MVC成功的地方,我觉得在于他的松耦合。分工明确。

2009/1/5 smallfish <smal...@live.cn>



--
真正的杰出,不是妙用规则的错层,而是极致的偏执于信念.
The Crankiness of  Belief achieves Greate , not the Trick of Regulation.

free.wang

unread,
Jan 5, 2009, 3:23:33 AM1/5/09
to pyth...@googlegroups.com
他的意思是,比如PHP单个 页面去展现某个动态的内容,这种情况下确实没必要。 不过不知道他是不是想这么表达。

2009/1/5 Jean. Xu <xuze...@gmail.com>

smallfish

unread,
Jan 5, 2009, 3:25:02 AM1/5/09
to pyth...@googlegroups.com
恩,就是这个意思,可能我描述不是很清楚。
我做个N个统计的页面,页面只是各种各样的sql,然后就是一个页面,没必要搞个mvc模式了。很多写完随手就扔的程序,只是为了满足一时的查询或需求唉

beck917

unread,
Jan 5, 2009, 3:33:20 AM1/5/09
to pyth...@googlegroups.com


2009/1/5 smallfish <smal...@live.cn>

mvc这种模型,导致的一个问题...当然对现在的计算机也算不上啥问题...就是效率问题

一般从MC里取出数据,然后做一次数据循环处理...而到了V里显示的实施往往不得不再做一次循环处理...

夕阳山外山

unread,
Jan 5, 2009, 3:38:40 AM1/5/09
to python-cn`CPyUG`华蟒用户组
MVC最早 来自 java stauts

On 1月5日, 下午3时50分, limodou <limo...@gmail.com> wrote:
> 2009/1/5 Her0 <reaction...@gmail.com>:

Weiming Yin

unread,
Jan 5, 2009, 4:20:58 AM1/5/09
to pyth...@googlegroups.com
2009/1/5 夕阳山外山 <wood...@gmail.com>:
> MVC最早 来自 java stauts

MVC概念大行其道的时候,丑陋的status还没出娘胎呢好伐。

--
Weiming Yin

Youhong Han

unread,
Jan 5, 2009, 4:28:19 AM1/5/09
to pyth...@googlegroups.com
MVC 最早是1979Trygve Reenskaug提出的,看这个链接:http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html

当GUI开发已经非常成熟的时候,最开始WEB开发还在原始社会,把以前的老东西拿来适应新的需求,就是当前的MVC,因为在WEB开发领域JAVA的structs大力推这个并且很成功,让大家都以为MVC源自JAVA




2009/1/5 夕阳山外山 <wood...@gmail.com>

头太晕

unread,
Jan 5, 2009, 8:24:10 AM1/5/09
to pyth...@googlegroups.com
据说伟大的MFC也号称是MVC.

2009/1/5 Youhong Han <pytho...@gmail.com>

chunlin

unread,
Jan 5, 2009, 8:34:58 PM1/5/09
to python-cn`CPyUG`华蟒用户组
MVC was first described in 1979[1] by Trygve Reenskaug, then working
on Smalltalk at Xerox PARC.
技术人员一定要看 wikipedia 的说.
http://en.wikipedia.org/wiki/Model-view-controller

On 1月5日, 下午3时56分, "CL (Ciu Loeng) Lam" <lamciulo...@gmail.com> wrote:
> MVC的话,我觉得应该是java引进过来的。Java一开始是有module 1,module 2,然后就发展到Struts
> 1.X。这里的Struts就已经是MVC架构了。
> 发展到目前,我所知道的绝大多数的框架都是使用这种设计模式。不只是Java在用,python,php,Ruby等的语言的Web框架都是采用了这种设计。
> 但这种模式真的就无懈可击了吗?完全没有缺点了吗?就不能有第二种模式来打破这种垄断?
>

> 2009/1/5 limodou <limo...@gmail.com>
>
> > 2009/1/5 Her0 <reaction...@gmail.com>:

CL (Ciu Loeng) Lam

unread,
Jan 5, 2009, 9:00:31 PM1/5/09
to pyth...@googlegroups.com
其实我觉得考究MVC是出自哪里,意义不大。我只是想讨论一下MVC的缺点以及可以改进的地方。

2009/1/6 chunlin <zhangc...@gmail.com>

zhao shichen

unread,
Jan 5, 2009, 9:52:44 PM1/5/09
to pyth...@googlegroups.com
呵呵,java党以为一切都出自java。

另外,mvc还是mtv不过就是名称不同罢了。

bfg上说,django把视图叫做模板,把控制器叫做视图他们无法忍受。。。。。。

阿信

unread,
Jan 5, 2009, 10:11:54 PM1/5/09
to pyth...@googlegroups.com
听大家的口气还蛮多不喜欢java的哦,算上我一个了。我发现java党说话开口就是设计模式,不然好像会显得很无知那样。闭口就是接口啊伟大的java啊之类的。

在 09-1-6,zhao shichen<shiche...@gmail.com> 写道:


> 呵呵,java党以为一切都出自java。
>
> 另外,mvc还是mtv不过就是名称不同罢了。
>
> bfg上说,django把视图叫做模板,把控制器叫做视图他们无法忍受。。。。。。
>
> >
>


--
正如我的邮箱名一样,我做人的哲学是:信行谦言。

ShareIdea!

unread,
Jan 5, 2009, 10:15:28 PM1/5/09
to pyth...@googlegroups.com
MVC,只不过是逻辑分层的开发模式。其实是一个很大,很笼统的概念。app model tempalte action(django是view) controller,这些都是设计和开发的思想。
使用 OOP,只要程序的结构和逻辑,足够好,都可以称之为MVC。

2009/1/6 zhao shichen <shiche...@gmail.com>

smallfish

unread,
Jan 5, 2009, 10:15:18 PM1/5/09
to pyth...@googlegroups.com
偶例外,不喜欢提啥模式不模式,虽然我们公司这样的人很多。
没觉得java伟大啥,都只是为了解决问题和工作而已。

--------------------------------------------------
From: "阿信" <xinxing...@gmail.com>
Sent: Tuesday, January 06, 2009 11:11 AM
To: <pyth...@googlegroups.com>
Subject: [CPyUG:/] Re: 聊聊web框架的MVC

vicalloy

unread,
Jan 5, 2009, 10:18:04 PM1/5/09
to pyth...@googlegroups.com
请不要乱扣帽子好不好。
只能说林子大了什么鸟都有。
那些网站为了人气当然要炒概念,就如那些所谓的XX杀手啥的。

2009/1/6 阿信 <xinxing...@gmail.com>:

Weiming Yin

unread,
Jan 5, 2009, 10:32:00 PM1/5/09
to pyth...@googlegroups.com
偶也是Java党的说。。。。

2009/1/6 阿信 <xinxing...@gmail.com>:

--
Weiming Yin

Chunlin Zhang

unread,
Jan 5, 2009, 10:46:56 PM1/5/09
to pyth...@googlegroups.com
我说的重点在于,技术人员应该好好利用 wikipedia 来了解技术的概念.

有这么好的宝库不用,随便乱说会被人笑的.

2009/1/6 CL (Ciu Loeng) Lam <lamci...@gmail.com>:

Zoom.Quiet

unread,
Jan 5, 2009, 10:48:45 PM1/5/09
to pyth...@googlegroups.com
2009/1/6 Chunlin Zhang <zhangc...@gmail.com>:

> 我说的重点在于,技术人员应该好好利用 wikipedia 来了解技术的概念.
>
> 有这么好的宝库不用,随便乱说会被人笑的.
>
> 2009/1/6 CL (Ciu Loeng) Lam <lamci...@gmail.com>:
>> 其实我觉得考究MVC是出自哪里,意义不大。我只是想讨论一下MVC的缺点以及可以改进的地方。
>>

这想法好哪,,
但是你的观点?! 你的依据?
你的工程实例?

MVC 的缺点,具体的?
问题定义清楚后,问题也就解决了一半了,,,

>> 2009/1/6 chunlin <zhangc...@gmail.com>
>>>
>>> MVC was first described in 1979[1] by Trygve Reenskaug, then working
>>> on Smalltalk at Xerox PARC.
>>> 技术人员一定要看 wikipedia 的说.
>>> http://en.wikipedia.org/wiki/Model-view-controller

--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
usage 7-zip to replace WinRAR/WinZip; You can get the truely Freedom 4 software.

Joseph Qu

unread,
Jan 6, 2009, 11:35:12 AM1/6/09
to pyth...@googlegroups.com
设计模式与java无关,最起码GOF书中的例子都是C++的。实现接口编程,这也是起码的OOP思想。如果你了解thinking in Java一书,从第一版到第三版之间的发展就明白了。原先模糊的OOP思想通过设计模式就变得很清晰。

如果Python党通过否定他人来提升自己,真的很无耻,只有GCD才会这样。

Java都加入了GP等等新的feature,Java也在发展。兼收并取,这才是发展Python的硬道理。海纳百川,有容乃大。学会客观的评价,而不是掺杂个人的喜恶。

2009/1/5 阿信 <xinxing...@gmail.com>

ShareIdea!

unread,
Jan 6, 2009, 8:17:01 PM1/6/09
to pyth...@googlegroups.com
没有最优秀的编程语言,只有最优秀的程序员!优秀的程序,用Basic也能写出优秀的程序,蹩脚的Java程序员,就算是用这么强大的java也仅仅是做一个破烂的小网站。
海纳百川,有容乃大。说的很好!除了语言之外,还有很多的东西需要学习研究!

2009/1/7 Joseph Qu <ace...@gmail.com>

smallfish

unread,
Jan 6, 2009, 8:18:09 PM1/6/09
to pyth...@googlegroups.com
同意!
From: ShareIdea!
Sent: Wednesday, January 07, 2009 9:17 AM
Reply all
Reply to author
Forward
0 new messages