首页 | 公告 | 参考资料  | 教程 | 框架/设计 | 源码/下载 | 构件产品 | MyRSS | 博客 
简易java开源论坛->EasyJF专区
  版主:招聘中
 版面公告:Java新手提问及技术交流区,EasyJF有专人进行解答.
搜索 文章标题: 发表人:
[回复] [精华帖] [版主管理]
 主题:首次接触easyjf的一点看法 [收藏]
  [引用回复]

发现easyjf是在很偶然的机会下,看了大峡关于80前后的那篇文章,对于大峡,在技术方面我不太了解,不过我可以肯定他的文学水平必然很高,那篇文章给了我很深刻的印象,我也是80后的人,对于80前后的争论我也没兴趣,事实胜于雄辩,没必要去争论,反而我更感兴趣的是大峡这位技术和文学兼顾的朋友,于是毫不犹豫的来到了easyjf,也第一时间download了一份blog demo来看看,除了对大峡的兴趣以及对技术爱好的原因以外,更多的是对国产开源的一个向往,准确来说,我属于开源社区,我最多也只能算是开源项目的用户,然而我的内心却非常渴望能够用上中国的开源产品(我可是很爱国的哦),呵呵,题外话就不多说了,还是转入正题吧。
   下载完blog源码后,大概看了下easyjf的使用方法,看上去比较简单,上手也比较容易,我想这也是easyjf的核心思想吧,从名字就可看出了,呵呵。不过说实话,对于这个框架我个人感觉在整体的设计上并不好,源码我并没怎么研究过,我仅仅只是从使用的方式以及MVC结构的实现上来看,我想大多数使用过struts的人,都应该看得出来,easyjf在MVC的实现上与struts非常像,感觉就像一个模子刻出来的,我很佩服easyjf的朋友们有发展国有开源的勇气以及实践精神,但是我认为在easyjf的设计上,你们缺乏创意,其实struts本身在MVC模式的实现上就已经是缺陷多多了,其框架依赖度很高,不利于测试以及移植框架,而easyjf在这些方面大部分都继承了struts,应用对框架的依赖度很高,比之struts有过之而无不及,就拿blog来说,如果我现在想把easyjf的实现转换成JSF的话,难度就相对深了很多。struts的Action以及Form就是这些问题的根源,然而easyjf并没有从根本上解决这些问题,相反还尽可能吸取struts的这些缺点,这也是我首次接触easyjf所看到的,当然可能还不够全面。其实我个人更倾向于尽可能的少用action,因为在很多时候,程序员在编写action的时候,很难控制action的实现,我想很多朋友都有把一些业务相关的逻辑写在action的经验吧,也许朋友们会说,这是程序员个人的问题,但是我想说的是,作为框架的设计者,是否应该想尽办法让用户尽可能的少犯这种错误呢?action作为MVC的控制器,其主要的功能是用来控制流程的转向,而非是业务,所以我比较倾向于JSF那种方式,或者大家也有研究过ibatis官方的jpetstore demo,ibatis的jpetstore也是使用的struts,但是他在整个应用里只使用了一个action,而这个action的作用就相当于一个公用的转向器,除此以外没有任何的逻辑,而对于业务的处理都是通过javabean来实现,这种方式虽然还在验证中,但是我个人却非常喜欢,首先,这种方式尽可能的减弱了应用对struts的依赖,其次,业务逻辑的调用等一系列操作都是在javabean中进行,有利于项目的移植,如果我不想使用struts,而换成其他的框架,例如JSF以及spring 的web框架,简直就轻而易举,根本不需要太大变动,因为它的核心内容都在javabean里面,不过不要误会,不是指业务的具体实现在bean里,而是通过bean对service进行调用,不管如何,这种struts的用法,在一定程度上解决了struts原来的缺陷,和JSF的方式比较像,我并非是说这种方式一定最好,也许有更好的方法,但是这需要设计人员去构思,去设计,而不应该去照搬模式,不考虑对方的优缺点,更应该加入自己的创意,软件开发就是艺术,不仅仅来自于深厚的技术根底,更来自于灵光一闪的创意。
   讲了这么多废话,希望朋友们能够看懂以如此粗略的文笔所写的文章吧,呵呵,没办法,俺文笔太差,可不能和大峡比,再加上对easyjf只是粗略的了解,所以有不对的地方请指正,在此,对于诚心开发国产开源产品的朋友本人表以无比的尊敬,有你们才有国有开源的未来,也许你们还不成熟,但是只要有心,成功是必然的,有机会的话,希望能和各位共同作战。
 楼主:calmness 2007-04-10 19:57:18.03
 
  [引用回复]

