• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    敏捷思維(15)—進一步閱讀

    發布: 2008-2-02 17:18 | 作者: 林星 | 來源: 不詳 | 查看: 43次 | 進入軟件測試論壇討論

    領測軟件測試網

    敏捷架構設計一文到目前已經全部結束,由于架構設計是一個很大的話題,要在一篇文章中完全把架構設計講清楚是很難的。因此本文的最后一個章節中提供了一組書籍和文章,這些資料都和架構設計有關,本文的寫作過程也從中獲益良多,故而推薦給有興趣的讀者。
    Refactoring To Patterns(Joshua Kerievsky)
    勿庸置疑,模式是軟件設計的一種有效的工具。但是在將模式和現實中的軟件設計關聯起來時,很多人往往迷惑于模式到底是如何應用的。結果是表現出兩種極端:一是用不好模式,二是過度的濫用模式。模式是他人設計經驗的總結,但是它在提供優秀的設計思路的同時也會增加一定的復雜性。因此,不了解模式應用的上下文環境而錯誤的使用模式是非常危險的。不但達不到原先的效果,而且會導致設計難以理解和設計團隊溝通的困難。文章一開始,作者就批評了濫用模式的做法。那么,到底要怎樣才算是正確的使用模式呢?作者借鑒了Martin Fowler的重構方法。通過實際的例子,討論如何把一個普通的、不夠靈活、不具備擴展性的設計重構為一個優美的設計模式。因此,本文的核心在于,如何識別哪些設計需要重構?如何判斷重構的時機?如何評價重構前后的優缺點?以及,如何進行重構?本書目前正在寫作中,從http://industriallogic.com可以找到其草稿。在透明的網站和umlchina上,也可以找到部分的譯稿。在閱讀架構重構模式后,你可以再翻閱此文,這樣你就可以了解到該模式在代碼級別上的實現。
    Effective Java(Joshua Bloch)
    此書的定位于編程習慣(Idiom)和良好的OO思維上。任何的設計都無法脫離最終的代碼。因此,擅長于架構設計的設計師一定也擁有渾厚的編碼功力。優秀的軟件過程是由大量優秀的實踐拚接而成,架構設計也是一樣的,它是由大量的代碼級的實踐累積起來的。此外,本書的很多討論都是關于如何進行一個優秀的OO設計的。在本文中,我們很多關于具體設計的討論都是基于OO設計的,在穩定化模式中我們也討論了OO設計優秀之處。因此,在了解架構設計的基本思路后,閱讀此書,你可以進一步的了解和強化OO架構的設計思路。順便一提,本書的中文版即將面世。
    Writing Effective Use Case(Alistair Cockburn)
    文如其名,本書主要介紹了如何編寫用例的知識。在架構設計中,我們不斷的強調需求的重要性,可以說,沒有需求,就沒有架構。那么,需求應該如何組織呢?用例就是一種不錯的需求組織方式,注意,用例并不能夠完全代替需求,類似于業務流程、非功能需求之類的需求都不是用例所擅長的。本書的精華就在于它完整的介紹了敘述型用例的各個方面,從用例的范圍、角色、層次等方面描述了用例的構成,并討論了用例的很多相關知識。更為寶貴的是,本書中包含了大量的實例。相較一些介紹用例圖的書而言,本書的定位更加的實踐化。一個優秀的需求的價值在于,它能夠很容易的轉換為軟件開發過程中其它實踐所需要的工件。如果我們仔細的體悟本書的話,我們會發現書中的很多思路都是基于此的。本書在市面上可以找到中文版和英文版兩種版本。
    Thinking in Patterns(Bruce Eckel)
    Bruce Eckel 的另外兩本書《Thinking in C++》和《Thinking in Java》可以說是非常的出名。后者更是有三個版本,前兩個版本都有中文譯本,候捷老師更是親自翻譯了第二個版本,第三個版本目前正在寫作中,從Bruce Eckel的網站(http://www.mindview.net)上可以下載到!禩hinking in Patterns》目前也仍然處于寫作中,但已經略具規模了。Bruce Eckel從不同的應用角度來討論模式之間的不同以及模式的內涵。例如,對工廠模式的討論是從封裝對象創建的角度開始討論的,對適配器模式的討論則是從改變接口的角度開始討論的。模式的關鍵在于應用,閱讀本書,你能夠體會到這一點。
    Java 與模式(閻宏)如果說上述的一些好文都出自國外專家之手,那么這本書就是絕對的中文原創。本書的重點是討論隱藏在模式背后的面向對象規律,并一一對各種設計模式進行分析和實例研討。使用很多有趣的例子和運用哲學思維來解釋模式是本書的兩大特色。在閱讀該書的時候,請注意區分技術細節和框架代碼。設計模式的好處就在于能夠根據上下文環境,設計出一個具有靈活性、擴展性、低耦合度的框架來。這和架構設計的思路是一樣的,不要在軟件開發過程的早期考慮太多的細節。
    Patterns of Enterprise Application Architecture(Martin Fowler)
    這是一本絕對的討論架構設計模式的書了,但這里的架構是特指企業信息系統的架構,這和本文討論的問題域是一樣的。根據三層結構的理論,本書的模式大致可以分為5類:表示層模式、邏輯層模式、數據層模式、分布式模式、以及一些基礎的模式。書的早期版本采用了這種分類法,在出版之后,模式的分類進一步細化。例如數據層模式就被進一步的區分為數據源架構模式、對象-關系行為模式、對象-關系結構模式、對象-關系元數據映射模式等。本書的內容覆蓋面很廣,Martin Fowler在素材的組織上擁有非常優異的才能,當年的《重構》一書就是這方面的例證。閱讀本書,你會對架構設計的技術層面有著很深的了解,但是,應該注意,書中的一些模式雖然看起來簡單,但是如果要真正實現,卻需要花費大量的精力,因此,聽從《Refactoring To Patterns》一書和本文重構模式的建議吧,只有在需要的時候才把設計重構為模式。
    Dealing with Roles(Martin Fowler)
    這只是一篇小短文,討論的重點是關于角色處理的知識,但作者從面向對象的基礎知識出發,討論了如何根據需求的不同,來進行不同的設計,并用實際的例子,演示了設計是如何變化的。這種思想和本文提倡的思想是非常的相似的,架構設計不能夠獨立于需求而存在。建議不論是對面向對象設計有興趣還是對軟件工程有興趣的人都可以閱讀此文。在Martinfowler的網站上(http://www.martinfowler.com)可以找到本文,次外,網站上還有其它一些優秀作品,《Dealing with Properties》就是其中的一篇。我曾經為《Dealing with Roles》一問撰寫了一篇讀書筆記,發布在點空間上(http://www.dotspace.twmail.net/patternscolumn/analysis%20patterns/RoseModelingNotes_S.htm),如果有興趣,也可以指導一二。
    《Framework Process Patterns》(James Carey,Brent Carlson)
    本書的作者是IBM公司的成員,他們有著面向對象操作系統和企業應用框架的設計經驗,而后者,這是著名的IBM SanFrancisco框架。他們把框架設計中學習到的知識整理為過程模式的形式,書中并沒有太多的理論,但處處都體現出了作者的豐富經驗。在閱讀本書的時候,要時刻牢記其推介的框架設計的特點,再結合自己工作的具體情況,來理解和應用這些模式。不要盲目的把書中介紹的模式應用于自身,這是我的忠告。本書的中文版由我和一位朋友翻譯,將不日面世。
    IBM Sanfrancisco 框架,這并不是一本書,而是一個現實中的產品。IBM根據市場經驗,設計了一個企業應用框架,定位于為企業應用開發者提供通用的組件。從這個產品中,你可以充分的了解到模式是如何應用在一個成熟的產品中的。要了解這個產品的設計思路,關鍵是要先了解它的層次劃分。SanFrancisco框架總共分為三個層次:Foundation Layer、Common Business Objects Layer、Core Business Process Layer。Foundation Layer定義了基礎的類以及類的使用策略,例如工廠類來負責所有對象的創建;Common Business Objects Layer定義了企業中的一些通用對象,例如公司、帳戶、客戶等,而Core Business Process Layer定義了企業應用所需要的關鍵業務流程,包括會計框架、應收應付、訂單處理、庫存管理幾個方面。這三個層次可以進行獨立的重用,越高的層次的重用價值越大。在理解這樣一個產品的時候,我們要有這樣的思路,對于一個大型的產品來說,一致性有時候是重于其它的價值的,例如,在對象創建方面,產品統一使用了工廠模式,而在屬性處理上,統一使用了動態屬性的設計方式。雖然有些地方并不需要用到這兩種設計模式,但是為了保持設計的一致性,還是必須使用該模式。這一點對于普通的項目開發或是小產品開發來說可能未必適用,但是對于大型的項目或產品來說就顯得非常的重要了。


    Applying Patterns(Frank Buschmann)
    這是一篇用過程模式語言來描述如何在實際中應用設計模式的文章。文章短小精悍,把設計模式的應用總結為幾種模式,沒有提供具體的實例是個遺憾。對正在學習設計模式的人而言,花一些時間了解別人是如何應用設計模式是很有必要的。在點空間上可以找到原文鏈接和繁體版譯文。本文的架構愿景模式就參考了這篇文章中的內容。
    重構(Martin Fowler)其實本書已經不用再介紹了,他的價值就在于他能夠把程序員日常的很多優秀做法提升到理論的階段,并為更多的程序員提供指導。這也是我在上文夸獎Martin Fowler具有優異的組織才能的一大原因。遺憾的是,本書一直沒有中文譯本,不過這個遺憾即將結束,候捷和透明正在合譯此書,相信不久之后就可以一飽眼福。http://www.refactoring.com是Martin Fowler創建的重構的討論站點,上面也會很多的相關內容。而關于重構的另一方面的消息是,現在已經有越來越多的建模工具將重構作為重要的特性之一,這無疑能夠為程序員節省大量的精力。
    http://www.agiledata.org(Scott W. Ambler)這是Scott W. Ambler 最新維護的一個網站,也代表了Agile方法發展的一個方向――如何以敏捷的姿態進行數據庫項目的開發。在讀過站點的內容之后,你會了解到如何做好數據庫項目的開發。目前,本站點還在Scott W. Ambler的維護下不斷的更新。數據庫設計一直不是面向對象陣營強調的一個重點,基本的觀點認為,關鍵是類的設計足夠規范,數據庫并不是主要問題。但是在實際的項目中,數據庫,特別是關系型數據庫往往是無法忽略的部分,包括數據庫模式的設計、性能優化、數據庫連接管理、數據操縱語言。除此之外,遺留數據庫、并發問題、安全,關系數據到對象的映射,業務邏輯處理,這些都是需要在架構設計的時候就加以考慮的問題。在本文中并沒有專門的章節對數據庫相關的知識進行討論,因為數據庫的討論最好是結合具體的數據庫進行。如果大家在架構設計中存在數據庫方面的問題,可以參考這個網站。
    Designing for Scalability with Microsoft Windows DNA(Sten Sundblad)
    目前關于討論微軟體系平臺設計的優秀書籍不多,而本書正是其中之一。本書介紹了DNA體系下設計一個分層架構所要注意的問題。其核心思想是避免純理論的面向對象設計。例如,書中在介紹領域對象的時候,建議將只讀對象和可寫對象分開處理,這樣,只讀對象就不需要COM+的支持,能夠提高效率,但這是不符合面向對象的設計的封裝思路的。另外,為了能夠使用對象緩沖池技術,本書提議在設計業務對象的時候不要包括狀態數據,這和類包括數據和行為的基本思路也是相斥的。從這本書中,我們可以了解到現實系統的設計和經典面向對象思想之間的辨正關系。
    設計數據層組件并在層間傳遞數據(Angela Crocker、Andy Olsen 和 Edward Jezierski)
    這是另一篇討論windows體系平臺的文章。微軟的產品適合于小型的開發,一方面和具體的技術有關,另一方面也和體系結構的設計有關。windows體系結構的特點是快速開發,因此在一些小型的項目中,使用微軟產品的開發速度較快,但是隨著項目規模的增大,快速開發伴隨著的結構性欠佳的問題就逐漸顯露出來了。因此,文章的主要內容就是如何優化結構。其主要的思路是對系統進行分層,并實現層間數據傳遞的策略。這兩點不論是在哪一類型的體系中都是關鍵性的問題,在分層模式中,我們也曾經對這兩個問題做了大篇幅的討論。和Java體系相比,Window體系有其特殊的一面,也能夠起到他山之石的效果。
    EJB Design Patterns(Floyd Marinescu)
    本書分為兩個部分,第一個部分重點討論了如何在一個分層體系中應用模式語言,并分別針對架構設計、數據傳輸(即上一段中討論的層間傳送數據)、事務和持久性、服務端和客戶端交互、主鍵生成策略等主題討論了可能的設計模式。第二部分討論了EJB設計過程中的實踐活動和過程。雖然本文的所有內容都是針對EJB設計的,但是其思路同樣可以借鑒于其它體系。本書的電子書在Middleware網站上可以下載到。

    (全文完)
    作者簡介:
    林星,辰訊軟件工作室項目管理組資深項目經理,有多年項目實施經驗。辰訊軟件工作室致力于先進軟件思想、軟件技術的應用,主要的研究方向在于軟件過程思想、Linux集群技術、OO技術和軟件工廠模式。您可以通過電子郵件 iamlinx@21cn.com 和他聯系。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 敏捷思維


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>