<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零雨其蒙's Blog

    做優秀的程序員
    隨筆 - 59, 文章 - 13, 評論 - 58, 引用 - 0
    數據加載中……

    項目組內部推薦書目

     

    項目組內部推薦書目

     

    零雨其蒙

    20082

    前言

    本文介紹理解本項目所有架構、設計思想和具體技術、工具使用的著作,閱讀以下著作,可以更好的理解我們的項目為何如此架構,為什么要使用這些工具,以及過去在項目中出現的文檔中所簡單描述的內容的背后原理是什么。

    學會使用工具是很容易的,但是知道為何要使用這些工具以及如何進行企業信息系統的設計是非常困難的。因此,閱讀書籍首先要明確自己的學習目標,然后按照本文的分類去閱讀將比較容易而不至于被如此之多的知識淹沒。

    比如你可以先學會使用EclipseSSH框架開發一個小的只包含CRUD操作的網站Demo,然后再去理解SSH是如何解決企業應用中必須要解決的問題的,閱讀Fowler的《企業應用架構模式》是最好的起點,了解哪些問題是企業應用必需要解決的問題,并發處理是大型企業應用必然會遇到而在開發桌面應用程序不會遇到的,而且也是在單元測試階段最不容易發現問題的。因此仔細閱讀這一部分是非常必要的,包括線程的并發訪問,數據庫并發訪問使用數據庫事務(數據庫提供了怎樣的隔離機制和鎖機制,如何設置隔離級別,以達到效率和安全的平衡)和業務事務(J2EE環境下如何使用兩階段提交來解決這一問題和對于長事務使用離線鎖模式。

    同時你可以通過編寫這個Demo對于Java有個認識,并與已經學習過的語言建立聯系。

    但必須要明確學習目標,做Demo就是為了學會使用SSHJava,而非為了掌握設計和架構思想。

    本文所推薦的書籍就是目前項目使用的架構和開發方法論的參考書籍,因此如果想要全面理解項目使用的架構、技術和開發方法論,做到知其然并知其所以然必須認真閱讀以下圖書,這是一個最簡集,當然很多思想還來自于其他書籍和實踐經驗。

    PS:我花了一年時間閱讀這些書籍,某些圖書在我的Blog上有讀書筆記,大家可以參考我的讀書筆記閱讀原著,因為畢竟我們有相似的經歷,我想我當時遇到的困惑也可能是大家會遇到的困惑。

    Blogm.tkk7.com/sslaowan

     

    書目:

    1、 架構

    1)    企業架構應用模式                               Martin Fowler

    2、 需求分析

    2)    編寫有效用例                                      Cockburn

    3)    有效用例模式                                   Steve Adolph

    3、 面向對象分析

    4)      分析模式:可復用的對象模型                     Martin Fowler

    4、 面向對象設計

    5)      UML和模式應用(原書第3版)                   Craig Larman

    6)      對象設計:角色、責任和協作                       Wirfs-Brock

    7)      領域驅動設計:軟件核心復雜性解決之道             Eric Evans

    8)      敏捷軟件開發:原則、模式與實踐                  Robert Martin

    9)      Object Primer                                   Scott W.Ambler

    5、 軟件工程與敏捷開發

    10)   敏捷軟件開發生態系統                            Jim Highsmith

    11)   解析極限編程:擁抱變化(第2版)                   Kent Beck

    12)   代碼大全                                           McConnel

    13)   重構:改善既有代碼的設計                        Marin Fowler

    6、 技術:JavaJ2EE

    14)   Agile Java                                           Jeff Langr

    15)   Contribute to Eclipse                                  Kent Beck

    16)   J2EE設計開發編程指南                             Rod Johnson

    17)   Expert One-on-One J2EE Development without EJB        Rod Johnson

    18)   Spring框架高級編程                                Rod Johnson

    19)   J2EE核心模式                                     Deepak Alur等著

    20)   Struts in Action                                         Ted Husted

    21)   JUnit in Action                                       Vincent Massol

    22)   使用Ant進行Java開發                               Erik Hatcher

    23)   POJO in Action                                        Richardson

    24)   Spring從入門到精通                                   郭峰   編著

    25)   敏捷AcegiCAS-構建安全的Java系統                 羅時飛 編著

    本文介紹的圖書會比這個書目稍多一些。紅色標注的圖書是理解架構,進行系統分析設計的必讀讀物。

    軟件開發綜述類

       建議首先閱讀本分類中的圖書,以對項目整個使用的方法的全貌有個總體了解。

       對于軟件開發過程的綜述,包括對于UML,模式,面向對象,迭代方法,敏捷UP的討論,Martin Fowler在多部著作中推薦了LarmanUML和模式應用(第三版)》,其中介紹了完整的從需求分析(用例,補充說明書,SSD,操作契約),領域建模,到面向對象設計(RDDGRASPGoF設計模式)的敏捷的迭代過程,其中也講解了各種實戰中的UML的畫法。另外一本AmblerObject Primer,也是講述敏捷語境下的面向對象技術,其風格更加嚴肅,不過對于業務規則,用戶界面,持久化等的討論可以作為Larman的著作的補充。

    需求分析類

         建議首先閱讀Larman的著作,以便了解需求分析并不只是依靠用例,然后編寫用例的必讀書目是Cockburn《編寫有效用例》,之后可閱讀《有效用例模式》

         還有一本講述業務規則的圖書對于理解業務流程等概念很有幫助,如果你像我一樣想明確區分業務流程,工作流,領域邏輯,業務邏輯等概念,因為這對于如何組織系統架構的分層具有重大意義。

    面向對象分析

    建議閱讀Martin Fowler《分析模式:可復用對象模型》,里面關于庫存和財務,交易,計劃,組織結構模式,測量,觀察模式的討論,對于為我們的項目建模有一定指導作用。

    另外Eric Evans《領域驅動設計:軟件核心復雜性解決之道》也是一本好書,其對于實體,值對象和服務的討論對于理解項目架構思想很有幫助。

    面向對象設計

    建議閱讀Robert Martin《敏捷軟件開發:原則,模式和實踐》,其Java/C++版,和C#版同樣具有幫助,其中對于OCPDIPSRPOOD原則的討論非常深入透徹,對于GOF設計模式的講解和其他相關模式的攝入都對于理解什么是面向對象設計,以及怎樣的設計才是正確的非常有幫助。

    對于如何發現對象和為對象分配職責這一問題,除了閱讀LarmanAmbler的書之外,Wirfs-Brock編寫的《對象設計:角色,責任和協作》是對這一問題的深入討論,其中的諸多方法如角色構造型,和對于責任,角色,協作的充分討論,對于幫助找到解決之道很有幫助。

    J2EE架構

    對于信息系統架構和設計的權威著作是Martin Fowler《企業應用架構模式》,它可以幫助你理解你所熟悉的和不熟悉的架構、設計決策背后隱藏的原理。其對于分層架構,領域建模,并發控制(線程和事務,鎖機制),數據持久化策略(包括數據訪問接口,實體關系映射等)等的討論都很清晰,對于理解項目中的分層結構,建立領域模型,O/R映射及其他架構模式的運用的動機有更為深入的理解。配合POJO In Action(該書是建立在Fowler的《企業應用架構模式》,Evans的《領域驅動設計》和Johnson的《J2EE without EJB》等著作的基礎上寫的,你可以自己決定閱讀順序),有助于了解在敏捷J2EE架構下如何應用這些模式,其中使用了SpringHibernate框架,與我們的項目最為接近。

         建議閱讀J2EE核心模式》,本書是Sun公司編寫的,描述了實戰中的J2EE項目使用的模式,項目中使用的很多模式來自于該書,雖然最有用的部分在Fowler的書中已經有闡述,但是直接在J2EE語境下進行討論還是有必要的,然而POJO in Action的出現,多少對此削弱了一些。

         Struts+Spring+Hibernate的入門快速上手書籍可參看郭峰的Spring從入門到精通》 主要閱讀控制反轉和依賴注入,聲明式事務處理,持久化處理(使用JdbcTemplate和整合Hibernate)。其他類似書籍所講內容大抵相同,所以建議參看其中一本快速入門,更深入的討論請閱讀JohnsonSpring高級編程指南》

         Spring方面的書籍最好按順序閱讀Rod Johnson(他是Spring之父)的三部巨著J2EE設計開發編程指南》《J2EE without EJBSpring高級編程指南》,對于全面理解Spring的使用動機,設計原理和最佳實踐會有一個深入的理解。其中充分討論了企業應用應該注意的問題,J2EE經典架構的問題,應該如何對待EJB,以及更好的替代EJB的方案是什么,為什么他們是更好的。這對于理解項目中為什么使用這些技術作了最為深刻的講解。而Spring的開發手冊可作為一個速查的手冊(主要閱讀依賴注入,聲明式事務處理,持久化,安全,遠程訪問等章節)。實踐中的Spring請參閱POJO in Action等圖書。

         Hibernate的權威之作無疑是Hibernate in Action,是Hibernate之父寫的,里面充分的講解了持久化的最佳實踐,不過沒有中文版,其縮略版是Hibernate開發手冊,可以看這個作為速查,關于事務,持久化,鎖等可以參閱FowlerJohnson的書,也可以參看《POJO in Action》。

         關于Struts,建議閱讀Struts in Action

         項目中用到的其他技術還包括:RCP客戶端,其中主要使用的Eclipse核心架構,在這里推薦閱讀Kent BeckGamma寫的《Contribute to Eclipse》,GammaEclipse的首席架構師,本書詳細的講解了Eclipse架構中所用的設計模式和設計思想,對于插件架構的講解對于我們編寫RCP客戶端大有幫助。沒有任何一本Eclipse的書籍可以代替本書的價值。閱讀本書的意義在于幫助你設計客戶端程序,而關于一些基本的知識(如JFaceSWT)請參考RCP編寫的專門書籍(中國人寫的目前好像只有一本),另外也可參考《Agile Java》。

    jBPM工作流引擎請參閱Spring對于jBPM的擴展項目的文檔,只有英文版。當然還要閱讀jBPM的官方文檔。一些通俗的例子請參見項目組內部文檔。另外閱讀Fowler的《企業應用架構模式》和一些工作流、業務流程管理的書籍對于理解工作流引擎大有裨益。

    對于J2EE安全管理部分可閱讀JohnsonSpring高級編程指南》。手把手入門教材是羅時飛編著的《敏捷AcegiCAS-構建安全的Java系統》Acegi的官方文檔。而在實際項目中的安全管理和Acegi的使用請參考JavaEyewww.javaeye.com)的一些討論和文章。

    JavaJ2EE

        推薦閱讀Agile Java,其采用測試驅動開發的方式講解Java的基礎知識,是目前我所見過的最能讀下去的Java圖書。作為速查可以找一本計算機二級復習用書。最為權威的著作是Core Java2,不過更象是API手冊。最為深邃的圖書是Thinking in JavaEffective Java,對于Java有深入了解可以仔細看看。

         另外找一本專業的J2EE圖書,里面會詳細講解JSPServletJNDIJDBC之類的原理和用法,建議選用和IBM WebshpereBEA Weblogic無關的J2EE圖書和有關的J2EE圖書各一本。

    數據庫

    建議至少閱讀《Oracle DBA入門手冊》,真正理解Oracle的優化配置,SQL語句的正確寫法,序列,索引,觸發器,函數,數據庫模式設計以及并發處理等主題。

    Unix

        建議閱讀一本AIX的專著,以理解Unix操作系統的基本原理和使用方法。

    敏捷開發

    關于極限編程,推薦閱讀Kent Beck(他是極限編程的創始人)寫的《解析極限編程:擁抱變化(第2版)》,以幫助你理解我們項目所采用的結對編程,測試驅動開發,重構,用戶故事等實踐及其背后的原理。對于如何在敏捷環境下做計劃,本書的討論應該在加上KentFowler合著的《規劃極限編程》才更完整。制定計劃是非常重要的,同樣控制過程,檢驗計劃完成情況更加重要。

    對于敏捷開發更全面的理解來自于Jim Highsmith《敏捷軟件開發生態環境》,其中討論了極限編程,ASDFDDDSDM等敏捷方法。

    關于為何不使用瀑布模型而使用迭代方法請參看Larman的《UML和模式應用》,FowlerNew MethodologyMcConnell《代碼大全》。其中LarmanMcConnell都在書中引入了大量實驗數據來說明這一問題。瀑布模型在國際上公認出自于Winston W.Royce博士于1972年發表的論文《Managing the Development of Large Software Systems》,但是該論文實際上是反對瀑布模型的。

    在項目中會使用一些極限編程實踐工具,如重構,JUnitAnt等,請參考閱讀以下書籍:

    關于重構的最權威的討論來自Martin Fowler《重構:改善既有代碼的設計》Eclipse中的重構功能中使用的重構名即出自此書,其對于代碼壞味道的總結對于避免團隊成員寫出糟糕的代碼有很好的指導作用;而其對于重構方法的討論非常細致,步驟很清晰,幸運的是工具已經代替你做這些容易出錯而又細致的步驟,你只需要理解在何種情況應該使用什么重構法即可。

    關于JUnit的最好且最簡單的著作是JUnit in Action,項目中組織測試的經驗即來自本書。由于項目采用J2EE和測試驅動開發,因此本書是必讀書籍。

    關于Ant的最全面的討論是《使用Ant進行Java開發》。其中對于持續集成的討論對于實踐這一理論很有幫助,然而對于持續集成更全面的討論來自于Fowler的文章Continuous Integration

    posted on 2008-02-14 15:27 零雨其蒙 閱讀(834) 評論(0)  編輯  收藏 所屬分類: 學習筆記

    主站蜘蛛池模板: 亚洲成aⅴ人片久青草影院| 97久久精品亚洲中文字幕无码| 人妻仑乱A级毛片免费看| 亚洲精品二区国产综合野狼| 97视频免费观看2区| 亚洲精品亚洲人成在线| 亚洲一本大道无码av天堂| 最近2019中文字幕免费大全5| 亚洲综合av一区二区三区| 自拍偷自拍亚洲精品第1页| 久久久久久久免费视频| 国产va免费观看| 亚洲av无码国产综合专区 | 久久国内免费视频| 亚洲阿v天堂在线2017免费| 91午夜精品亚洲一区二区三区| 四虎影在线永久免费四虎地址8848aa | 亚洲国产精品一区二区第一页| 黄页网站在线看免费| 4hu四虎免费影院www| 亚洲综合一区无码精品| 国产亚洲综合久久系列| 宅男666在线永久免费观看| 男人的天堂网免费网站| 香蕉视频免费在线| 亚洲性猛交xx乱| 亚洲精品夜夜夜妓女网| 全免费一级午夜毛片| 99久久99久久精品免费观看| 一区二区三区在线免费| 亚洲字幕AV一区二区三区四区 | 亚洲色无码专区一区| 亚洲av成人无码久久精品| 亚洲成网777777国产精品| 成人最新午夜免费视频| 四虎在线视频免费观看视频| 9久热精品免费观看视频| 亚洲AV成人精品日韩一区| 亚洲国产成人精品青青草原| 久久久久亚洲av无码尤物| JLZZJLZZ亚洲乱熟无码|