楼主所所的有些道理,但是我感觉您说的这种无依赖是任何框架都不可能做到的,框架的本身就是几个封装,你没有你所说的action,但是您的service中肯定有你作用框架的依赖,绝对不可能象您说的那样没有任何依赖,那样的话框架就失去了它存在的意义了!
 发言人:218.25.60.254 楼层:1  2007-04-08 14:41:57.75
 
  [引用回复]

   发现easyjf是在很偶然的机会下,看了大峡关于80前后的那篇文章,对于大峡,在技术方面我不...

  EasyJWeb的目标是让Java Web应用变得简单易用,呵呵,之前我曾经提出过一次中庸mvc的想法,http://www.easyjf.com/html/20060516/1156580910166371.htm,这也是之所以我们要做一个MVC的原因之一,主要是mvc根据应用场景的需求复杂多变,无法形成某一个框架一统天一的局面,因此我觉得我们从简单的mvc入手,也许会有一些机会.
  当然,前期发布的一些EasyJWeb示例,如blog、论坛等,从整个设计及构架上确实有非常多的不足,比如,就如楼主所说的很多业务逻辑代码写在action中。因此没能很好的体现EasyJWeb的优势。最近正在用EasyJWeb+Spring+JPA做一些项目,感觉还是不错的。当然,在做的过程中有完善了一些功能,比如灵活的容器支持、全自动的依赖注入等。
  关于依赖的问题,我的观点更多是具体的设计及构架的问题。当然,我非常赞同楼主的观点,一个好的框架应该能给用户一种好的基础设计,让用户在做具体应用于的时候更少的犯错。EasyJWeb当前还有很多没完善,一个原因也是由于参与的人员及时间有限,另一个原因是缺乏大家的建议及反馈.
  最后,非常感谢楼方的建议,我们一定会在以后的示例及设计中改进,当前一个重点是推出1.0版本,并完善文档,改进示例,把EasyJWeb的优势体现出来.
 发言人:大峡 楼层:2  2007-04-08 15:30:21.75
 
  [引用回复]

BTW:
  希望我们能有更深入的探讨及交流.
 发言人:大峡 楼层:3  2007-04-08 15:34:55.03
 
  [引用回复]

首先要感谢楼主对开源的支持。
我也来发表下我对楼主帖子的一些看法:
楼主说到:

大家也有研究过ibatis官方的jpetstore demo,ibatis的jpetstore也是使用的struts,但是他在整个应用里只使用了一个action,而这个action的作用就相当于一个公用的转向器,除此以外没有任何的逻辑,而对于业务的处理都是通过javabean来实现,这种方式虽然还在验证中,但是我个人却非常喜欢,首先,这种方式尽可能的减弱了应用对struts的依赖,其次,业务逻辑的调用等一系列操作都是在javabean中进行,有利于项目的移植,如果我不想使用struts,而换成其他的框架,例如JSF以及spring 的web框架,简直就轻而易举,根本不需要太大变动

我认为,既然struts那么有侵入行的一个框架都能通过自己的设计(强调的是应用设计者的设计)来让对struts的依赖更少,那我就说,对于EasyJWeb来说,根据自己更优秀的设计,完全可以只在MVC层对EasyJWeb有一定的依赖,而这个依赖只存在于页面的合成策略上。

而且楼主谈到了一个javabean的结构,
那为什么不把这些业务bean放在spring里面管理?放在XWork容器里面管理?
实际上Easyjweb就是通过自己的一个微容器来达到对Action的注入(你可以为其配置spring容器,guice等等)

拿一段代码说话:

private IBBSService service;

   public void setService(IBBSService service) {
       this.service = service;
   }
