锁定老帖子 主题:再说Play!framework
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-10
to downpour: 老兄真得如yuxie所说“睁眼看看广大的世界吧。。”,rails里没有对象生命周期的概念,充血模型也如yuxie所说。而且,很多东西,本质上跟面向对象和静态语言扯不上任何关系,那只是java语言的限制。
|
|
返回顶楼 | |
发表时间:2010-11-10
C/C++ 程序静态数据区大小有限制,所以有 static 内容太多会把栈空间压小的说法。
但是 java 程序里写多少 static 关系不大的,static 内容往往不存在静态数据区而是驻留在 perm gen 里 …… 另外 C/C++ 程序也是可以调栈大小的 …… java 可以做元编程但是繁琐得要命,所以,就和不能元编程没什么区别。 |
|
返回顶楼 | |
发表时间:2010-11-10
yuxie 写道 downpour 写道 1. 我对play的static的理解是没有问题的,对于Controller或者是数据Model中是否应使用static方法,从来就有公论,不需要我在这里多做解释了。充血模型是Robbin提出为了加深大家对不同数据模型的理解,并不是一种正确的编程模式。一个面向对象的语言中,对象所拥有的操作范畴应始终保持在维护对象自身的状态而不是参杂任何的业务模式。多写几个应用程序的同学都会理解这才是Java的最佳实践。 2. 对象的生命周期的管理在rails里面也是有的。在Java世界,没有容器管理对象的生命周期几乎不现实,这是Java语言的特征决定的。你硬要说什么新时代,该消亡,我只能说你写的程序还太少,连这点基本的最佳实践都不明白。 1、大师,你连面向对象的基本概念都没搞清,别搞什么公论不公论了。充血模型是Robin提出的?老马听这话该吐血了。。。。去翻翻真正的公论《企业应用架构模式》吧,看看充血模型是谁提的,什么才是正确的编程模式。。 PS:八卦一下,即使在JE,先引出充血模型的也是T1老大,不是肉饼。 2、rails哪来的微容器管理声明周期?愿闻其详。。俺怎么看的rails程序都不用呢。恁老才没写过几天程序吧,看到个几年前的概念就当最佳实践了。。睁眼看看广大的世界吧。。其他的语言不管是类不类Java的,微容器管理生命周期的做法压根就没有。很简单的对象非要从容器里拿出来,闲着没事。。 随意随意,你们这群人,除了会忽悠人以外,什么都不会。决不再参与类似的讨论。无聊之极。 |
|
返回顶楼 | |
发表时间:2010-11-10
liusong1111 写道 to downpour: 老兄真得如yuxie所说“睁眼看看广大的世界吧。。”,rails里没有对象生命周期的概念,充血模型也如yuxie所说。而且,很多东西,本质上跟面向对象和静态语言扯不上任何关系,那只是java语言的限制。
你在让别人睁大眼睛看世界之前,先要证明你所谓的充血模型的正确性。不要一个外国人放个屁就当成圣旨了。 不用说充血模型,就光是普通的往对象中加方法的模式,就在大型生产实践中无法适应,更加别说加上了你们所谓的充血。 一群只懂得理论,完全不顾实践的人,真是对牛弹琴。 |
|
返回顶楼 | |
发表时间:2010-11-10
最后修改:2010-11-10
downpour 写道 liusong1111 写道 to downpour: 老兄真得如yuxie所说“睁眼看看广大的世界吧。。”,rails里没有对象生命周期的概念,充血模型也如yuxie所说。而且,很多东西,本质上跟面向对象和静态语言扯不上任何关系,那只是java语言的限制。
你在让别人睁大眼睛看世界之前,先要证明你所谓的充血模型的正确性。不要一个外国人放个屁就当成圣旨了。 不用说充血模型,就光是普通的往对象中加方法的模式,就在大型生产实践中无法适应,更加别说加上了你们所谓的充血。 一群只懂得理论,完全不顾实践的人,真是对牛弹琴。 你是在说DAO么 如果你把数据库看作dao的属性池. dao是个非常好用的面向对象的例子. service 如果把dao看作含有数据结构的属性. 也是非常好的面向对象的例子. 角度不同而已. 如果你不想把数据扔到库里的话 在pojo里多写几个方法.没事的. |
|
返回顶楼 | |
发表时间:2010-11-10
zdmcjm 写道 lookdd1 写道 zdmcjm 写道 lookdd1 写道 zdmcjm 写道 # @Before//拦截器
# static void checkUser() { # if(connected() == null) { # flash.error("Please log in first"); # Application.index(); # } # } 那是不是每一个controller都要写一个这方法?假设我需要每一个controller都需检查用户是否登录,和用户的当前角色是否有权限操作controller中的某个方法。 我知道servlet过滤器可以实现,但在play这种基于静态方法的controller模型中,怎么实现? 您可以写一个公共的controller然后其它所有controller继承它 这种承继是有问题的,诸如在子controller中,有些方法需要检查权限,有些方法不需要检查就很别扭了。 恩。 所以还有个module叫secure 可以用这个搞定。 用注解的方式,问题更大。权限直接写死,并且注解四处分散,每个方法都得加上注解,比继承更严重,还不如用继承。 但是,静态方法,能继承吗? 就算你自己写个注解做到灵活处理,也得费九牛二虎之力。 权限用判断请求的url路径来实现的话,其实工作量跟用其它框架差不多的,可以做到对绝大多数controller适用。 只要是方法,不管的静态还是动态,当然能继承 再说controller一般不会再去继承其它类吧 既然是controller老老实实做controller就好了 play比其它java mvc框架,更多滴采用了rest,rails的coc思想 我看着很好呀 |
|
返回顶楼 | |
发表时间:2010-11-10
最后修改:2010-11-10
downpour 写道 1. 我对play的static的理解是没有问题的,对于Controller或者是数据Model中是否应使用static方法,从来就有公论,不需要我在这里多做解释了。充血模型是Robbin提出为了加深大家对不同数据模型的理解,并不是一种正确的编程模式。一个面向对象的语言中,对象所拥有的操作范畴应始终保持在维护对象自身的状态而不是参杂任何的业务模式。多写几个应用程序的同学都会理解这才是Java的最佳实践。 2. 对象的生命周期的管理在rails里面也是有的。在Java世界,没有容器管理对象的生命周期几乎不现实,这是Java语言的特征决定的。你硬要说什么新时代,该消亡,我只能说你写的程序还太少,连这点基本的最佳实践都不明白。 这位大哥挺能忽悠啊,至少得是个项目经理吧。要不就是领导,不推理不解释,句句是结论。 那您能给我们扫扫盲,说说为啥“没有容器管理对象的生命周期几乎不现实”吗?请正面回答,相信以您的表达能力,应该是毫无压力 |
|
返回顶楼 | |
发表时间:2010-11-10
downpour 写道 随意随意,你们这群人,除了会忽悠人以外,什么都不会。决不再参与类似的讨论。无聊之极。 这人水平普普通通,自我感觉倒是非常良好。最后还要做出“哥不陪你们玩了”的高姿态,其实一个人也没说服。真不知道他在得瑟个啥? |
|
返回顶楼 | |
发表时间:2010-11-10
logicgate 写道 yangguo 写道 易卡螺丝君 写道 没有mixin 不支持元编程的单根继承 就是在自寻死路
盲目mixin就是盲目迷信,才是真的自寻死路。 C++er,请你们到csdn去自我感觉良好。 人家是rubyer. metaprogramming用起来极爽,可以开发出非常强大的框架。 那mixin 和 c++里面的multiple inheritance 类似的东西。。不过这玩意在c++里面也不是都用。。 也就在qt里面用得比较多....其他的时候 更多是作为interface来处理的。 |
|
返回顶楼 | |
发表时间:2010-11-10
downpour 写道 你在让别人睁大眼睛看世界之前,先要证明你所谓的充血模型的正确性。不要一个外国人放个屁就当成圣旨了。
我觉得很简单,贫血模型把数据和行为分离的做法跟OO是相违背的。如果要说OO是放屁……我还没到讨论这个话题的水平,溜。 |
|
返回顶楼 | |