|
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-04-11
Godlikeme 写道 to lz:我的意见肯定是主观的,臆断呢,也肯定是有的,水平有限,代码草草看过,文档草草看过。要我给出很明确的建议,我想在没有感觉很有研究意义之前,没必要花时间去深入,这个就比较抱歉了。
代码质量的问题,举两个例子: 封装了一些没有用的RuntimeException 常量字符串不用常量定义。 框架代码没有测试代码是不可接受的。 仅仅是说了几个方面给个参考把。觉得合理就采纳,不合理就当是浮云飘过。 lz既然有信心,有目标要把这个项目开源做好,应该有足够的勇气接受别人的拍砖,当初Spring的Rod johnson不还和Gavin king 骂街呢么?呵呵。 代码质量的问题,举两个例子: 封装了一些没有用的RuntimeException 有没有用先不要早下结论,要从框架整体设计来考量,有机会的话希望一起讨论一下java异常处理机制。 常量字符串不用常量定义 事情上我是这样做的,可能有些地方没有疏忽了,但是是否常量来判别代码质量和性能,有点放大了。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-11
huangyh 写道 就看楼住那几个部署结构图就知道这东西有潜力,加油:)
|
|
| 返回顶楼 | |
|
最后更新时间:2008-04-11
williamy 写道 我就看了那麽幾分鈡,我給大家一個對比分析
1,struts通過一個servlet處理特定請求(*。do) 你的一樣,多了一些*。ajax的等等區分 2,struts需要在action配置中有一個requestURI對應action的地方,並且有一個return path,你的uri與action關聯的在webcontroller。xml return path的配置在webview。xml 3,我看到AOP裏面是一個在Action前/后處理的代碼,我覺得你是有權利把這叫做aop 我下載的是你的demo,沒發現mvc外的新技術,期待ing 当前Web框架主要有两大类,请求驱动和事件驱动。我的框架与struts、spring web和webworks都是请求驱动的,而且都是基于MVC模式的,所以形式上很相近也很类似。关于技术方面,其实我早就说过MVC框架的核心也就是50行代码,没有什么技术可言,事实上当前j2ee领域由于规范的公开化和技术成熟化,开发框架也没有什么技术可言。但是,由于需求的不同、设计理念和策略的不同,j2ee框架设计还是一个很有趣工作,也正是这样不断有所谓的新轮子产生。。。 耻远了,回到正题: 故此,PK Web框架之间技术新,意义不大。我们应该关注框架所带来的设计理念的不同。 在Beetle j2ee 框架的Web层子框架中,我关注的主要设计理念是: *标准MVC模式实现,明确的控制器、模型、视图界定。 我们强化和标准化MVC模式,看看编程接口: public abstract class ControllerImp { public abstract View perform(WebInput webInput) throws ControllerException; } 处理逻辑为Controller控制器返回是View对象,struts虽然也MVC,但是它的语义是模糊的。 *结构清晰、配置简单、便于扩展和维护 结构和扩展你可以参考下图(建议对比struts或spring mvc来看)
看过例子你也知道配置很简洁了,控制器是控制器,视图是视图,视图单独起来是为了视图可以被多个控制器重用。 当前流行0配置,实现这个功能也是5分钟的事情,只是我们认为配置文件对以后维护和权限控制有它实用意义。 *具备控制开发人员出现越界设计的能力 一般控制器的接口都暴露:如大家推崇的spring mvc ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception; 事实上给普通开发人员HttpServletRequest和HttpServletResponse两个对象我们认为是很不正确的行为,一个控制器只需要参数输入对象就可以了,何必还要处理Response等对象呢?程序的跳转不是框架负责的事情吗?!所以,这两个对象提供的那一大堆与业务编程无关的方法都应该屏蔽,要不程序员很容易产生歧义。因而,我们这里采取WebInput一个页面参数输入对象来替换到request和response,真对页面参数输入职责我们提供了一系列的getParameterAsXXX方法来方便输入数据转换。说多一句,在struts笨重的form所解决的页面数据绑定问题,对于 我们Web框架来说只是WebInput对象一个简单的getParameterValuesAsFormBean方法,例如: //自动数据绑定 LoginInfo loginInfo=(LoginInfo)webInput.getParameterValuesAsFormBean(LoginInfo.class); 而无效任何附加的配置和映射关系。 *功能强大,无缝融合当前主流的Web技术 这一点是很显然的,很多时候由于某个框架不支持某项功能,在一个项目中采取多种框架技术和组件,搞得编程和接口的风格都不一致,维护成本大为增加。我们的Web框架无缝糅合当前主流的开发技术,提供一致的编程模式、模型。 就拿ajax技术来说,当前struts与webwork等根本提不上,整合的很别扭。我们却不一样,对ajax提供强而有利的支持,就ajax这个模块而言,不比当前任何ajax框架逊色。(就Beetle Web 框架Ajax编程,可以参考笔者去年发表的文章《J2EE Web开发使用Ajax技术的核心所在》) 太晚了,不吹了,有兴趣可以参考本质拙作《J2EE应用框架设计与项目开发》里面详细说明了Beetle框架各个子框架实现的原理、机制以及设计理念。(借机做一下广告,版主不要删帖哦 至于,我们的Web框架有什么特色功能,呵呵,其实还是蛮多的,可以参考一下文档。 举个例子: 就运行时动态缓存控制器功能就是当前所以流行框架所不具备的。 (摘一下说明) 具体工作如下: 缓存策略的定义。即:缓存的作用领域是多宽。是针对整个Web应用(Application级)的缓存还是只针对某个用户的会话(Session级)的缓存。它们的缓存时间又是多少? 缓存控制器的配置及读取。在软件的开发过程中,我们有时很难界定哪些控制输出需要作缓存处理,即使知道,我们编写的代码也只能是硬代码,很难根据以后具体的运行情况而变动。所以,所有的缓存处理必须是透明的、可以根据具体的需求而灵活配置的。哪些请求结果需要作缓存,其缓存策略如何,完全由配置文件来描述。 BJAF Web框架的请求缓存描述都在WebController.xml的<caches>标签内装配,例如: <mappings> <caches> <cItem name="ShowStatisticsController.ctrl" scope="application" time="60"/> <cItem name="CacheDemoController.ctrl" scope="application" time="30" /> <cItem name="ShowContentController.ctrl" scope="session" time="30"/> <cItem name="SearchController.ctrl" scope="session" time="120"/> </caches> </mappings> 上面每一项为一条缓存策略的定义,例如第一项(条)表示为: 名称为:“ShowStatisticsController.ctrl”的控制器输出的结果视图内容需要作缓存处理;其缓存的作用域是整个应用(Application),缓存时间的周期是60秒。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-11
myyate 写道 稍微看了下编译过的framework,感觉和Spring的mvc类似,还有你的源码拉不下来,难道我设置错误?
看了楼上有几个人的回复真是恶心。如果lz上来就说这个是国外哪个论坛上出来的新框架,估计很多人都会说:我回去研究研究。但是一看是国人做的,上来不管37二十一,肯定是差。国外做的东西有的也恶心,看看axis1.0的代码吧,写的多恶心,现在axis2重写了。框架都有一个成长过程,为什么我们非得把它扼杀在摇篮中呢? |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-11
本人也是做过几年框架开发的 并且支持过几个国家级与省级项目 主要是地税大集中 我看完了楼主的WEB开发框架的文档,觉得很具有实用性 所以非常支持楼主的工作
我的msn是killer_lisi@hotmail.com 希望楼主有空交流交流 我没法下载到源码 BTW:我喜欢研究新技术 但只关注实用性 另外 我很鄙视某些崇洋媚外的开发人员 跟刚毕业的学生一样 言必称spring hibernate |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-11
看了部署结构图,表示支持.希望真那么易用,通用,可以结束我痛苦的J2EE开发..
|
|
| 返回顶楼 | |
|
最后更新时间:2008-04-12
codger 写道 本人也是做过几年框架开发的 并且支持过几个国家级与省级项目 主要是地税大集中 我看完了楼主的WEB开发框架的文档,觉得很具有实用性 所以非常支持楼主的工作
我的msn是killer_lisi@hotmail.com 希望楼主有空交流交流 我没法下载到源码 BTW:我喜欢研究新技术 但只关注实用性 另外 我很鄙视某些崇洋媚外的开发人员 跟刚毕业的学生一样 言必称spring hibernate 谢谢你肯定,有空多交流,如果源码下不了话,发个邮件(yuhaodong@gmail.com)给我,我打包一份给你 |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-12
mixo44 写道 看了部署结构图,表示支持.希望真那么易用,通用,可以结束我痛苦的J2EE开发..
Beetle的设计目标是简化j2ee开发。前面的朋友大多数关注Beetle框架的Web层子框架,其实Beetle的Business业务框架才是Beetle最为关键的核心。你从部署结构图可知,集中式与分布式开发对采取Beetle框架开发的系统来说是透明的,也就是说集中变分布不用修改一行程序代码。这里面Business业务层框架起了关键作用。你可以参考一下Beetle开发包里面的PetStore例子,它完全按照Beetle框架理念开发的,Beetle框架的表示层、业务层和持久层都使用上了。我的书的第9章完整说明了这个例子,第10章应用部署小节详细说明了部署方案的设计已经集中与分布式配置。如果你在深圳可以找我,有空的话给你演示一下,一起交流一下j2ee应用开发心得。关于企业级开发是我十分感兴趣的领域。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-12
我没去看楼长的框架,好坏不好评测。
但是按照一般的规律,刚出来的,版本低的,肯定有很多地方不成熟,需要改进的,希望楼长努力。 中国聪明的人很多,聪明的人想的也很多,想法也很好,但是去做的有几个,坚持不懈去做的几乎廖廖。 赞一下楼长,加油!!! |
|
| 返回顶楼 | |
|
最后更新时间:2008-04-15
"MPL协议规定的内容不太适合国内的法律"是什么意思,可否详细说明一下,我对这个很有兴趣。
|
|
| 返回顶楼 | |