public Page doFirstPage(WebForm form,Module module){
       User user=UserContext.getUser();
       form.addResult("user", user);
       form.addResult("totalMember", this.service.getTotalMember());
       form.addResult("todayNum", this.service.getTodayNum());
       form.addResult("totalTopicNum", this.service.getTotalTopicNum());
       form.addResult("yesterdayNum", this.service.getYesterdayNum());
       form.addResult("totalNum", this.service.getTotalNum());
       form.addResult("newMembers", this.service.getNewMembers(5));
       form.addResult("newTopicList", this.service.getNewTopicList(10));
       form.addResult("newReplyTopicList", this.service.getNewReplyTopicList(10));
       form.addResult("hotList1", this.service.getHotList1(5));
       form.addResult("hotList2", this.service.getHotList2(5));
       form.addResult("topDirList", this.service.getTopDirList());
       return module.findPage("firstPage");
   }
可以看到,在这个重构了官网bbs那个FirstPageAction后的action的效果,真正把mVC变的很薄。

实际上,blog的主要问题是设计问题,实际就是业务的方法粒度问题,而和框架的关系我觉得不是很大。

这个是我的一点看法。
 发言人:stef_wu 楼层:4  2007-04-08 15:35:01.75
 
  [引用回复]

stef_wu的想法我很明白,我也很赞同你的观点,应用依赖主要还是取决于用户的设计,作为一个框架,更应该具备让用户在设计选择性更广泛的基础上,struts本身的设计决定了其大部分的应用都是基于大量action的实现,然而用户也可以通过特殊的实现来达到特殊的效果,就像ibatis的实现那样,我想这是一个框架的基本素质,对于easyjf,从strf_wu给出的例子可以看出,它也一样具备这样的素质。

   不过我所想表达的是,这种struts的通用实现方式至少在我看来不是很好,如果各位都有所认同的话,是否能够改变一下传统的action+form的实现呢?或者说让用户在使用的过程中,能够把这种实现以外的更好的实现当作是easyjf的大众化实现,而非是action+form作为easyjf的大众化实现,这就涉及到easyjf在MVC实现上的创新了,我觉得easyjf应该尝试用创新且更合理的方式进行MVC的设计,这无论是在技术上还是在推广上,都会更加有利,否则大家都只会看到类struts的easyjf。如果仅仅拥有在易用性上的特点,我认为easyjf还不如做成类ROR的实现呢。
 发言人:calmness 楼层:5  2007-04-08 17:02:52.967
 
  [引用回复]

对了,顺便提一下,我也打算加入easyjf,已经加了竹雨林风的qq,不过没反应,麻烦大峡处理一下。
 发言人:calmness 楼层:6  2007-04-08 17:12:12.03
 
  [引用回复]

学习!啊
 发言人:218.3.207.204 楼层:7  2007-04-08 17:36:18.717
 
  [引用回复]

我想你要说的意思是不是说需要在框架级别来限制使用者遵循一个良好的设计规范?
就像Webwork那样么?只有一个空参数的execute()方法?
 发言人:stef_wu 楼层:8  2007-04-08 18:15:59.11
 
  [引用回复]

实际上在我使用easyjweb的时候,
我能发现一些很有闪光点的东西,


我觉得MVC(特别是基于请求的MVC)在框架的机制上要有重大的突破是不太现实的,
关键的更容易使用和一些更优秀的细节考虑上。看看spring的mvc实际上还是那么一回事,更多的是一些闪光的地方,比如反射的命令对象等等。
 发言人:stef_wu 楼层:9  2007-04-08 18:33:55.67
 
  [引用回复]

刚好相反,我希望的是能给更多设计选择给用户,不过不管选择如何多,总需要有一个作为主要的选择,而这个主要的选择不应该是类struts的,而是应该属于自己的创新。
 发言人:calmness 楼层:10  2007-04-08 18:21:22.593
 
  [引用回复]

MVC这种模式未来是否会被抛弃姑且不去论它,但是我想作为软件的设计,我们是否应该考虑更多的可能性?我想我们最缺乏的就是这种充满天马行空般的创意,像ROR这个框架,它约定成俗方式并不是没有人想过,然而却并没有人真正去实现,最终让ROR先拔头筹,成就了ruby,stef_wu你认为在框架机制上的突破不太实际,但是我认为这种想法就已经限定了你的思维。
 发言人:calmness 楼层:11  2007-04-08 18:27:49.0
 
  [引用回复]

