當前位置:才華齋>計算機>java語言>

Java架構設計和開發中的小技巧

java語言 閱讀(1.43W)

架構是在元件,彼此間和與環境間的關係,引導設計發展原則中體現系統的基本結構。軟體架構是軟體產品、軟體系統設計當中的主體結構和主要矛盾。任何軟體都有架構,哪怕一段短小的HelloWorld程式。軟體架構設計的成敗決定了軟體產品和系統研發的成敗。軟體架構自身所具有的屬性和特點,決定了軟體架構設計的複雜性和難度。以下僅供參考!

Java架構設計和開發中的小技巧

Java架構設計

軟體架構作為一個概念,體現在技術和業務兩個方面。

從技術角度來說:軟體架構隨著技術的革新不斷地更新其內容,軟體架構建立於當前技術和一些基本原則的基礎之上。

先說一些基本原則:

分層原則:分層是為了降低軟體深度複雜性而使用的關鍵思想,就像社會有了階級一樣,軟體有了層次結構。

模組化原則:模組化是化解軟體廣度複雜的必然手段,模組化的目的就是讓軟體分工。

介面實現分離原則隨著軟體模組化的不斷深入改進,面向介面程式設計而不是面向實現程式設計可以讓複雜度日趨增高的軟體降低模組之間的耦合度,從而讓各模組更輕鬆改進。從這個原則出發,軟體也從微觀進行了細緻的規範化。

還有兩個比較小但很重要的'原則:

細節隱藏原則很顯然把複雜問題簡化,把難看的細節隱去,能讓軟體結構更清晰。其實這個原則使用很普遍,java/c++語言中的封裝原則以及設計模式中的Facade(外觀)模式就很能體現這個原則的精神。

依賴倒置原則隨著軟體結構的進一步發展,層與層之間、模組與模組之間的依賴逐漸加深,而層、模組的動態可插拔要求不端增大。依賴倒置原則可看視 為介面實現分離原則的深化,根據此原則的精神,軟體進入了工具時代。這個原則有點類似於知名的好萊塢法則:Don't call us, we'll call you。

以上這些原則奠定了我們的軟體架構的價值指標。但軟體架構畢竟是建立在當前技術之上的。而每一代技術都有架構模式。過去的不再說了,讓我們現在就來看一下當前流行的技術,以及當前我們能採用的架構。

因為面向物件是當前最流行開發技術,且設計模式的大量使用使面向物件的走向成熟,而資料庫是當前最有效的儲存結構、web介面是當前最流行的用 戶介面,所以當前最典型的三層次架構就架構在以上幾項技術的基礎之上,用資料庫作儲存層、用面向物件來實現業務層、用web來作為使用者介面層。我們從三層 次架構談起:

因為面向物件技術和資料庫技術不適配,所以在標準三層次架構的基礎上,我們增加了資料持久層,來管理O-R雙向對映,但目前一直沒有最理想的實 現技術。cmp和entity bean技術因為其實現複雜,功能前景有限,已接近被淘汰的邊緣。JDO及hibernate作為o-r對映的後期之秀,尤其是hibernate,功能 相當完備。推薦作為持久層的首選。

在業務層,因為當前業務日趨負載,且變動頻繁,所以我們必須有足夠敏捷的技術來保證我們的適應變化的能力,在標準j2ee系統中session bean負責業務處理,且有不錯的效能表現,但採用ejb系統對業務架構模式改變太大,且其複雜而昂貴,業務程式碼移植性差。而spring 作為一個bean配置的輕量級架構,漂亮的IOC模式實現,對業務架構影響小,所以推薦作為中間層業務框架。

在使用者結構層,雖然servlet/jsp/jstl/javaBean 能夠實現MVC架構,但終究過於粗糙。struts對MVC架構的實現就比較完美,Taperstry也極好地實現MVC架構,且採用基於事件的方式,非 常誘人,惜其不夠成熟,我們仍舊推薦struts作為使用者介面層基礎架構。

因為業務層是三層次架構中最有決定意義的,所以讓我們回到業務層細緻地分析一下,在複雜的業務我們常常需要以下基礎服務的一種或幾種:事務一致 性服務acid(tool:jta/jts)、併發加鎖服務concurrent&&lock、池化管理服務cache、訪問控制服務(tool:jaas)、流程控制服務workflow、動態實現服務IOC,序列化訊息服務(tool:jms)、負載平衡服務blance等。如果我們不採用重量級應用伺服器(如weblogic,websphere,jboss等)及重量級元件(EJB),我們必須自己實現其中一些服務。雖然我們大多情況下,不需要所有這些服務,但實現起來卻非易事。幸運的是我們有大量的開源實現程式碼,但採用開原始碼卻常常是件不輕鬆的事。

隨著xml作為結構化資訊傳輸和儲存地位日漸重要,一些xml文件操作工具(DOM,Digester,SAX等)的使用愈發重要,而隨著xml schema的java binding工具(jaxb,xmlbean等)工具的成熟,採用xml schema來設計xml文件格式,然後採用java binding來生成java bean 會成為主要程式設計模式,而這又進一步使資料中心向xml轉移,使在中小資料量上,愈發傾向於以xquery為查詢語言的xml資料庫。最近還有一個趨勢, microsoft,ibm等紛紛大量開發中間軟體如(microsoft office之infopath),可以直接從xml schema 生成 錄入頁面等非常實用的功能。還有web service 的廣泛應用,都將對軟體的架構有非常重大的影響。至於面向服務架構(SOA)前景如何,三層次架構什麼時候走入歷史,現在還很難定論。

aop的發展也會對軟體架構有很深的影響,但在面向物件架構裡,無論aspectJ還是jboss-aop抑是aspectWerks、 nanning都有其自身的嚴重問題:維護性很差,所以說它將很難走遠。也許作為一個很好的思想,它將在web service裡大展身手。

rdf,owl作為w3c語義模型的標誌性的語言,也很難想象能在當前業務架構發揮太大影響。但如果真如它所聲稱那樣,廣泛地改變著資訊的結構。那麼對軟體架構也會有深遠影響。

Java開發中的技巧

Eclipse中最常用的快捷鍵:

Ctrl+L Go to Line

F5 Step Into

Ctrl+H Open Search Dialog

Ctrl+Shift+K Find Previous

Ctrl+F11 Run

Ctrl+Shift+ Remove Block Comment

F11 Debug

Ctrl+Shift+/ Add Block Comment

Ctrl+K Find Next

F8 Resume (during Debug)

Ctrl+O Quick Outline

Alt+Shift+R Rename (Refactoring)

F3 Open Declaration

Ctrl+R Run to Line

Ctrl+/ Toggle Comment

Ctrl+Shift+O Organize Imports

F6 Step Over

Ctrl+Shift+F Format

Ctrl+Shift+G References in Workspace