1. Eclipse中怎麼使用junit測試
Eclipse中使用junit測試的方法:
1、首先新建一個項目叫JUnit_Test,並編寫測試類Calculator.java
publicclassCalculator{
privatestaticintresult;//靜態變數,用於存儲運行結果
publicvoidadd(intn){
result=result+n;
}
publicvoidsubstract(intn){
鍵轎result=result-1;//Bug:正確的應該是result =result-n
}
publicvoidmultiply(intn){
}//此方法尚未寫好
publicvoiddivide(intn){
result=result/n;
}
publicvoidsquare(intn){
result=n*n;
}
publicvoidsquareRoot(intn){
for(;;);//Bug:死循環
}
publicvoidclear(){//將結果清零
result=0;
}
publicintgetResult(){
returnresult;
}
}
2.將JUnit4單元測試包引入這個項目:在該項目上點右鍵,點「屬性」,如圖:
2. Java經典書籍
一、Java編程入門類
對於沒有Java編程經驗的程序員要入門,隨便讀什麼入門書籍都一樣,這個階段需要你快速的掌握Java基礎語法和基本用法,宗旨就是「囫圇吞棗不求甚解」,先對Java熟悉起來再說。用很短的時間快速過一遍Java語法,連懵帶猜多寫寫代碼,要「知其然」。
1、《Java編程思想》
在有了一定的Java編程經驗之後,你需要「知其所以然」了。這個時候《Java編程思想》是一本讓你知其所以然的好書,它對於基本的面向對象知識有比較清楚的交待,對Java基本語法,基本類庫有比較清楚的講解,可以幫你打一個良好的Java編程基礎。這本書的缺點是實在太厚,也比較羅嗦,不適合現代人快節奏學習,因此看這本書要懂得取捨,不是每章每節都值得一看的,挑重點的深入看就可以了。
2、《Agile Java》中文版
這本書是出版社送給我的,我一拿到就束之高閣,放在書櫃一頁都沒有翻過,但是前兩天整理書櫃的時候,拿出來一翻,竟然發現這絕對是一本好書!這本書一大特點是以單元測試和TDD來貫穿全書的,在教你Java各種重要的基礎知識的過程中,潛移默化的影響你的編程思維走向敏捷,走向TDD。另外這本書成書很新,以JDK5.0的語法為基礎講解,要學習JDK5.0的新語法也不錯。還有這本書對於內容取捨也非常得當,Java語言畢竟類庫龐大,可以講的內容太多,這本書選擇的內容以及內容的多寡都很得當,可以讓你以最少的時間掌握Java最重要的知識,順便培養出來優秀的編程思路,真是一本不可多得的好書。
雖然作者自己把這本書定位在入門級別,但我不確定這本書用來入門是不是稍微深了點,我自己也准備有空的時候翻翻這本書,學習學習。
二、Java編程進階類
打下一個良好的Java基礎,還需要更多的實踐經驗積累,我想沒有什麼捷徑。有兩本書值得你在編程生涯的這個階段閱讀,培養良好的編程習慣,提高你的代碼質量。
1、《重構 改善既有代碼的設計》
這本書名氣很大,不用多介紹,可以在閑暇的時候多翻翻,多和自己的實踐相互印證。這本書對你產生影響是潛移默化的。
2、《測試驅動開發 by Example》
本書最大特點是很薄,看起來沒有什麼負擔。你可以找一個周末的下午,一邊看,一邊照做,一個下午就把書看完,這本書的所有例子跑完了。這本書的作用是通過實戰讓你培養TDD的思路。
三、Java架構師之路
到這個階段,你應該已經非常嫻熟的運用Java編程,而且有了一個良好的編程思路和習慣了,但是你可能還缺乏對應用軟體整體架構的把握,現在就是你邁向架構師的第一步。
1、《Expert One-on-One J2EE Design and Development》
這本書是Rod Johnson的成名著作,非常經典,從這本書中的代碼誕生了springframework。但是好像這本書沒有中譯本。
2、《Expert One-on-One J2EE Development without EJB》
這本書由gigix組織翻譯,多位業界專家參與,雖然署名譯者是JavaEye,其實JavaEye出力不多,實在是忝居譯者之名。
以上兩本書都是Rod Johnson的經典名著,Java架構師的必讀書籍。在我所推薦的這些書籍當中,是我看過的最仔細,最認真的書,我當時讀這本書幾乎是廢寢忘食的一氣讀完的,有小時候挑燈夜讀金庸武俠小說的勁頭,書中所講內容和自己的經驗知識一一印證,又被無比精闢的總結出來,讀完這本書以後,我有種被打通經脈,功力爆增的感覺。
但是後來我看過一些其他人的評價,似乎閱讀體驗並沒有我那麼high,也許是因為每個人的知識積累和經驗不同導致的。我那個時候剛好是經驗知識積累已經足夠豐富,但是還沒有系統的整理成型,讓這本書一梳理,立刻形成完整的知識體系了。
3、《企業應用架構模式》
Martin的又一本名著,但這本書我只是泛泛的看了一遍,並沒有仔細看。這本書似乎更適合做框架的人去看,例如如果你打算自己寫一個ORM的話,這本書是一定要看的。但是做應用的人,不看貌似也無所謂,但是如果有空,我還是推薦認真看看,會讓你知道框架為什麼要這樣設計,這樣你的層次可以晉升到框架設計者的角度去思考問題。Martin的書我向來都是推崇,但是從來都沒有像Rod Johnson的書那樣非常認真去看。
4、《敏捷軟體開發 原則、模式與實踐》
Uncle Bob的名著,敏捷的經典名著,這本書比較特別,與其說是講軟體開發過程的書,不如說講軟體架構的書,本書用了很大篇幅講各種面向對象軟體開發的各種模式,個人以為看了這本書,就不必看GoF的《設計模式》了。
四、軟體開發過程
了解軟體開發過程不單純是提高程序員個人的良好編程習慣,也是增強團隊協作的基礎。
1、《UML精粹》
UML其實和軟體開發過程沒有什麼必然聯系,卻是軟體團隊協作溝通,撰寫軟體文檔需要的工具。但是UML真正實用的圖不多,看看這本書已經足夠了,完全沒有必要去啃《UML用戶指南》之類的東西。要提醒大家的是,這本書的中譯本翻譯的非常之爛,建議有條件的看英文原版。
2、《解析極限編程 擁抱變化》XP
這是Kent Beck名著的第二版,中英文對照。沒什麼好說的,必讀書籍。
3、《統一軟體開發過程》UP
其實UP和敏捷並不一定沖突,UP也非常強調迭代,測試,但是UP強調的文檔和過程驅動卻是敏捷所不取的。不管怎麼說,UP值得你去讀,畢竟在中國真正接受敏捷的企業很少,你還是需要用UP來武裝一下自己的,哪怕是披著UP的XP。
4、《敏捷建模》AM
Scott Ambler的名著,這本書非常的progmatic,告訴你怎麼既敏捷又UP,把敏捷和UP統一起來了,又提出了很多progmatic的建議和做法。你可以把《解析極限編程 擁抱變化》、《統一軟體開發過程》和《敏捷建模》這三本書放在一起讀,看XP和UP的不同點,再看AM是怎麼統一XP和UP的,把這三種理論融為一爐,形成自己的理論體系,那麼你也可以去寫書了。
五、軟體項目管理
如果你突然被領導提拔為項目經理,而你完全沒有項目管理經驗,你肯定會心裡沒底;如果你覺得自己管理項目不善,很想改善你的項目管理能力,那麼去考PMP肯定是遠水不解近渴的。
1、《快速軟體開發》
這也是一本名著。可以這樣說,有本書在手,你就有了一個項目管理的高級參謀給你出謀劃策,再也不必擔心自己不能勝任的問題了。這本書不是講管理的理論的,在實際的項目管理中,講這些理論是不解決問題的,這本書有點類似於「軟體項目點子大全」之類的東西,列舉了種種軟體項目當中面臨的各種問題,以及應該如何解決問題的點子,你只需要稍加變通,找方抓葯就行了。
六、總結
在這份推薦閱讀書籍的名單中,我沒有列舉流行的軟體框架類學習書籍,例如Struts,Hibernate,Spring之類,也沒有列舉AJAX方面的書籍。是因為這類書籍容易過時,而上述的大半書籍的生命周期都足夠長,值得你去購買和收藏。
3. JUnit主要用來完成什麼
JUnit是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源於Kent Beck的sUnit的xUnit家族中最為成功的一個。 JUnit有它自己的JUnit擴展生態圈。多數Java的開發環境都已經集成了JUnit作為單元測試的工具
另外junit是在極限編程和重構(refactor)中被極力推薦使用的工具,因為在實現自動單元測試的情況下可以大大的提高開發的效率,但是實際上編寫測試代碼也是需要耗費很多的時間和精力的,那麼使用這個東東好處到底在哪裡呢?筆者認為是這樣的:
極限編程
要求在編寫代碼之前先寫測試,這樣可以強制你在寫代碼之前好好的思考代碼(方法)的功能和邏輯,否則編寫的代碼很不穩定,那麼你需要同時維護測試代碼和實際代碼,這個工作量就會大大增加。因此在極限編程中,基本過程是這樣的:構思-> 編寫測試代碼-> 編寫代碼-> 測試,而且編寫測試和編寫代碼都是增量式的,寫一點測一點,在編寫以後的代碼中如果發現問題可以較快的追蹤到問題的原因,減小回歸錯誤的糾錯難度。
重構
其好處和極限編程中是類似的,因為重構也是要求改一點測一點,減少回歸錯誤造成的時間消耗。
其他情況
我們在開發的時候使用junit寫一些適當的測試也是有必要的,因為一般我們也是需要編寫測試的代碼的,可能原來不是使用的junit,如果使用junit,而且針對介面(方法)編寫測試代碼會減少以後的維護工作,例如以後對方法內部的修改(這個就是相當於重構的工作了)。另外就是因為junit有斷言功能,如果測試結果不通過會告訴我們哪個測試不通過,為什麼,而如果是像以前的一般做法是寫一些測試代碼看其輸出結果,然後再由自己來判斷結果是否正確,使用junit的好處就是這個結果是否正確的判斷是它來完成的,我們只需要看看它告訴我們結果是否正確就可以了,在一般情況下會大大提高效率。
4. 為什麼使用腳本語言
這通常會提供更快捷
的應用程序開發能力,以及更高的編程生產力。但是,腳本語言和系統編程語言的目標是不同的。腳本語言被設計用於把應用程序集成起來,而不是實現復雜的數據
結構和演算法。因此,為了保證實用性,腳本語言必須能夠訪問不同類型的組件。
通常,腳本語言不會替代系統編程語言。它們相互補充(Ousterhout, 1998)。一般來說,系統編程語言應該被用於如下目的:
開發復雜的演算法或者數據結構
實現計算密集型應用
操作大型數據集
實現良好定義的、緩慢變更的需求
是大型項目的一部分。
但是,腳本語言應該被用於如下目的:
連接已有的組件
處理經常變化燃帆的多種類型的實體
擁有快速變化的功能
是小型或者中型項目的一部分。
相對於系統編程語言,腳本語言的主要長處是所需的編碼工作量相對少。通常,系統編程語言的代碼看起來非常復雜,難以維護。這是因為系統編程語言的代碼需要大量的模板或者轉換代碼。
系統編程語言是強類型的,能夠確保代碼的安全性和健壯性。在強類型語言中,變數必須被指定為一種類型,只能按照固定方式使用。盡管強類型特性使得大
型程序的可管理性更好,並且允許編譯器(靜態地)檢測特定類型的錯誤,但可能有時候起不到類型安全保護作用。比如,當事先很難或者不可能決定變數的類型
時,強類型宴段姿是沒有用處的。當連接組件時,這種情況會經常發生。
為簡化組件連接任務,腳本語言被設計成弱類型。這意味著,在不同環境下,變數可以以多種方式使用。但是,當代碼被實際執行時,才會檢測變數是否被非
法使用。比如,盡管Groovy在編譯時(靜態地)檢查程序的語法,(動態地)檢測方法調用是否正確發生在運行時。最終結果是,正確編譯的Groovy腳
本在運行時也許會拋出異常,甚至導致非正常結束。
弱類型並不意味著代碼是不安全的,或者不健壯。極限編程(Beck,
2004)已經成為一種軟體開發方法。這個方法注重測試,使用全晌絕面的單元測試方案(Link,
2003)來驅動開發過程。通過在不同環境下執行所編寫的代碼,就可以保證代碼的安全性和健壯性。當開發Groovy腳本時,單元測試應該是基礎的開發過
程。實際上,開發經驗已經證明,在弱類型語言中,綜合運用弱類型和單元測試通常比傳統系統編程語言的強類型檢測更好。這樣的話,就同時擁有弱類型的靈活性和單元測試的全面保障。
5. 極限編程和其它的軟體開發方法的區別。 盡量全一點。2000字左右
極限編程(ExtremeProgramming,簡稱XP)是由KentBeck在1996年提出的。KentBeck在九十年代初期與WardCunningham共事時,就一直共同探索著新的軟體開發方法,希望能使軟體開發更加簡單而有效。Kent仔細地觀察和分析了各種簡化軟體開發的前提條件、可能行以及面臨的困難。1996年三月,Kent終於在為DaimlerChrysler所做的一個項目中引入了新的軟體開發觀念——XP。
極限編程是一個輕量級的、靈巧的軟體開發方法;同時它也是一個非常嚴謹和周密的方法。它的基礎和價值觀是交流、樸素、反饋和勇氣;即,任何一個軟體項目都可以從四個方面入手進行改善:加強交流;從簡單做起;尋求反饋;勇於實事求是。XP是一種近螺旋式的開發方法,它將復雜的開發過程分解為一個個相對比較簡單的小周期;通過積極的交流、反饋以及其它一系列的方法,開發人員和客戶可以非常清楚開發進度、變化、待解決的問題和潛在的困難等,並根據實際情況及時地調整開發過程。
極限編程中有四個核心價值是我們在開發中必須注意的:溝通(Communication)、簡單(Simplicity)、反饋(Feedback)和勇氣(Courage)。 XP用「溝通、簡單、反饋和勇氣」來減輕開發壓力和包袱;無論是術語命名、專著敘述內容和方式、過程要求,都可以從中感受到輕松愉快和主動奮發的態度和氣氛。這是一種幫助理解和更容易激發人的潛力的手段。XP用自己的實踐,在一定范圍內成功地打破了軟體工程「必須重量」才能成功的傳統觀念。
XP精神可以啟發我們如何學習和對待快速變化、多樣的開發技術。成功學習XP的關鍵,是用「溝通、簡單、反饋和勇氣」的態度來對待XP;輕松愉快地來感受XP的實踐思想;自己認真實踐後,通過對真實反饋的分析,來決定XP對自己的價值;有勇氣接受它,或改進它。
XP中一些基本概念的簡介 UserStory:開發人員要求客戶把所有的需求寫成一個個獨立的小故事,每個只需要幾天時間就可以完成。開發過程中,客戶可以隨時提出新的UserStory,或者更改以前的UserStory。 StoryEstimates和開發速度:開發小組對每個UserStory進行估算,並根據每個開發周期(Iteration)中的實際情況反復計算開發速度。這樣,開發人員和客戶能知道每個星期到底能開發多少UserStory。 ReleasePlan和ReleaseScope:整個開發過程中,開發人員將不斷地發布新版本。開發人員和客戶一起確定每個發布所包含的UserStory。 Iteration(開發周期,或稱迭代)和IterationPlan:在一個Release過程中,開發人員要求客戶選擇最有價值的UserStory作為未來一兩個星期的開發內容。 TheSeed:第一個迭代(Iteration)完成後,提交給客戶的系統。雖然這不是最終的產品,但它已經實現了幾個客戶認為是最重要的Story,開發人員將逐步在其基礎上增加新的模塊。 ContinuousIntegration(整合):把開發完的UserStory的模塊一個個拼裝起來,一步步接近乃至最終完成最終產品。 驗收測試(功能測試):對於每個UserStory,客戶將定義一些測試案例,開發人員將使運行這些測試案例的過程自動化。 UnitTest(單元測試):在開始寫程序前,程序員針對大部分類的方法,先寫出相應的測試程序。 Refactoring(重構):去掉代碼中的冗餘部分,增加代碼的可重用性和伸縮性。
6. 極限開發的介紹
極限開發也叫做極限編程extreme programing,縮寫為XP。該方法是由Kent Beck於1999年提出的一種軟體開發方法,適用嫌純灶於軟體需求褲如模糊且揮發芹扮性強、開發團隊人數在十人以下、開發地點集中的場合。
7. 《解析極限編程擁抱變化》pdf下載在線閱讀全文,求百度網盤雲資源
《解析極限編程》(Kent Beck)電子書網盤下載免費在線閱讀
鏈接:
書名:解析極限編程
作者:Kent Beck
譯者:雷劍文
豆瓣評分:8.2
出版社:機械工業出版社
出版年份:2011-9
頁數:167
內容簡介:
極限編程(XP)是適用於中小型團隊在需求不明確或者迅速變化的情況下進行軟體開發的輕量級方法學。本書是XP宣言,也是第一本有關XP的圖書。
這本書介紹了XP背後的思想——它的根源、哲學、情節等。它將幫助讀者選擇是否在項目中使用XP時做出明智的決策。本書的另一個目的是幫助那些已經在使用 XP的讀者更好地理解它。 對程序員而言,XP做出的承諾是他們每天能夠處理真正重要的工作,而不必單獨面對令人擔憂的狀況。他們將能夠集中全力來使他們的系統獲得成功。他們將做出最適合由他們來做的決策。對於客戶和管理人員而言,XP的承諾是他們將從每個編程周期中獲得最多的利益。他們將能夠在開發的中途更改項目的方向而不用承擔太高的成本。
本書適合所有軟體開發人員、管理人員參考。
作者簡介:
Kent Beck一向挑戰軟體工程教條,促進諸如模式、測試驅動開發和極限編程等思想。目前屬於Three Rivers Institute和Agitar Software,他是許多Addison-Wesley著作的作者。
Cynthia Andres擁有心理學學士學位,在組織行為學、決策分析和婦女研究方面工作。從XP誕生以來她就跟Beck一起工作於XP的社會方面。她也屬於Three Rivers Institute。
8. 什麼叫有效實踐
極限編程-XP-的有效實踐
2007-01-30 源自:IT粉絲網 網友評論 我要發布知識
本文章地址:http://kao.itfensi.com/IT/soft/System/117009070019269.html [點擊復制地址分享知識給朋友]
在按照我的理解方式審查了軟體開發的生命周期後,我得出一個結論:實際上滿足工程設計標準的惟一軟體文檔,就是源代碼清單。 -- jack reeves
簡介
2001年,為了解決許多公司的軟體團隊陷入不斷增長的過程泥潭,一批業界專家一起概括出了一些可以讓軟體開發團隊具有快速工作、響應變化能力的價值觀和原則,他們稱自己為敏捷聯盟。敏捷開發過程的方法很多,主要有:scrum,crystal,特徵驅動軟體開發(feature driven development,簡稱fdd),自適應軟體開發(adaptive software development,簡稱asd),以及最重要的極限編程(extreme programming,簡稱xp)。極限編程(xp)是於1998年由smalltalk社群中的大師級人物kent beck首先倡導的。
設計和編程都是人的活動。忘記這一點,將會失去一切。
-- bjarne stroustrup
極限編程(xp)是敏捷方法中最箸名的一個。它是由一系列簡單卻互相依賴的實踐組成。這些實踐結合在一起形成了一個勝於部分結合的整體。
下面是極限編程的有效實踐:
1、 完整團隊
xp項目的所有參與者(開發人員、客戶、測試人員等)一起工作在一個開放的場所中,他們是同一個團隊的成員。這個場所的牆壁上隨意懸掛著大幅的、顯著的圖表以及其他一些顯示他們進度的東西。
2、 計劃游戲
計劃是持續的、循序漸進的。每2周,開發人員就為下2周估算候選特性的成本,而客戶則根據成本和商務價值來選擇要實現的特性。
3、 客戶測試
作為選擇每個所期望的特性的一部分,客戶可以根據腳本語言來定義出自動驗收測試來表明該特性可以工作。
4、 簡單設計
團隊保持設計恰好和當前的系統功能相匹配。它通過了所有的測試,不包含任何重復,表達出了編寫者想表達的所有東西,並且包含盡可能少的代碼。
5、 結對編程
所有的產品軟體都是由兩個程序員、並排坐在一起在同一台機器上構建的。
6、 測試驅動開發
編寫單元測試是一個驗證行為,更是一個設計行為。同樣,它更是拍銀一種編寫文檔的行為。編寫單元測試避免了相當數量的反饋循環,尤其是功功能能驗證方面的反饋循環。程芹棗序員以非常短的循環周期工作,他們先增加一個失敗的測試,然後使之通過。
7、 改進設計
隨時利用重構方法改進已經腐化的代碼,保持襲首宴代碼盡可能的干凈、具有表達力。
8、 持續集成
團隊總是使系統完整地被集成。一個人拆入(check in)後,其它所有人責任代碼集成。
9、 集體代碼所有權
任何結對的程序員都可以在任何時候改進任何代碼。沒有程序員對任何一個特定的模塊或技術單獨負責,每個人都可以參與任何其它方面的開發。
10、編碼標准
系統中所有的代碼看起來就好像是被單獨一人編寫的。
11、隱喻
將整個系統聯系在一起的全局視圖;它是系統的未來影像,是它使得所有單獨模塊的位置和外觀變得明顯直觀。如果模塊的外觀與整個隱喻不符,那麼你就知道該模塊是錯誤的。
12、可持續的速度
團隊只有持久才有獲勝的希望。他們以能夠長期維持的速度努力工作,他們保存精力,他們把項目看作是馬拉松長跑,而不是全速短跑。
極限編程是一組簡單、具體的實踐,這些實踐結合在形成了一個敏捷開發過程。極限編程是一種優良的、通用的軟體開發方法,項目團隊可以拿來直接採用,也可以增加一些實踐,或者對其中的一些實踐進行修改後再採用。
9. 《重構改善既有代碼的設計》epub下載在線閱讀全文,求百度網盤雲資源
《重構》(Martin Fowler)電子書網盤下載免費在線閱讀
鏈接: https://pan..com/s/1hLRHR04m-ylbTcta3MY_Yg
書名:重構
作者:Martin Fowler
譯者:熊節
豆瓣評分:9.0
出版社:人民郵電出版社
出版年份:2010
頁數:428
內容簡介:
重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善代碼。多年前,正是本書原版的出版,使重構終於從編程高手們的小圈子走出,成為眾多普通程序員日常開發工作中不可或缺的一部分。本書也因此成為與《設計模式》齊名的經典著作,被譯為中、德、俄、日等眾多語言,在世界范圍內暢銷不衰。
本書凝聚了軟體開發社區專家多年摸索而獲得的寶貴清棗經驗,擁有不因時光流逝而磨滅的價值。今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支持力度,都與本書最初出版時不可同日而語,但書中所蘊涵的意味和精華,依然值得反鄭悔復咀嚼,而且往往能夠常讀常新。
作者簡介:
Martin Fowler 世界軟體開發大師,在面向對象分析設計、UML、模式、XP和重構等領域都有卓越貢獻,現為著名軟體開發咨詢公司ThoughtWorks的首席科學家。他的多部著作《分析模式》、《UML精粹》和《企喊正正業應用架構模式》等都已經成為膾炙人口的經典。
其他參編者——
Kent Beck 軟體開發方法學的泰斗,極限編程的創始人。他是Three Rivers Institute公司總裁,也是Agitar Software的成員。
John Brant和Don Roberts The Refactory公司的創始人,Refactoring Browser (http://st-www.cs.illinois.e/users/brant/Refactory/)的開發者,多年來一直從事研究重構的實踐與理論。
William Opdyke 目前在朗訊貝爾實驗室工作,他寫的關於面向對象框架的博士論文是重構方面的第一篇著名文章。
10. <軟體工程>的好書
軟體工程導論第四版張海潘編著
最適合初學者
軟體工程---實踐者研究 機械工業出版社
<<軟體工程-實踐者的研究方法>>
Software Engineering: A Practitioner's Approach
Roger s.Pressman 梅宏
總體方法論和過程
第1名:
解析極限編程——擁抱變化(影印版)
原書名:Extreme Programming Explained:Embrace Change
作者:Kent Beck
出版社:中國電力出版社
原出版社:Addison-Wesley
頁書:194
定價:26
出版日期:2003-9-1
專家評語:
曲俊生:
XP(極限編程)由於其高度可操作性,尤其是對於業界眾多實踐的總結,在敏捷軟體開發方法中一馬當先,獲得了廣泛的研究與關注。本書是了解XP的必讀寶典,其中對於XP的原則、核心價值、最佳實踐都有深入的描述,更加難能可貴的是,作者並沒有效法其他鼓動者,將XP推到「萬金油」的高度,而是非常清楚地列舉了它不適用的地方。同時,作者也指出,不要太深入地追究您在項目中採用的是否是完全的XP實踐,而應該根據項目的實際進行剪裁。
本書適合對於敏捷軟體開發感興趣,同時又想找到一個可操作性較強方法的開發人員。
王詠剛:
單憑書名里「擁抱變化」這四個字,Kent Beck這本專門給大夥兒解釋極限編程是什麼東東的紅寶書就沒白寫。要說也是,那些沒事兒就鼓搗世界級的軟體工程理論、動輒就要寫1000頁以上大部頭的老先生們做夢也想不到,他們的眼中釘肉中刺,他們想方設法要「管理」、「控制」的對象——軟體開發里的「變化」——在Beck看來就像是楊過身邊的大雕,雖然長得丑點兒,卻能陪你練劍,讓你成為真正的大俠。聽Beck的沒錯,趕快放下架子,和「變化」打成一片吧,要不然你永遠也甭想練成獨孤九劍。
第2名:
敏捷軟體開發(影印版)
原書名:Agile Software Development
作者:Alistair Cockburn
出版社:人民郵電出版社
原出版社:Addison-Wesley
頁數:324 定價:35
出版日期:2003-8-1
專家評語:
曲俊生:
很早以前就讀到英文的電子版,在很大程度上,本書是對於RUP等方法論的顛覆,尤其是在國內「軟體藍領」宣傳大行其道的時候,本書構成了一副有效的清醒劑。本書是Cockburn從20多年的IBM工作中總結出來的實踐結晶。書中充滿了睿智的比喻與描述,例如,將軟體開發形容成一場游戲。書中對於水晶方法的介紹固然可貴,但是更加精彩的是對於人、溝通等主題的深入描述,可以說,這是既《人件》之後對「人」在軟體開發中重要作用描述的又一本經典著作。
該書也不是了解SE(軟體工程)的入門書籍,適合於對傳統軟體開發過程有深入理解,但是對於敏捷軟體開發了解不深的PM(項目經理)詳細閱讀。
第3名:
測試驅動開發(影印版)
原書名:Test-Driven Development
作者:Kent Beck
出版社:中國電力出版社
原出版社:Addison-Wesley
頁數:226 定價:32
出版日期:2003-8-1
專家評語:
徐鋒:
分析、設計、編碼、測試,已經成為了軟體開發領域亘古不變的真理。Kent Beck,這一全力追求敏捷,希望將編程發揮到極限的黑客級大師,提出了顛覆性的理論——測試先行。在本書中,作者結合編程實例,說道理、講方法,並結合自動化測試框架來提高效能。讓筆者看完之外,就有躍躍欲試之感,叛逆的精神融入了每一個細胞。
該帖由: lindows修改,時間 2004-1-6 上午11:44
分析和設計
第1名:
編寫有效用例
原書名:Writing Effective Use Cases
作者:Alistair Cockburn
出版社:機械工業出版社
原出版社:Addison-Wesley
頁數:304
定價:25
出版日期:2002-7-1
專家評語:
張恂:
用例是10多年來最重要的需求分析技術,更是現代軟體過程和項目管理的主驅動軸。隨著對用例理解的深入,我不禁倒吸一口氣:對於大多數項目,如果不細化到用例這個層次,我們過去寫的所謂「需求」其實都算不上真正的需求。此書是繼Ivar Jacobson的OOSE之後,用例兩大流派的「教主」之一Alistair Cockburn的代表之作,而且我一直認為它是迄今為止最好的用例教材。
10多年前Cockburn曾經聽過Jacobson的課,沒想到後來他在用例技術的實用化方面做出了貢獻,大有青出於藍而勝於藍之勢。大概與作者喜歡作詩(以及他對道德經的愛好)有關,我很喜歡他的寫作風格:依著人們的直覺娓娓道來,在平淡無奇的文字背後卻折射出極其豐富的項目經驗和扎實的專業技巧,讀完之後你會驚訝地發現一切竟然如此簡單和美妙,這不就是軟體開發的真諦么?
徐鋒:
用例分析技術是一個偉大的創舉,它將開發團隊帶到了客戶的視角上,這是一個良好的驅動點。掌握用例分析技術,將對你的職業生涯帶來很大的益處。《編寫有效用例》是你的起點,本書能夠幫助你真正有效地利用該技術,更好地掌握這一看似十分簡單、卻又十分復雜的需求分析方法。薄薄的一本書,卻記載著方方面面問題的答案,從這里騰飛吧。
第2名:
重構——改善既有代碼的設計(影印版)
原書名:Refactoring: Improving the Design of
Existing Code
作者:Martin Fowler
譯者:侯捷 熊節
出版社:中國電力出版社
原出版社:Addison-Wesley
頁數:431 定價:68
出版日期:2003-8-1
專家評語:
王詠剛:
沒有什麼比《重構》這本書更能理解程序員的苦衷並處處為程序員著想了。那些軟體工程權威們總板著臉說「你不能這樣,你不能那樣」,好像所有程序員都是該他們管教的小孩子;而《重構》卻告訴我們說,沒人能一步到位地把所有問題都想清楚,設計差不多了就開始寫代碼吧,等寫煩了寫膩了的時候再抽空兒零敲碎打修修補補——這可不是三天打魚兩天曬網,用形而上學的話講,這叫重構。
第3名:
分析模式——可復用對象模型(影印版)
原書名:Analysis Patterns:Reusable Object Models
作者:Martin Fowler
出版社:中國電力出版社
原出版社:Addison-Wesley
頁數:357 定價:48
出版日期:2003-6-20
專家評語:
宓吉琦:
應該是一本比較難懂的書,晦澀程度可能還超過設計模式,但也是任何一個想做架構師的人所必讀的。軟體是為其他產業服務的, 只有能把其他產業的需求順利轉化為軟體功能, 同時具有軟體設計藝術的人才是好的架構師。本書中,作者就把他從事的許多行業的寶貴建模經驗無條件地提供給大家,這些建模的經驗的積累往往需要花費幾年或者十幾年的時間。
項目和配置管理
第1名:
人月神話(影印版)
原書名:The Mythical Man-Month
作者:Frederick Phillips Brooks, Jr.
出版社:中國電力出版社
原出版社:Addison-Wesley
頁數:322
定價:25
出版日期:2003-3-1
專家評語:
青潤:
一種感慨,一種沉默……在該書中看到的神品的推薦,讓人唏噓不已。不過,這本書的確是軟體工程領域內的一本極品,國內見過似乎理論道行很深的書,但是卻沒有見到過有這樣理論與實踐深度並存的書籍出現過!
沒有項目經歷,沒有工程經驗,勸你千萬不要閱讀此書,否則,是對神品的褻瀆!而且,你也絕對不可能看明白的!
「開發人員交付的是用戶滿意度,而不僅僅是有形的產品」——沒有經驗的人能看明白么?國內的軟體以工程項目居多,國內的教育以理論為主,理論與實踐的脫節,學生學到的幾乎是空白,這也就是為什麼其他專業轉過來從事計算機行業的人往往在軟體公司裡面的表現往往比計算機專業畢業要好的一個很重要因素。
王詠剛:
網上有不少板磚拍在這本書上,因為有人嫌這書太老套,幾十年前的破事兒了還敢擦脂抹粉地端出來蒙人騙錢。我偏要說這書挺好看,關鍵是你不能拿它當項目管理入門的教材看,你得把他當成一本跟你談心聊天講故事的散文集來看。你瞧前些年,那麼多女孩子捧著本余秋雨如醉如痴似顰似笑風情萬種,難道就不許我們程序員揣著《人月神話》假裝深沉故作風雅,既陶冶了知識青年的道德情操又學習了項目管理的思想方法嗎?
第2名:
快速軟體開發(影印版)
原書名:Rapid Development
作者:Steve McConnell
出版社:機械工業出版社
原出版社:Microsoft Press
頁數:676
定價:58
出版日期:2003-3-1
專家評語:
張恂:
眾人看完此書皆掩卷長嘆,相見恨晚啊!在外面參加了那麼多國際項目管理課程,對改進「軟體」項目管理到底有多大真實效果呢?軟體項目經理當然要懂軟體項目自身的規律!誇張一點,學了這么多通用的PM知識,可能還不及這樣一本實話實說的書管用。軟體項目經理可能是軟體行業中承擔壓力最大,也是最有苦難言,最需要關心的一個群體。書里有這么多美國同行的經驗教訓、陷阱和誤區,如果你對此還一無所知,難免會一而再、再而三地掉進去;書里還有這么多優秀的實踐方法,你為什麼不試著用用看呢?所以我的建議是,如果Steve McConnell這位朴實的優秀程序員、著有多本名著的技術作家兼國際軟體工程權威說話了,大家一定要仔細聽聽。這年頭的「必讀經典」大有泛濫之勢,實在讓人招架不住,可是這次我甘冒風險大膽地說:對於改變國內軟體項目管理的窘況,此乃必讀之選。
第3名:
領導軟體開發團隊
原書名:Leading a Software Development Team:A
Developer's Guide to Successfully Leading
People and Projects
作者:Richard Whitehead
譯者:吳志明
出版社:電子工業出版社
原出版社:Addison-Wesley
頁數:304 定價:36
出版日期:2002-5-1
專家評語:
徐鋒:
一本親切的好書,讓我愛不釋手。如果你第一次擔任項目經理,這本書可以讓你迅速進入角色;如果你已有豐富的項目管理經驗,你也能夠從中吸取養份,解決埋藏在你心中很久的疑問。其採用的實例為驅動的寫作方法,可以成為案頭常備的寶典。