那我想问一下楼主,
你认为目前在基于请求的MVC框架中 你认为哪个框架在创新上是最大的 ,而且是最不类struts的?
 发言人:stef_wu 楼层:12  2007-04-08 18:41:01.483
 
  [引用回复]

呵呵,不知道你说这话是气话呢还是什么,struts存在就必然有它的道理,它也确实有很多值得借鉴的地方,无论是JSF,springweb还是webwork等,都有借鉴struts的地方,但是你仔细来看看,却可以看出他们虽然借鉴自struts,但是他们本身在设计理念上与struts却完全不同,而在easyjf我所看到的,却并非如此,配置变了,action和formbean的继承变了,然而用来开发的思路却和struts如出一辙,仅仅因为更快速了吗?就如此而已吗?这样足够吗?也许因为我对easyjf的研究还不够深入,还未能理解到easyjf的精髓,我也仅仅只是给出自己的看法,我并没有诋毁easyjf的意思,希望你能够理解。
 发言人:calmness 楼层:13  2007-04-08 19:20:57.217
 
  [引用回复]

还有就是,我所谓的创新,并非只是在明显的技术实现上的创新,更多的是来自于带动用户设计思路上的创新,JSF让用户把重心放在了view上,而spring让用户把传统的查找注入转换到set或构造子注入,hibernate让用户在进行数据持久时更多的考虑对象而非是表,这些框架都从思想上根本的改变了传统的方式,这才是他们真正的不同所在,easyjf带给了我们什么改变?我想这是很重要的。
 发言人:calmness 楼层:14  2007-04-08 19:27:30.14
 
  [引用回复]

首先我没有生气哈~~这只是讨论而已,不会生气的。


第一个问题,你说到:
无论是JSF,springweb还是webwork等,都有借鉴struts的地方,但是你仔细来看看,却可以看出他们虽然借鉴自struts,但是他们本身在设计理念上与struts却完全不同,而在easyjf我所看到的,却并非如此,配置变了,action和formbean的继承变了,然而用来开发的思路却和struts如出一辙。

首先我要对这个说法产生一个疑问,难道你觉得除了JSF(基于事件的MVC)之外,SpringMVC和Webwork在开发思路上和struts有多大的不同么?
这个是一个基于请求的MVC模式的问题。
其次,Easyjweb的设计理念和struts不一样,Easyjweb目前的重点在于简化MVC层的开发,就是说要把MVC层变得更薄。更看重的是如果要把MVC层的设计变得更好(比如之前提到的javabean和容器的问题),那么该做什么?我们给的答案就是很容器的更好的结合。
说到这里,你可能又在想:

而spring让用户把传统的查找注入转换到set或构造子注入
但springMVC确实存在使用过度复杂的问题(我认为来源于他的过度设计,不知道这样说有没有错)
所以,Easyjweb想带来的理念就是:
让MVC更简单。
包括Action的配置的更简单,Action里面的service的更简单,切换容器更简单,
处理请求更简单,查找页面更简单,使用Ajax更简单。。。

我们现在要带动的用户设计思路上的创新就是要让使用者遵循更好的设计思路:
让MVC更薄。

我一直提到让MVC更薄,这个真正的思想在于只让MVC层干他该干的事情。
 发言人:stef_wu 楼层:15  2007-04-08 20:20:10.187
 
  [引用回复]

我觉得更要做的是帮MVC层找到他在J2EE最佳的位置。
这个表现在对上层(比如Ajax)
对下层(比如容器)的更好的结合。
 发言人:stef_wu 楼层:16  2007-04-08 20:26:17.953
 
  [引用回复]

