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

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

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

    posts - 78,  comments - 48,  trackbacks - 0

    本文發表于程序員雜志2006年第5期
    “ 敏捷軟件開發宣言:我們正在通過親身實踐和幫助其他人實踐,揭示更好的軟件開發方法,通過這項工作,我們認為:
    人和交流勝過過程和工具
    可工作的軟件勝過面面俱到的文檔
    客戶協作勝過合同談判
    響應變化勝過遵循計劃
    雖然右項也有價值,但是我們認為左項更重要。 ”
    —— Kent Beck , Mike Beedle , Arie van Bennekum , Alistair Cockburn , Ward Cunningham , Martin Fowler , James Grenning , Jim Highsmith , Andrew Hunt , Ron Jeffries , Jon Kern , Brian Marick , Robert C. Martin , Steve Mellor , Ken Schwaber , Jeff Sutherland , Dave Thomas
    ?
    敏捷軟件開發這個詞在 2006 年的中國軟件界聽起來仍然顯得有些陌生。自 2001 年敏捷聯盟被發起以來,敏捷方法的實踐經驗和理論研究都在不斷的更新。而我國的大多數程序員還是只能在書本上讀到敏捷的好處,很難在項目中進行實踐。這其中的原因,主要是缺乏擁有實際敏捷項目經驗的人來帶領實施敏捷。雖然敏捷開發是種實踐行為,很難從書本上直接學習,不過多數程序員了解敏捷,卻都是先從書本開始的。無論結果怎樣,從認識到實踐的過程是免不了的。
    ?
    敏捷軟件開發之方法論篇
    大家都知道敏捷軟件開發方法包括了多種方法論,主要有: SCRUM , Crystal, 特征驅動軟件開發( FDD ),自適應軟件開發( ASD ),以及最著名的極限編程 (XP) 。這些方法論分別在不同的著作上專門論述過:
    SCRUM :《 Agile Software Development with Scrum 》 by Ken Schwaber, Mike Beedle ,《 Agile Project Management With Scrum 》 by Ken Schwaber
    FDD: 《 Java Modeling in Color with UML 》 by Peter Coad, 《 A Practical Guide to Feature-Driven Development 》 ( 特征驅動開發 ) by Stephen R Palmer, John M. Felsing,
    Crystal: 《 Crystal Clear 》 by Alistair Cockburn
    ASD: 《 Adaptive Software Development 》(自適應軟件開發) by James A. Highsmith
    ?
    其中尤以 XP 系列的書籍居多。人民郵電出版社的一系列極限編程系列叢書,在國內引進較早。在還沒有統一敏捷詞匯的情況下,引發了一批敏捷先鋒人士的熱情,是我國程序員的敏捷啟蒙教材。這些書包括《 Extreme Programming Explained 》(解析極限編程),《 Extreme Programming Examined 》(極限編程研究),《 Extreme Programming Installed 》 ( 極限編程實施 ) ,《 Extreme Programming Explored 》(探索極限編程),《 Extreme Programming Applied 》(應用極限編程)《 Extreme Programming in Practice 》(極限編程實踐),《 Planning Extreme Programming 》(規劃極限編程)等,這些書有的是作者的 XP 實踐論文,有些是對 XP 項目的介紹,其中,值得推薦的是下面兩部著作。
    ?
    《 Extreme Programming Explained: Embrace Change 》 by Kent Beck
    第一版中譯版:《解析極限編程:擁抱變化》, 唐東銘, 人民郵電出版社
    第二版中譯版: 雷劍文,電子工業出版社
    作為 XP 的開山之作,目前已經出版了第二版。在第一版中, Kent Beck 對 XP 作了詳細的描述。從當前軟件開發的現狀和問題談起,從需求的變化到如何擁抱變化,給出了 XP 的四項價值觀和十二項實踐。對于想了解敏捷的來龍去脈的人,此書屬于必讀之類。在第二版, Kent 根據幾年來的實踐,為 XP 增加了一項價值觀:尊重,并增加了原則的概念,同時增加和刪改了一些實踐。
    該書第一版是程序員的宣言,這和 Kent 的背景很有關系。隨后 XP 經歷了五六年的發展和實踐, Kent 自己也逐漸意識到,這樣的觀點太狹隘了。因此就有了第二版,與其說這是技術書籍,到更像是純粹意義的軟工書籍。期間也可以看出 XP 的體系更加完備。這其中尤為突出的是把人放到了更為重要的地位。
    ?
    《 Extreme Programming in Practice 》 by James Newkirk, Robert C. Martin
    中譯版:《極限編程實踐》, 王鈞, 人民郵電出版社
    讀過了一些列的 XP 書籍,程序員們都會覺得 XP 非常好,但到底如何才能開始實施 XP 呢?還不是太清楚。本系列中的這本書用一個完整的小項目作例子,從頭到尾教給人如何敏捷開發,是一本不可多得的實踐教材。如果想直接實施 XP 開發,這本書可以給你很大啟示。
    ?
    ?
    敏捷軟件開發之實踐篇
    一、極限編程最佳實踐
    由于極限編程是如此的流行,多數敏捷團隊都會或多或少的借鑒一些 XP 中的敏捷實踐,而 XP 的每一個敏捷實踐也確實值得大書特書,而其中最著名的是測試驅動開發和重構實踐:
    ?
    《 Test-Driven Development 》 by Kent Beck
    中譯版:《測試驅動開發》, 崔凱,中國電力出版社
    測試驅動開發是 Kent Beck 另一部力作。 “Clean Code That Works” 是敏捷開發的目標之一,那么如何達到這個目標? TDD 給出了一種方式。測試實質上是需求。由需求產生出的代碼肯定是能夠工作的功能代碼,而要實現 Class 本身的可測試性,就不得不寫出高度解耦合的 Clean 的代碼。本書從一個 Money 的例子入手,從最初的一點需求開始,逐步增加需求,完成整個貨幣系統的代碼。后面又給出了 Unit Test 中的一些最佳實踐和模式供參考。
    然而,本書的教導意義比其實踐意義更突出。作為一本 TDD 的教程或入門教材,這本書無疑是最佳的,其中提出的一些最佳實踐更是值得經常閱讀來溫習。本書面向的是單元測試,而實際開發中面對的數據庫測試, Web 測試等問題并不屬于單元測試的范疇。因此讀者并不能從中直接進入到實戰。
    另一本同名書《 Test Driven Development: A Practical Guide 》由 Davis Astels 撰寫,他將該書看作是 Kent 著作的補充,重點闡述利用 TDD 開發所必要的技術和工具上,因此對實際開發更具實用性。
    ?
    《 Refactoring: Improving the Design of Existing Code 》 by Martin Fowler
    中譯版:《重構:改善既有代碼的設計》,侯捷,熊節,中國電力出版社
    重構這本書的意義在于,他提供了一種讓你寫出更加優美代碼的能力。在測試的保證下,重構能夠發揮強大的威力。敏捷團隊中,不斷的重構出簡單且高效的代碼才能夠保持擁抱不斷變化的需求。后來的一本書《 Refactoring to Patterns 》(從重構到模式) by Joshua Kerievsky ,更是將重構的威力發揮到極限。
    重構曾被稱為軟件開發圖書的雙璧,另一本書是《 Design Patterns 》 ( 設計模式 ) by GoF 。當然,對現在的軟件開發這二者已經不是最重要的。 Thought Works 的首席科學家 Martin Fowler 總結了朋友們的各種實踐心得,寫出了這本書。從幾年后的目光來看,這本書中的多數實踐都被各種 IDE 做到了操作菜單中。雖然 IDE 提供了大量重構功能,但僅靠 IDE 是無法寫出簡潔美妙代碼的,多數的敏捷團隊重構工作做得還是不夠。
    ?
    另外有一本專門介紹結對編程的書,《 Pair Programming Illuminated 》(結對編程技術) by by Laurie Williams and Robert Kessler ,指出了為什么要結對?并從各種不同水平不同性格的程序員結對情況來討論該實踐的優劣。對此有興趣的程序員不妨一讀。
    ?
    二、敏捷軟件開發實踐
    自從 2001 年敏捷聯盟成立以來,單獨推廣極限編程的書變少了,而統一口徑推廣敏捷的書變得越來越多。兩本同名的敏捷軟件開發都是不可多得的好書,
    ?
    《 Agile Software Development : Principles, Patterns, and Practices 》 by Robert C. Martin
    中譯版:《敏捷軟件開發:原則,模式與實踐》,鄧輝, 清華大學出版社
    被業內人士稱為 Uncle Bob 的 Robert C Martin 在沉寂幾年后寫出了這部書。該書可以算是從軟件開發角度對敏捷方法闡述的最詳細和全面的一本。之前的敏捷書籍多是關注于過程改進,而對如何從技術角度實施講的比較少。本書一開始先介紹了敏捷聯盟和敏捷開發過程。之后詳細論述了面向對象設計的原則,這些原則是本書的精華之一。后面通過幾個項目介紹了如何將設計模式應用于項目中。
    Uncle Bob 不愧是實踐的大師,寫出來的書也是擁有很強的實踐意義。在敏捷團隊的辦公桌上,應當常備此書,一來可作為參考查詢,二來可以作為新成員的必讀書目。
    ?
    《 Agile Software Development 》 by Alistair Cockburn
    中譯版:《敏捷軟件開發》,俞涓,人民郵電出版社
    這本書更加適合管理者來閱讀。 Alistair 從項目人數和交流難易程度,將敏捷的各種方法劃分了其適用范圍。人數多的或分布式項目就需要靠其他手段來加強交流,人數少的就可以靠 pair programming 等進行面對面的交流。交流和反饋是敏捷的核心。同時 Alistair 也介紹了一下他提出的 Crystal 方法族。
    ?
    三 . 敏捷項目管理和敏捷需求分析
    在推廣敏捷一段時間后,敏捷社群也意識到,多數書籍更像是面向開發人員,過于技術化,難以吸引項目經理或主管。因此,一批面向管理者視角的書也開始浮出水面,這些書包括:
    《 Agile and Iterative Development 》(敏捷迭代開發) by Craig Larman
    《 Lean Software Development 》( 敏捷 軟件開發工具 — 精益開發方法 ) by Mary Poppendieck
    《 Agile Software Development Ecosystems 》(敏捷軟件開發生態系統) by Jim Highsmith
    書中從各種角度比較和分析各種敏捷方法的優劣,異同,起源,適用范圍等。這些書對于一個項目主管決策使用何種過程來在自己的團隊中實踐敏捷有很好的參考作用。
    ?
    近兩年,人們開始逐漸意識到敏捷開發的側重點不僅僅是開發過程和開發實踐,還包括對需求和項目管理等其他相關方面的實踐。一些相關的書籍也悄然出現在人們的視野:
    《 Agile Project Management 》(敏捷項目管理) by Jim Highsmith
    《 User Stories Applied 》 by Mike Cohn
    《 Agile Estimating and Planning 》 by Mike Cohn
    《 Agile Requirements & User Stories 》 by Louis Molnar
    這些書不同于以往強調新方法,新過程的書目。敏捷項目管理類的書主要介紹如何管理敏捷團隊,如何計劃要開發的需求,如何為客戶提供最大的價值。介紹敏捷需求分析的書主要幫助商務分析師或項目經理挖掘和分析用戶需求,寫出用戶故事,評估和計劃用戶故事等。人們已經意識到,各種方法論的實質是相同的,都是提供商業價值,減少浪費,增加交流,快速反饋。因此不需要著重于區分是使用了那種方法。對項目經理來說,不同的項目或團隊應當采用適應其特殊情況的方法,而這些方法的基本原則是相同的。
    ?
    四 . 敏捷軟件開發新方向
    對架構師或程序員來說,近年來的技術進展,也使得敏捷開發有了新的研究方向:
    《 Agile Web Development with Rails 》 by Dave Thomas, David Hansson, Leon Breedt, and Mike Clark
    該書是獲得 2006JOLT 獎的書,講得是采用 Ruby on Rails 這個 Web 開發工具新貴來快速開發 Web 項目,從而達到快速反饋擁抱變化的目的。
    《 Refactoring Databases 》 by Scott W Ambler
    此書是 Scott 的新作,延續和繼承了《 Agile Modeling 》(敏捷建模)和《 Agile Database Techniques 》(敏捷數據)的思想。在敏捷開發過程中,作為持久化最常見技術的數據庫如果不能夠敏捷,怎么能夠適應一次次迭代和一次次發布的修改呢?書中介紹了如何進行數據庫演化,如何保證升級后數據庫數據的正確性,以及最佳實踐。
    posted on 2006-12-14 15:10 黑咖啡 閱讀(475) 評論(0)  編輯  收藏 所屬分類: Tec Article

    <2006年12月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    留言簿(2)

    隨筆分類(67)

    文章分類(43)

    Good Article

    Good Blogs

    Open Source

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久久久岛国免费播放 | 无码人妻一区二区三区免费手机 | 黄色网址免费观看| 亚洲中字慕日产2021| 四虎在线免费播放| 亚洲一级片免费看| 亚洲理论在线观看| 国产三级免费电影| 99久久免费观看| 亚洲av无一区二区三区| 亚洲色精品88色婷婷七月丁香| 4虎1515hh永久免费| 亚洲精品乱码久久久久蜜桃| 77777亚洲午夜久久多人| 91免费播放人人爽人人快乐| 疯狂做受xxxx高潮视频免费| 亚洲va国产va天堂va久久| 无限动漫网在线观看免费| 精品97国产免费人成视频| 亚洲性色高清完整版在线观看| 全部免费毛片在线| 国产精品久久免费| 久久精品免费网站网| 亚洲区日韩精品中文字幕| 亚洲AV无码成人精品区天堂| 在线观看亚洲免费| 最近免费mv在线电影| 日日狠狠久久偷偷色综合免费 | 曰批视频免费40分钟试看天天| 亚洲视频网站在线观看| 91黑丝国产线观看免费| 免费国产a理论片| 久久精品国产亚洲αv忘忧草| 亚洲一区二区高清| 成人毛片免费观看视频大全| 免费福利电影在线观看| 特级毛片aaaa级毛片免费| 亚洲一区二区三区亚瑟| 亚洲国产精品无码中文字| 亚洲 无码 在线 专区| 成人免费淫片在线费观看|