今天写一下对JAVA一些技术的选型上边的一些感受。
今天的JAVA已经相当的复杂了,刚入门的新同志可能真的有点找不到北的感觉,框架满天飞,JDK版本不停的升级,唉,让人目不睱接啊,晕啊。
那我就从软件不层次开始说起吧。
一、前端WEB层
这一层是最热闹的一层了。不光是框架多,而且在网上讨论的也是最多的。MVC是现在主流,不过最近的事件趋动也空前的高涨。
MVC的代表就是大名鼎鼎的STRUTS了,当然还有基它的像SPRING的MVC也是精典之作(我比较喜欢,嘻嘻)。
而事件趋动的就是以JSF为代表的了,还有像Tapestry 等,也是优秀的品种,它们以组件式的开发为主。
在为项目选型时,我们该选哪一个呢。头大啊!!
我自己的观点:
1.项目是网站型的项目还是业务型项目。
网站型的,访问量大,受网络速度的影响大。我感觉像事件趋动型的框架就不太适合它,必竟这样的框架比较复杂,在运行的过程中生成的对象比较多,网络传输的数据量大,这样在大的访量的情况下势必会对中间件服务器造成大的影响。这样的情况用STRUTS这样的轻量型的前端比较合适,或都干脆用JSP也行,或是用一些模板的语言框架也不错。这样一来,我们可以完全控件客户端和服务器端传输的数据量,做到尽可能的小,减少服务器的负担。
当然也有其它的办法了,在网站的建设中,最常用,最好用,最有效的办法就是静态化和缓存了。在此不再讨论。
如果是业务型的项目,最好是用事件型趋动的。因为像JSF之类的,都是以组件开发方式注称的。对业务开发来说,变得大多是业务流程,前端展现基本一样,所以自己公司可以根据自身的需要开发一些常用的组件,到时开发起来那是得心应手啊,速度自然提上去。而且像这样的软件大都是局域网内使用,即使是外网,大部分也是专线,应该不会有网络传输的问题(如果有那自然应该考虑MVC,哈哈)。
二、中间层
这一层的框 架比较少,一般是采用SPRING做为中间层。当然还有很多其它的框架,我这里就不说了。
中间层啊,对于一般程序员来说可能都不太习惯用。一般或者说没有,或者说是自己写。
用SPRING这样的中间层的好处有很多,这些在网上有很多的介绍。
对于我来说,我感觉最大的好处就是对业务对象有了管理的容器了。这样一来在代码中就不会有那些NEW了,少了NEW,也就少了对象,少了对象也就少了垃圾回收,少了服务器的负担。而且管理起这些业务类来也方便多了。
当然如果不用中间管理的话,完全可以用NEW来代替,小的项目,类比较少的话,也不是不可以的,而且现在虚拟机的回收机制也非常的高效了。或者自己用工厂模式和单例模式自己写一个简单容器也花不了多少的代码。
三、持久层
这一层简单的就是JDBC,现在看似有着一统江湖的HIBERNATE,还有我们不太常碰的EJB,JDO什么的。
JDBC是个好东西,初学入门都是从它开始的,如果公司想快速展开工作,用它最适合,基本没有学习的成本。而且容易控制,做网站型项目的首选。
如果你不怕学习,用EJB,HEBERNATE吧。EJB是超烦业务类型用的,EJB主方向是在事务控制上,由于容器做了很大的优化,所以用它事务会简单些。当然说的事务是建立在不同目标上的,如在数据库和消息队列上做事务。
其实,做什么项目用什么技术不是重要的,重要的是人,用什么样的心态来开发项目,不管用什么技术都能开发出优秀的项目来,相信这句话吧。
以人为本,是最根本。