对于easyjf一直所推崇的简易开发,我觉得这个很重要,确实比起struts这些旧有的框架更容易些,先不讨论是否合理,就拿简单来说,我认为最简单的莫过于ROR那种约定重于配置的概念,那easyjf为什么不做成ROR那样呢?配置虽然少了,但是仍然是需要配置,有配置就注定有一定的复杂性,既然以简易为主,是否能把配置完全省略呢?别说easyjf也提供不需要配置的方式哦,easyjf所谓的不需要配置我想对于复杂点的应用来说好像有点难度吧,而且看目前easyjf的情况,你们确实是在进行简易的设计,然而并没有完全抛弃配置,我觉得easyjf可以考虑丢弃配置,使用约定。这样能更简单,java的GRAIL就是一个仿ROR的框架,我在想,easyjf难道比GRAILS更容易???如果easyjf把核心放在easy上,那么你们真的能做出比ROR或者GRAILS更easy的框架吗?
 发言人:219.131.209.122 楼层:17  2007-04-08 21:18:18.627
 
  [引用回复]

在此说明,我并不否认你们能做出更easy的框架,但是就目前easyjf的设计理念来看,很难。所以我觉得easyjf应该改变,否则等到正式版本发布的时候,easyjf比GRAILS这些框架还麻烦很多,那还是真的easy吗?
 发言人:219.131.209.122 楼层:18  2007-04-08 21:22:04.14
 
  [引用回复]

在此说明,我并不否认你们能做出更easy的框架,但是就目前easyjf的设计理念来看,很难。所以我觉...

  呵呵,看来路还比较长,楼上的觉得easyjf应该如何变?能不能谈谈您的想法呢?.这里我随带介绍一下我对easyjf的认识.
  EasyJF是想做成一个开源组织,是一个交流的第一语言、代码注释是汉语的开源组织。EasyJF当前下面的开源项目主要包括两种,一种是基础框架性质的。比如上面几位讨论的EasyJWeb,这是一个mvc框架,还有一个EasyDBO,打算做成一个超轻量的orm。另一种是开源产品,比如云淡及动物园的猪了们组织开发的EasyCMS,以及上周在北京开会讨论准备要帮的EasyPortal等。当然除此之外还会开源一些小示例应用,比如大家现在看到的论坛啊、blog啊什么的。
 发言人:大峡 楼层:19  2007-04-08 21:34:23.953
 
  [引用回复]

可能又要打击你一下了 ^.^。
第一,Easyjweb确实提供了直接注入Action中的service对象功能,
并且Easyjweb一直支持使用ROR格式的请求来去掉Action的配置,
还有,Easyjweb也支持Page的约定查找。

第二,
从我个人的观点来看,
完全的使用约定代替配置也并不是一件好事情,
特别是在灵活性上,
为什么我的Action必须要取这个名字。。
为什么我的page必须要放在这个目录下。。。

来看看JPA中的一个例子:
在JPA中大量的使用了默认的列名,
但同时都提供了一个name属性来显示的指定列名,
又比如Embeded标签,同时也提供了一个AttributeOverrides来重命名名字,
这都表明了我的一个观点:
如果同时提供约定的配置和用户的手工配置,难道不比只提供约定配置更有优势么?

——stef
 发言人:222.131.0.254 楼层:20  2007-04-08 21:36:57.67
 
  [引用回复]

呵呵,没办法,没有深入研究easyjf,所以不太了解easyjf提供有约定的特性,easyjf能提供两种方式我认为是非常好的,我很赞同,在此也就不多说了,等我仔细研究一下easyjf再来跟你讨论,呵呵。对了,怎么加入团队啊?我加了竹雨林风的QQ,却没反应。
 发言人:calmness 楼层:21  2007-04-08 21:44:18.717
 
  [引用回复]

开源的路当然漫长,不管如何,肯走的人就值得尊敬,至于easyjf该如何改变,我想这个问题我还没有资格来说,你们比我更有资格,以上给出的任何看法也是比较粗浅的。我也需要时间来了解easyjf。
 发言人:calmness 楼层:22  2007-04-08 21:53:11.017
 
  [引用回复]

