Posted on 2006-09-09 20:53
兵临城下 阅读(365)
评论(2) 编辑 收藏 所属分类:
Java EE
好久没有更新我的blog了!呵呵!最近比较忙!
进入公司用已经整整5个月了,最近完成了项目升级版本中一个新增功能,做完以后现在回想起来,感觉很简单,没做什么,可当时做的时候怎么就感觉那么复杂呢!(当初的开发和后续的解bug,确实花了不少精力)
通过这次的开发,对公司这套系统架构有了一个大概的了解,和大家讨论共享一下:
公司是做银行金融软件的,客户主要面向国外(如亚洲的渣打银行)。这套系统给我的第一感觉就是:自己发明了“轮子”。(看来公司还是有一点底蕴的)
Rod Johnson说不要重复发明“轮子” ,可我好像看到了一个新“轮子”。这个系统也是建立在J2EE的平台上,但比较特殊,不是常见的web系统,它是一个参数配置系统,web中的所有业务元素都可以由配置文件来控制。在web程序之外,还有一套用Java Swing开发的配套软件,对于不同的业务做不同的配置,生成一套参数供web使用。(灵活性相当大)
结合MVC来讨论一下这套系统:(系统分为web端和AP端)
MODEL(AP):看来J2EE中Enity Bean确实有很多诟病,公司没有采用任何的ORM,而是直接通过SQL语句与数据库交互。但使用了Session Bean(stateless) 来做facade,封装DAO层,来实现持久化逻辑。大概框架如此,不过其中为了实现分层,还有很多的control层和实现层。我还没彻底理解就不说了。
VIEW、CONTROL(WEB):公司系统的view层没有采用任何的开源框架,所有的动态逻辑都是通过Tag来实现的。其实和struts一样,只不过struts是写好的Tag,而我们是用我们自己写的Tag,虽然比较复杂,但控制的粒度精细,是struts所不能比的(不是贬低struts,只是在粒度方面,struts确实不怎么样)。
有一点我要说的是状态管理。公司系统并没有使用J2EE中的有状态的Session Bean,而是把所有的状态都保存在httpSession中,网上看到一些文章说,Session中存储大量的信息会增加服务器的负担,不知道公司在性能方面是怎么考虑的。我觉得状态管理是个很头疼的问题,就是SSH架构中,Spring也不能管理状态,我知道的就是J2EE中有状态会话Bean是一个管理状态的组件。把状态信息存储在Session中使用起来确实很方便,但server要维护这个状态就很耗资源了。
还有一点就是,公司系统中大量的使用了JS,因为我对JS不熟,所以让我写JS比较头疼,留下的印象比较深。我曾经问过我的一个朋友,问他公司的系统中JS的使用程度,他的回答是:能不用尽量不用。所以我现在比较疑惑,对JS的使用是不是有一个度的问题呢?
还有一点,我前面说过了,我们公司的系统是一个参数配置系统,配置一个应用需求,有一整套参数,都是XML文件。所以在系统中的数据交互都是通过XML来组织的(也就是通过DOM)。比如说,当一个用户登录后,会从数据库和配置参数中读取这个用户的相关信息,存储在DOM中,然后伴随这个用户的整个会话周期,交易的状态和信息都可以从这个DOM中读取。以前在学习XML时,书中总是说XML是组织数据传递数据的,当时不理解,现在总算明白了!呵呵!
说了很多,只是一个初步的了解,欢迎各位网友发表看法!
好了,不说了,刚下了部电影,看电影去了!呵呵!