以下是easyjf官方群中关于easyjf框架如何easy的激烈讨论片断,请大家继续积极参与讨论。
calmness 我想问一下,零配置的规则是什么?
stef_wu 只配置module page new出来 service @Inject 或者继承abstractPageCmdAction
大峡 有什么问题? calmness 你看可不可以做灵活点,action不作为一个抽象,针对方法进行处理,就是说配置的时候可以随便配置
任何一个类,然后通过注释指定某一方法处理请求,可以是bean,也可以是action,什么都行,这样就
减少了框架的依赖,方便移植,而且也可以满足旧有的习惯,习惯用action的也可以自己写个action,
只需要用注释指定一个方法处理即可,而form呢就通过注释指定,对form没要求的话也可以不指定,这
样就灵活好多,而且也很简单,用户需要做的就是指定请求处理的一个类即可,其他的配置都不需要,
基本通过注释搞定一切,抛弃以前的配置方式
大峡 ction不作为一个抽象,针对方法进行处理,就是说配置的时候可以随便配置任何一个类,! 跟 webwork一样了。。。。
calmness 我没看过webwork,但是我觉得这种方式是最简单的 这种方式的好处我以前也说过,那就是可以使用纯粹的bean,不会对框架有任何的依赖
大峡 但实际应用想过没?
calmness 你说说
大峡 玩玩Spring之八卦MVC框架与 “中庸”之道 http://myrss.easyjf.com/html/20060522/1187140214822294.htm 这是我一年前的想法 看到这里很多人一定会疑问,在前一篇演示webwork应用的文章中,webowrk都快被捧上天了,而现在你
又来推荐EasyJWeb,这不明摆着忽悠人吗?EasyJWeb这个轮子跟他们有什么区别及特色呢? 要回答这个问题,说来有点话长,这得从我们中华民族儒家文化中的核心思想,“中庸之道”说起
(中庸之道是本文中的一个主角,请大家鼓掌!)。“中庸者,以其记中和之为用也;庸,用也。孔子之
孙子思作之,以昭明圣祖之德也。”-《中庸》郑玄注;《中庸》中有说:“天命之谓性,率性之谓道
,修道之谓教”。怎么样,很多朋友看不懂是吧?谁叫咱们80后人注重素质教育,搞到连老祖辈的文化
思想核心都搞不懂。若长此下去,恐怕三、四十年后,咱们的后辈都将会看不懂也听不懂中文了。 什么是中庸?这里我用通俗点的语言看能不能解释一下。我认识一位大伯,他以前是知识分子,但
他因为他的知识而坐了10年牢,于是他把他儿子从小就带进了我们贵州最穷的山区里面,如今儿子变成
了文盲。另外我还听说有一个人本来住在南极的,但后来他说南极太冷了,他要搬到北极去住,到了北
极他才发现其实北极跟南极一样的冷。为什么会这样,因为他们不懂中庸。 再说现实一点,好比我们的有些朋友,刚出学校的时候什么都敢想、敢做,但在社会中若打拼一两
年,经历了一些挫折或失败后,就歇菜了。“梦想”、“激情”、“脚踏实地”可能被人利用过,我们
可能因此会犯错、吃亏,但那是“人”的错,不是“梦想”、“激情”、“脚踏实地”本身的错,我们
不能因此就变得没有梦想、没有激情、投机取巧、处处设防,做人得学会中庸。 还是没明白,对吧?那么说到Java技术上来就是不要因为有了类(Class)的存在可能会破坏我们面向
对象编程的精华,所以你就把类(Class)从Java中消除,而只保留接口(Interfaces)。同样的道理,
你不能因为Struts的action中的那四个讨厌的参数看起不爽,你webwork就把它们全部去掉,一个不留
。其结果就是过分的简洁、高雅造成了很多新人的都无法理解及领悟其中妙处的尴尬处境。为了给页面
传一个参数得翻遍大大小的接口API说明文档。本来一个简单的MVC你却暗藏那么多华丽的机关,跟我们
这些平庸的程序员玩起捉迷藏,有必要吗?有时还得学学人家ASP、PHP,就那么简单的几条语句,还不
一样搭建起了一栋栋赏心悦目的高楼大厦吗?这应该也算是很多Struts粉丝不喜欢webwork的一个原因
吧。 可以这么说,EasyJWeb的做法恰好就是得益于这个我们中华民族所独用的中庸思想,即要保持一定
的技术先进性(什么[I]OC、[A]OP、OX、拦载器等值钱的我们通通都要!呵呵),又要照顾广大的普通
代码“水泥”工人的应用及理解方便。
calmness 我觉得以纯粹javabean形式处理已经成为趋势,我们不应该再走老路,javabean是j2se的标准,有利于
以后的扩展,而且更有利于客户应用的移植
大峡 我以前的想法可能有点作古板了。 但是凭经验,在大多数项目里面,mvc这一层,基本上很少有普通的javabean
calmness 我这样想并非是一时的冲动,而是想了很久,一直依赖我都非常不喜欢struts这种方式,配置麻烦,维
护麻烦,移植麻烦,仅仅就是为了把MVC分得更清楚,但是事实上这种MVC的实现让我们在实际开发中烦
恼重重,在我第一次接触jsf的时候,它给我的最深印象就是没有了action,仅仅是javabean,让我看
到了更轻松的方式,而ibatis的petstore实现,一个action引导全局,处理都在javabean,又让我体验
到javabean的简单以及魅力,可惜我没领略过webwork,不管如何,我认为,没有必要再有action,或
者说action这个类应该由用户来定制,而非是通过继承
大峡 我更倾向于中庸。 EasyJWeb已经不需要继承了。 JSF是基于组件模型的,说起来更正统
calmness 我不太了解你为什么要中庸,这种中庸又带来什么好处?就是为了action看起来更符合习惯吗?使用
javabean一样可以做到,你喜欢的话你可以专门写个action,一样可以实现你的中庸方式 我这种方式并非是完全废弃原来的action,只是给了用户更多的选择,他喜欢旧的方式,一样可以很容
易的实现一个action
大峡 其实以前的想法是为了让新手更容易理解及使用。 中庸的目的是为即能满足高手们灵活多变的需求,也能方便低手理解程序。
calmness 但是我们要清楚,现在的新手再非以前那样以action开始了,可能很多新手最先接触的不再
是struts的方式
大峡 然后通过注释指定某一方法处理请求,可以是bean,也可以是action,什么都行,这样就减少了框架的
依赖,方便移植,而且也可以满足旧有的习惯,习惯用action的也可以自己写个action,只需要用注释
指定一个方法处理即可,而form呢就通过注释指定,对form没要求的话也可以不指定,这样就灵活好多
,而且也很简单,用户需要做的就是指定请求处理的一个类即可,其他的配置都不需要,基本通过注释
搞定一切,抛弃以前的配置方式 这个方式可以的。
calmness 而且最重要的是,struts的方式并不一定比这种javabean的方式更容易理解
大峡 现在的bean,像搞成<module path="/kkk" ref="kkk"/>类似的方式 。 其实你可以试着改改,然后通过这种方式来做一些小东西。看看怎么样方便?
calmness 其实对于这种方式还有一点我还没想到该如何去做的,就是如何指定请求的处理,通过配置又是我所不
愿意的
大峡 在启动的时候,扫描所有包 然后把注释转换成配置信息。 就可以了。可以一个配置都不要的。
calmness 这个方法我也想过,就是觉得太笨了,有没更好点的
大峡 更好点的就是用约定代替配置。。。
calmness 约定是可以考虑
大峡 以前tony说,也可以直接配置几个要扫描的包
calmness 通过URL映射约定
大峡 URL映射约定这个都已经有了的
calmness 现在可以通过URL指定某个action吗? 有了是什么意思? calmness annotation加上约定,不想写annotation就直接通过约定搞定,简单快捷
大峡 我是说,现在只需要加上扫描annotation这个功能即可实现你说的
calmness 至于1.4的用户,我想不用考虑了吧,既然使用这种方式就已经不需要考虑1.4的了
大峡 也可提供一个缺省的配置 就像现在处理easyajax那个action一样
calmness 这个就没必要了,反正也不会把原来的删除掉,1.4的用户要用的话,肯定就只有老老实实的一个一个
去配置了
大峡 calmness现在对EasyJWeb的代码应该很熟悉了吧?
calmness 也不是很熟悉,只是大概了解了一点,怎么了?
大峡 把代码熟悉了,我们的开发队伍才壮大啊。
calmness 这个倒不急,反正我现在先考虑一下刚才说的怎么做,也不会更新上去
大峡 你说的那个要实现起来非常简单的,应该就是一天的事情。
calmness 熟悉代码还不容易,来来去去就那些东西,这个不是问题,问题是该如何去做
大峡 要先把以前的熟悉了,我觉得才能更好的找到问题的所在。
calmness 这个当然,我一有时间就会看的,不过我觉得找问题更应该从使用角度去找,内部实现虽然重要,但是
最重要的还是用户体验 我发觉我们都太注重功能性的需求了,反而忽略了使用体验
大峡 恩
calmness 其实在这之前我请了公司的几个同事试着去使用easyjf了,他们看完试了下,一致认为复杂麻烦,这也
是我今天跟你们谈这些的主要原因
竹雨林风 那你把意见都反映出来。赶快跟大峡他们说。。。。
大峡 现在的东东确实一些东西显得复杂了。 但比较关键的是缺少文档
calmness 对于他们来说,使用这个框架很简单,但是他们认为麻烦是因为他们觉得这个框架并没有做到一个easy
的层度,不是缺乏文档的原因,而是远远没有达到easy
大峡 比如,要怎样才easy?
calmness 其实对于我们来说,这种框架,大概看一下demo就知道如何使用以及配置的用法,可是这不是因为它
easy,而是因为他很多地方符合我们思考的惯例,可是却扯不上easy,我跟你们之前都谈过easy的问题
,因为我觉得你们把easy和思考的习惯混为一谈了,简单来说把,让一个新手来学习easyjf和struts,
他会认为两个的难易程度是差不多的,但是你让一个会struts的人来看easyjf,他会觉得很简单,但是
这不代表是使用easy,而是对于有经验的人的理解easy
calmness 这就是我们目前要分清楚的easy概念 或者这样的easy符合你的中庸,但是却不符合使用easy 不知道你是否明白我的意思
大峡 所以要改进啊。你觉得呢?
竹雨林风 calmness 能把改进意见提出来吗?
calmness 改进的方式之前也说了啊,只是那是大概的设想,实际效果如何也要试了才知道 我主要就是认为按照旧的实现方式,那我们就避免不了这种伪easy 因为那种方式就注定我们一定要不断的配置,配置是easy最大的障碍 而目前来说解决这个问题主要方式就两个,一个是annotation一个是约定
calmness 对了,刚才你说开发的才四五个?但是网站上的成员很多啊,不会那么多就只有几个做开发吧?
竹雨林风 因为成员各自都在忙自己的事情,所以要重组。现在是一直没清理。
calmness 如果可能最好就是想到除以上两种以外的方式来解决,不过暂时我还想不到,呵呵,所以希望大家一起
想想 calmness 哦
大峡 EasyJF很多项目 EasyJWeb这个项目主力开发人员就4、5个
calmness 我们目前要做到easy,主要要顾及两个方面 一个是理解easy,一个是通过减少用户操作达到使用easy,现在easyjf只做到了第一点,第二点基本仍
然是在原地徘徊 理解easy可以通过一个好的文档搞定,第二点就需要一种新的实现方式来达到,这种方式是什么就需要
摸索了
大峡 第二点就需要一种新的实现方式来达到,这种方式是什么就需要摸索了 !!! 这一条说得很对
calmness 所以我第一天来论坛发帖我就说要创新,创新就是在这方面
大峡 我觉得这种方式好,其实另外一个人觉得并不好。 大家也赞同啊。
calmness 其实我不知道你有没有注意到,我在网上看到很多人对easyjf的评价,至少目前我还没看到有说它easy
的,当然,除了开发人员,呵呵,我不是故意刺激大家,这是我们应该正确面对的
竹雨林风 高手们觉得很简单。看两三个小时代码就会了。
calmness 我们认为easy是没用的,看论坛里到处都是问怎么用的帖子就知道了,实际上它并不easy
stef_wu easy有很多方面 入门容易不一定开发容易
calmness 2 至少对于easyjf来说,入门都不easy的话,那就谈不上easy了
stef_wu 有过web框架开发经验的人用起来肯定会觉得很简单
calmness 那是当然,你叫有经验的人去使用任何一个新的框架,基本都很easy
大峡 我觉得关于easyjf这方面,我们要多学学Microsoft
calmness 但是这就是easyjf所谓的easy吗?如果仅仅是这样,那还是改名字的好
William Raym EASY也要看从哪个角度来讲
stef_wu 你觉得rubyeasy么? 可能很多人觉得ruby入门都很easy, 为什么? 因为所有的人都可以在1分钟里面做一个CRUD出来。 但是他们入门了么? 没有。
William Raym 如果从一个连英文都看不太明白的人来学习一个新的框架,肯定要一定成本
calmness 事实上,rails不单入门easy,开发也easy,而我认为的easy就是入门和实际开发都easy,如果连入门
都做不到easy又谈何easy呢? 因为英文的关系而花费的成本那就是另外一回事了
stef_wu 而且, 就算做成全annoatation的话。 1,你认为现在有多少入门的人知道annotation?? 2,除非你是开发人员,不然你同样需要时间和成本来easy
William Raym 入门就EASY了,
stef_wu rails你觉得入门easy么?
William Raym 你指的EASY入门是什么,一看视频就能根着作出一个应用出来
stef_wu 你认为的入门就是能用脚手架做一个CRUD 的app么?
calmness 事实上不是我觉得,而是大部分人都觉得,当然除了那些连对象是什么都不知道的人
stef_wu 你知道要算rails入门你需要学完ruby这一个新的语言么。
calmness stef_wu你知道要算rails入门你需要学完ruby这一个新的语言么。 这是另外一种情况了
stef_wu 说rails入门了的人可能连ruby都不懂。。 如果你认为这个就是入门了, 那我没有话说, 我们用。net算了
William Raym 你假定RUBY都会了
calmness 这样争论是太主观了,应该换种方式来衡量
stef_wu 到论坛上讨论
William Raym EASY应该从用户使用上,我们封装了大部分常用的功能
stef_wu 这里聊完了什么都没了 论坛里能留点记录
calmness 或者应该拿使用成本来衡量吧,就用户的代码量吧,这个应该更实际点
calmness 帖到论坛,看看使用者的说法是最公正的
stef_wu 对, 那ruby确实简单, 一个命令一个CRUD就出来了, 那我也可以, 我用ssh,esh都可以
calmness stef_wu 对, 那ruby确实简单, 一个命令一个CRUD就出来了,
那我也可以, 我用ssh,esh都可以 既然可以做到,为什么不做呢?
…… 请大家继续讨论……
|