呵呵,没办法,没有深入研究easyjf,所以不太了解easyjf提供有约定的特性,easyjf能提供...

  竹雨林风这两天可能去哪儿度周末了,呵呵.您先从svn checkout一下最新的EasyJWeb代码,或者是看一下你最想参与项目的源码,然后可以试着把您的想法,通过使用代码的方式或者文档的方式表达出来.
  可以先熟悉熟悉,开源嘛,都是自愿的,不需要搞一个隆重的宣誓仪式才算加入.只要这个项目中有你写的代码,你也就是他的开发成员之一了.贡献越多,对团队的作用肯定就会越大.另外,也欢迎加我的msn,有空时,大家多交流.caishiyou at hotmail.com!
 发言人:大峡 楼层:23  2007-04-08 22:00:29.377
 
  [引用回复]

希望能有更深入的交流,
my qq:
20997123


——stef
 发言人:222.131.0.254 楼层:24  2007-04-08 22:15:11.61
 
  [引用回复]

呵呵,好的,我水平有限,希望能多向各位学习。
 发言人:calmness 楼层:25  2007-04-08 22:25:17.36
 
  [引用回复]

呵呵,好的,我水平有限,希望能多向各位学习。

客气了哈,术业有专攻,更何况我们都没有太多的时间去了解所有的东西.就跟你说的一样,方向肯定首先要找对.

当然如果我们在做一件事情的时候,对结果非常看重的话,那一定要非常的小心谨慎了.
不过如果从学术研究这个角度来说,我觉得过程更重要,当然难免走一些弯路了.

在国内做开源,我觉得环境很重要,不仅仅是学术环境,还有就是软件产业这个大的生态环境都有不少的问题。因此,在这样的环境中做开源,我觉得心态非常重要,我非常欣赏EasyJF中一些朋友平淡的心境。

就前面我看大家讨论的来说,我觉得在一个企业级的b/s应用中,mvc这一层很就应该很简单。当然不仅仅是简单的进行开发,还需要有一个稳定坚实的基础平台,就好比建房子的地基一样;另外还需要能简单的维护、扩展。而这些就是我们需要把JavaEE应用进行分层开发的原因,虽然你觉得他很复杂、有时候很麻烦,但以后维护、扩展起来,确实很方便,从一个长远的角度来看,会给用户及开发商都省很多事儿。

EasyJWeb的设计存在一些问题,这是肯定的。但要说其没有创意地完全是模仿struts,这难免有点牵强。曾经有不少人说这个框架就是Spring MVC的翻版,也有不人说是通过webwork上改的,当然也有不少说非常像struts,甚至有人说Ajax部分直接把dwr的名字换成EasyJWeb,当然还有对rails了解的人说EasyJWeb中的Module、快速代码骨架生成、约定代替配置等,都是抄rails的。我一直参与这个项目的书写,有一些东西确实借鉴了这些项目的,也有很多设计是巧合相似,呵呵。EasyJWeb的初衷是想吸呐一些框架的精华,但现在也担心因为吸呐别人的太多了,没有一点自己的特色,这也是我们所担心的一个问题所在。
当然,好消息是,在差不多一年的摸索中,我们感觉也慢慢有点谱了,希望大家能按这个路做下去,像calmness说的一样,做出自己特色,当然也希望更多热爱开源的朋友能参与进来。
 发言人:大峡 楼层:26  2007-04-10 01:28:52.467
 
  [引用回复]

哈哈 我也忍不住想讲几句。
1年前,我非常疯狂的喜欢spring velocity webwork struts ....只要是开源的
我都忍不住去试着用用。我也在很多项目中使用一些开源技术,其结果是大家怨声多
于表扬。其实不是这些技术不好,是我们不会合适去应用。
我一直在思考一个问题.是不是我们太热衷于“实现”而忘记了“设计”,我最近几
天的思考的问题是:“jsp+javabean”其实也是个好框架,关键在于你如何去应用
好设计模式。
 发言人:abc 楼层:27  2007-04-10 01:38:28.577
 
  [引用回复]

哈哈 我也忍不住想讲几句。
1年前,我非常疯狂的喜欢spring velocity webwork...

