新型語言AspectJ

banq發表於2003-03-27

  面向Aspect的程式設計

  PC的廣泛應用和網際網路技術的深入發展,對軟體提出了越來越高的要求,因此軟體開發的程式設計方法就要不斷髮展。硬體方面CPU遵循摩爾定律,幾乎每18個月效能翻番,而軟體方面,一種好的程式設計方法和標準,據說20多年才能得到廣泛接受。當前流行物件導向的程式設計方法和標準,模組化、標準化、工程化,對軟體工程師綜合素質要求很高,軟體開發工作艱苦、單調、乏味,週期長、成本高並且容易出現Bug,導致軟體需要經常更新。經驗證明,使用標準過程或物件導向的程式設計語言,在模組化設計中處理(利害)關係(cencern)方面存在缺陷,即在程式碼中難以清楚的表達某些設計決策(稱作Aspect),例如:

  錯誤校驗策略

  設計模式

  同步策略

  資源共享

  分佈關係

  效能最佳化

  原因是這類內在的關係(cencern)對多個程式模組造成的影響,即難以把握Aspect,它橫切(crosscutting)或交叉了模組的分界。

  近來,一種有效解決這類問題的新的程式設計方法浮出水面,進入了實用階段,這就是面向Aspect的程式設計方法。這是眾多科學家研究了多年的一種方法,在不同的公司和大學研究計劃中,有許多不同名稱,如“適應性程式設計”,“主觀程式設計”,“寫作過濾器”等等。面向Aspect的程式設計方法與Java語言結合,產生了一種新的程式設計語言稱作AspectJ。椐稱,Microsoft的Visual J++環境也是結合了Aspect的思想。此外,還有許多其它實用環境,如用於稀疏矩陣計算的AML,用於生成影像處理系統的RG等等。面向Aspect的程式設計是這樣一種技術:它用構成語言描述系統的功能性,用Aspect描述不同橫切的性質,然後使用Aspect編織器(Weaver)將構件和Aspect組合成系統。

  在面向Aspect的程式設計方法中,程式設計語言中定義了新類“Aspect”,允許程式設計師作為單獨的實體編寫、檢查和編輯模組的橫切關係,使用日誌(Logging)技術追蹤模組,確保安全和同步模組中不出現同一時間訪問相同資料的情況,當需要改變或更新某模組的功能時,只要統一改變Aspect就可將改變後的程式碼織入所有需要改變的地方。它巧妙、直觀、有條有理,有效的解決了當前程式設計方法的弊端。

  面向Aspect的設計方法允許更模組化的表達程式碼中的設計決策,使軟體工程師容易思考、開發、維護和更新應用程式碼,縮短了開發週期,降低了產品成本,減少了Bug,提高了開發效率和軟體質量,因而深受歡迎。面向Aspect的程式設計方法正越來越引起人們關注,獲得越來越多的好評,將會得到越來越廣泛的應用。


按這裡 AspectJ In Action Review Project

相關文章