欢迎来到天天文库
浏览记录
ID:6288998
大小:97.00 KB
页数:8页
时间:2018-01-09
《一种java快速开发框架地设计和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一种Java快速开发框架的设计和实现2007.1.14陈志武(zwchen,chenzhiwu@gmail.com)MiniFramework和业界已有的框架有什么特别之处吗?1你觉得MiniFramework能够真正提高生产率吗?1MiniFramework有哪些核心思想,或是原理?21、元数据编程32、领域对象的表示:Map和List33、Map和List对象的展现技术:JSTL34、Map对象持久化技术:Hibernate45、对象数据查询技术:SpringJDBCFramework46、业务对象BO的CRUD抽象47、敏捷开发过程4你在MiniFramework中选择框架的依据是
2、什么?4MiniFramework的架构,你能够大致描述一下吗?5用MiniFramework开发,它的驱动模式是什么?6MiniFramework现在很完善了吗?6你也知道,公司都是利润驱动的,MiniFramework对公司提高利润有那些帮助呢?7开发演示7这次,我采用对话,FAQ问答方式陈述,因为我觉得它更容易从用户角度去思考问题。MiniFramework:就是我指的框架,或者说一种思想,Mini的意思是精悍,也就是说开发量小,代码少,开发快。RoR:RubyonRails用Ruby语言写的Web开发框架,非常有潜力,号称比Java开发快10倍。SSH:Struts(Webwor
3、k)+Spring+Hibernate,JavaWeb开发最流行的组合。MiniFramework和业界已有的框架有什么特别之处吗?从JavaEE(J2EE)分层来划分,有分层和整合框架,譬如表示层的Struts,Webwork,JSF,持久层的Hibernate和IBatis,JDO。但整合的有Spring和PicoContainer容器。从开发角度来说,有整合和快速代码生成,前者如AppFuse和SpringSide,后者如JETEmitter。我认为,这两者都没有去解决软件开发的复杂性,更多的只是减少了一点敲代码的时间,而不是减少理解代码的时间,而后者远远大于前者。MiniFram
4、ework综合了上面两者,既是对分层各框架的整合,也是对框架的整合,但是,它会让你的代码量减少到原来的30%左右。更少的代码意味着可以更快开发和变更,更易实现敏捷过程。它是技术和过程的结合。MiniFramework框架用到了Webwork+Spring+Hibernate,但是,对于开发人员,它们更像是封装好的类库,这意味着你需要了解它们很少,我只用其中我认为最值得的地方。并且是你会发现新的用法,就如同Tapestry框架在html标签中设指令。MiniFramework是严格遵守MVC职责分离和分层架构的,并且很多都是自动的,譬如透明持久化,页面输入获取。遵循上面的约定,是因为我让它
5、们成为项目开发最佳实践。你觉得MiniFramework能够真正提高生产率吗?高质量的软件,有三个因素:Team、Technology、Process:高质量软件TeamTechnologyProcessTeam:MiniFramework可以让开发人员避开技术引起的复杂性,而专注于业务,并且节省培训成本。Technology:MiniFramework整合了流行框架最有价值部分,譬如Spring的事务处理和IoC,Hibernate的透明持久化,Webwork的control-view关系配置。Process:MiniFramework让J2EE快速开发成为可能,改变了J2EE不适合敏
6、捷过程的论断。敏捷,意味着快速开发,快速变更,快速响应需求。MiniFramework将会对整个项目开发周期和流程都有很大的改进。但是,客观的规律,如Brooks20多年前所说:“没有银弹”。MiniFramework只能解决次要复杂性(Accident),而不能解决软件本质(Essence)复杂性。原文如下:没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步。我认为,研究快速开发,必须先了解这个“没有银弹”理论。Brooks先生给我们提供了一些解决方案,很多现在都在用:技术方面:ØAda和其它高级语言ØOOP编程Ø人工智能和专家系统Ø“自动”编程
7、Ø图形化编程和IDE工具另外还有一些解决方案,我认为现在都在流行Ø购买构建vs自行开发Ø需求精炼和快速原型Ø增量开发Ø优秀的设计人员但是,大多数企业应用,特别是外包项目,软件的本质复杂性并不大,因为应用软件,特别是商业软件毕竟不同于系统软件,技术往往不是根本的障碍,而是背后的商业需求(怎样才能够最大程度盈利?譬如业务流程再造)。也就是说,我们可以避开“没有银弹”。关于语言对开发的影响,OO教父MartinFowler先生的“督导”和
此文档下载收益归作者所有