再好的技术,再好的框架,再简单易用的东西,肯定都有一定的门槛,都存在一定的学习曲线.框架封闭了很多底层的东西,尽管其没有限制我们在框架中自己应用一些底层的,但大多数时候我们仍然不知道如何着手.
"大家怨声多于表扬",之所以这样,我觉得还是他们对框架的核心掌握得不透彻所至.程序员的一个成就感及自豪感,来源于程序员自生对系统,对电脑的一种控制力.也就是:"我想让他干嘛就干嘛".普通的jsp+javabean,这是最简单的.当然也最容易“控制”.尽管控制他做的事情可能并不强大,写出的东西有可能难以维护、扩展,但始终是“控制”了。因此,大家很喜欢。
而使用其它框架,很多基础的控制交由了这些框架处理了,尽管这些框架提供了很好的基础平台,好的设计模式供我们使用,但需要我们首先对他有一个比较深入的理解。否则就谈不上控制,只能照猫画虎般的照着做.一但程序出来的不是我们想要的东西,一但人机交互的语言出现偏差,很多时候就让我们无能为力.因为,不是所有使用的这些框架的人,都熟悉这些框架的原理及内核,都能控制这结框架工作.

总结志来就是:再好的屠龙刀,只有我们对其非常熟悉、并对其有一种控制能力以后,使用起来才会得心应手,否则更多的人宁愿选择使用自己砍的木棍,虽然威力差一点,但于少能用他来把一些阿猫阿狗或者是街头混混唬住.当然,也有练到手中没刀,心中有刀的,比如小马哥,此时选择使用什么都无所谓了.
 发言人:大峡 楼层:28  2007-04-10 09:34:29.86
 
  [引用回复]

[QUOTE]哈哈 我也忍不住想讲几句。
1年前,我非常疯狂的喜欢spring velocity ...

呵呵,我也再来说下
小马哥说jsp+javabean,我就想起了上次看的一篇文章说巴西全国最大的项目不是用的EJB,也不是用的spring,用的就是jsp+javabean。

但以我的愚见,
我觉得就算该项目使用的是jsp+javabean,
其本身的基础代码已经能算上一套新的框架了。

我觉得框架有大有小,
像实现一个Factory模式+Singleton——在阎宏的《Java于模式》中 ,
他给的那几个代码骨架我们都能称之为框架。

重设计,
jsp+javabean得到的仍然是一套框架,
你说struts不是jsp+javabean的么?
其实就是一实现了MVC这个模式的jsp+javabean框架嘛。

框架能潜意识的让你遵循一个优良的架构,或者说框架提供了实现某个优良设计的骨架。
我觉得这个才是框架的用处。

——stef
 发言人:222.131.2.5 楼层:29  2007-04-10 10:48:24.483
 
  [引用回复]

[QUOTE]哈哈 我也忍不住想讲几句。
1年前,我非常疯狂的喜欢spring velocity ...

大峡的说法我深有感触,想当初第一次接触mvc框架struts的时候,学了几天,虽然只会一些基本的用法,但是总是想了解它的内部结构和原理。于是没学几天struts就开始看它的源代码,似乎浪费了很多时间,呵呵。
abc说的“jsp+javabean”,我也赞同stef的观点,easyjweb我想最初的版本也是大峡在平时的开发中形成的框架。
 发言人:天一 楼层:30  2007-04-10 11:18:15.67
 
  [引用回复]

呵呵,没办法,没有深入研究easyjf,所以不太了解easyjf提供有约定的特性,easyjf能提供...

请问calmness,你的QQ是多少?
 发言人:竹雨林风 楼层:31  2007-04-10 13:45:26.25
 
  [引用回复]

一个好的应用,将其的理念+实现抽取出来,就是一个好的框架,框架是为了让开发人员能够更容易的组装应用,而作为想开发框架的团队来说,也许更应该从实际应用中慢慢实践,发现问题、寻找解决方案,最终产生对问题领域的公用解决方案,而这就是真正好的框架产生的过程,所以应该以应用为基础去设计框架,而非是为了框架而设计框架,实践出真知。
 发言人:calmness 楼层:32  2007-04-10 20:01:04.437
32条回复 共1页,目前为第1 分页: 
[精华帖] [刷新]
 请在下面输入回复信息

表情图片
(加入心情图标)



内容:
相关图片: 各图片之间用逗号隔开
相关附件: 各附件之间用逗号隔开
用户名: 您还没有[ 注册]或[登录
 

Aboutus | 联系我们 | 程序开发 | 网站地图 | 留言板