今天寫一下對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主方向是在事務控制上,由于容器做了很大的優化,所以用它事務會簡單些。當然說的事務是建立在不同目標上的,如在數據庫和消息隊列上做事務。
其實,做什么項目用什么技術不是重要的,重要的是人,用什么樣的心態來開發項目,不管用什么技術都能開發出優秀的項目來,相信這句話吧。
以人為本,是最根本。