敏捷技能修煉

出版時(shí)間:2012-9-5  出版社:機(jī)械工業(yè)出版社華章公司  作者:Alan Shalloway,Scott Bain,Ken Pugh,Amir Kolsky  頁(yè)數(shù):185  譯者:鄭立,鄒駿,黃靈  
Tag標(biāo)簽:無(wú)  

前言

前言盡管本書(shū)是一本技術(shù)性的書(shū)籍,但里面涉及的很多想法都是我們?cè)贜etObjectives公司的敏捷開(kāi)發(fā)培訓(xùn)課程中迸發(fā)出來(lái)的。過(guò)去,在給學(xué)生傳授如何采用Scrum或者精益方法的時(shí)候,經(jīng)常有人會(huì)問(wèn)我:“我們應(yīng)該怎樣做,才有能力一步步地構(gòu)造我們的軟件呢?”答案對(duì)我而言顯而易見(jiàn)。他們其實(shí)真正想問(wèn)的問(wèn)題是:“我們?cè)趺床拍苡米詈玫姆绞?,學(xué)習(xí)如何一步步地構(gòu)造我們的軟件?”關(guān)于這個(gè)問(wèn)題,有下面三種方法:讀書(shū)我相信任何一個(gè)讀過(guò)并且讀懂了《DesignPatternsExplained:ANewPerspectiveonObject- OrientedDesign》和《EmergentDesign:TheEvolutionaryNatureofProfessionalSoftwareDevelopment》的人,都知道如何一步步地寫(xiě)軟件。參加培訓(xùn)這個(gè)方法要更好一點(diǎn)。如果能夠把NetObjectives公司的課程(設(shè)計(jì)模式(DesignPatterns)和浮現(xiàn)式設(shè)計(jì)(EmergentDesign))結(jié)合在一起上,那就無(wú)法超越了。學(xué)習(xí)一些“小舵板”(trimtab)軟件開(kāi)發(fā)中的“小舵板”使得一步步地構(gòu)造軟件更加有效。第一種方法需要投入很多時(shí)間,第二種方法則花費(fèi)很高。相比之下,第三種方法所需要的投入則小得多。遺憾的是,這些“小舵板”不是簡(jiǎn)簡(jiǎn)單單就可以講清楚的?!笆裁词切《姘澹╰rimtab)呢?”它們是飛機(jī)和船只上的零件,用以減少控制飛機(jī)副翼或者船舵所需要的能量。但是這里“小舵板”的意思則是來(lái)源于BuckyFuller曾經(jīng)提到過(guò)的東西。在思考一個(gè)小小的人類個(gè)體能夠做什么的時(shí)候,一些東西曾經(jīng)給過(guò)我很深的沖擊。想象一下“瑪麗皇后”號(hào)——當(dāng)整艘船遠(yuǎn)去,它的舵浮現(xiàn)眼前。你會(huì)發(fā)現(xiàn),在舵的邊緣,有一個(gè)小零件,叫做“小舵板”。它是一個(gè)微縮版的船舵。只需移動(dòng)這塊小小的舵板,產(chǎn)生一個(gè)輕微的壓力,就可以拉動(dòng)整個(gè)船舵轉(zhuǎn)動(dòng),毫不費(fèi)力。我認(rèn)為小小的個(gè)體也可以成為“小舵板”。一個(gè)人在社會(huì)中的行為,就好比一艘船的舵板,細(xì)微的行動(dòng)也可以驅(qū)動(dòng)社會(huì)這艘大船向前行駛。所以,請(qǐng)叫我“小舵板”。換言之,這里要學(xué)習(xí)的“小舵板”,就是指可以讓我們?cè)谳^小投入下獲得最深刻理解的措施和真知灼見(jiàn)。在設(shè)計(jì)模式課程中,我們識(shí)別出三個(gè)基本的“小舵板”。實(shí)踐了這三點(diǎn)的學(xué)生,他們都看到了自己在設(shè)計(jì)和編程能力上的巨大提高?!斑@三點(diǎn)是什么?”當(dāng)然就是本書(shū)要講的內(nèi)容:意圖導(dǎo)向編程(ProgrammingbyIntention)。把使用從構(gòu)造中分離。編碼前考慮可測(cè)試性。這三點(diǎn)非常簡(jiǎn)單,實(shí)踐它們也幾乎不會(huì)增加額外的時(shí)間。實(shí)際上,它們都是與封裝相關(guān)的。第一點(diǎn)和第三點(diǎn)封裝的是行為的具體實(shí)現(xiàn),而第二點(diǎn)則顯然著重于封裝如何構(gòu)造。這個(gè)主旨非常重要,因?yàn)閷?duì)實(shí)現(xiàn)進(jìn)行封裝是一種抽象過(guò)程。它是眾多實(shí)現(xiàn)方式中的一種——在未來(lái),可能還會(huì)有其他的方式。我認(rèn)為,把新代碼集成到原有系統(tǒng)時(shí)遇到嚴(yán)重問(wèn)題的主要原因,就是因?yàn)橥浟诉@一點(diǎn)。要推薦的第四個(gè)“小舵板”是,遵循Shalloway原則。這一點(diǎn)需要多花點(diǎn)時(shí)間,但總是很有用處。本書(shū)就是“小舵板”的匯集。這些“小舵板”都是NetObjectives公司的講師和教練發(fā)現(xiàn)的敏捷軟件開(kāi)發(fā)人員可以遵從的基本要素,告訴我們?nèi)绾我杂行У男问絹?lái)編寫(xiě)高質(zhì)量的代碼。你可以在閑暇的時(shí)間里,按任何的章節(jié)順序來(lái)閱讀本書(shū)。也就是說(shuō),這些章節(jié)順序如此編排僅僅是為了協(xié)助我們理順?biāo)季w而已。

內(nèi)容概要

本書(shū)的4位作者都是世界頂級(jí)的軟件開(kāi)發(fā)專家和敏捷導(dǎo)師,都有數(shù)十年的軟件行業(yè)從業(yè)經(jīng)驗(yàn),其中3位曾榮獲Jolt大獎(jiǎng)。本書(shū)是敏捷軟件開(kāi)發(fā)領(lǐng)域公認(rèn)的經(jīng)典著作,權(quán)威性毋庸置疑。
書(shū)中內(nèi)容圍繞“敏捷式編程”這一主題展開(kāi),對(duì)每一位敏捷軟件開(kāi)發(fā)人員都應(yīng)該掌握的核心技能和技術(shù)進(jìn)行了深入闡述,總結(jié)出了大量最佳實(shí)踐,提供了一整套最精煉的技術(shù)集合,可以幫助他們?cè)陂_(kāi)發(fā)中變得游刃有余,極大地提高開(kāi)發(fā)效率和軟件質(zhì)量。
全書(shū)共分四個(gè)部分:第一部分(1~7章),闡述了在軟件開(kāi)發(fā)過(guò)程中能起到“四兩撥千斤”作用的幾種思想方法(“小舵板”),如意圖導(dǎo)向編程、分離構(gòu)造和使用、測(cè)試先行和Shalloway原則等,并總結(jié)了業(yè)界常用的幾種實(shí)踐,包括如何封裝、面向接口的設(shè)計(jì)和驗(yàn)收測(cè)試驅(qū)動(dòng)等;第二部分(8~9章),對(duì)過(guò)度設(shè)計(jì)和持續(xù)集成這兩個(gè)問(wèn)題進(jìn)行了深入的探討,并給出了最佳實(shí)踐;第三部分(10~13章),作者分享了很多只有在他們的教學(xué)現(xiàn)場(chǎng)才能獲得的經(jīng)驗(yàn),這些經(jīng)驗(yàn)是優(yōu)秀架構(gòu)師應(yīng)該具備的,具體包括共性和可變性分析、以開(kāi)放關(guān)閉原則為目標(biāo)的重構(gòu)、需求與功能接口、何時(shí)以及如何使用繼承等重要內(nèi)容;第四部分是附錄,介紹了統(tǒng)一建模語(yǔ)言、提高代碼質(zhì)量的原則,以及如何封裝原始數(shù)據(jù)類型等。

作者簡(jiǎn)介

Alan Shalloway,Net
Objectives公司創(chuàng)始人及CEO。Alan有40多年工作經(jīng)驗(yàn),他是計(jì)算機(jī)軟件行業(yè),特別是精益、看板、產(chǎn)品系列管理、scrum和敏捷設(shè)計(jì)方面的思想領(lǐng)導(dǎo)者。他幫助公司在企業(yè)級(jí)層面向精益和敏捷方式轉(zhuǎn)型,同時(shí)教授員工相關(guān)課程。Alan開(kāi)發(fā)了關(guān)于精益-敏捷的培訓(xùn)輔導(dǎo)方法,這幫助Net
Objectives公司的客戶取得了長(zhǎng)期的可持續(xù)的生產(chǎn)力。他經(jīng)?;钴S于全球范圍的高端峰會(huì)并發(fā)表精彩演講。他還是《Design
Patterns Explained: A New Perspective on Object-Oriented
Design》(Jolt獲獎(jiǎng)作品)和《Lean-Agile Pocket Guide for Scrum
Teams》的主要作者。在他的職業(yè)生涯中,Alan從事過(guò)多個(gè)行業(yè)。他是精益軟件和系統(tǒng)協(xié)會(huì)(the Lean Software and
Systems Consortium)的共同創(chuàng)始人及董事會(huì)成員。他擁有麻省理工學(xué)院計(jì)算機(jī)科學(xué)系的碩士學(xué)位和艾莫利大學(xué)(Emory
University)數(shù)學(xué)系的碩士學(xué)位。更多詳細(xì)信息請(qǐng)查看Twitter上的@alshalloway。
Scott
Bain,在計(jì)算機(jī)技術(shù)方面有將近40年經(jīng)驗(yàn),從事過(guò)軟件開(kāi)發(fā)、軟件工程、框架設(shè)計(jì)等方面的工作。Scott也曾經(jīng)從事課堂和遠(yuǎn)程教學(xué)等教育活動(dòng),包括課程的設(shè)計(jì)、實(shí)施培訓(xùn)和相關(guān)管理,給用戶提供認(rèn)證培訓(xùn)和終端用戶培訓(xùn)。目前Scott在敏捷分析和設(shè)計(jì)模式、高級(jí)軟件設(shè)計(jì)和可持續(xù)的測(cè)試驅(qū)動(dòng)開(kāi)發(fā)等方面進(jìn)行授課和提供咨詢。同時(shí),Scott還經(jīng)常在JavaOne和SDWest這樣的開(kāi)發(fā)者研討會(huì)上進(jìn)行精彩的演講。他是《Emergent
Design: The Evolutionary Nature of Professional Software
Development》的作者,此書(shū)榮獲了Jolt生產(chǎn)力獎(jiǎng)。
Ken Pugh, Net
Objectives公司高級(jí)咨詢師。憑借多年的豐富經(jīng)驗(yàn),他提供培訓(xùn)和輔導(dǎo),幫助公司向精益-敏捷轉(zhuǎn)型。他熱衷于研究溝通(特別是有效地傳遞需求)、業(yè)務(wù)價(jià)值交付,以及用精益原則來(lái)快速進(jìn)行高質(zhì)量的交付。同時(shí),在技術(shù)課題方面,他提供從面向?qū)ο笤O(shè)計(jì)到Linux/Unix等多方面的培訓(xùn)和指導(dǎo)。此外,他還寫(xiě)過(guò)好幾本編程書(shū)籍,包括獲得2006年Jolt大獎(jiǎng)的《Prefactoring:
Extreme Abstraction, Extreme Separation, Extreme
Readability》。最近的一本書(shū)是《Lean-Agile Acceptance Test Driven Development:
Better Software Through
Collaboration》。他的客戶遍及倫敦、波士頓、悉尼、北京和海得拉巴。工作之余,他喜歡滑雪、帆船、自行車和阿巴拉契亞徒步登山活動(dòng)。
Amir Kolsky,Net
Objectives的資深咨詢師、教練和培訓(xùn)師。Amir從事計(jì)算機(jī)科學(xué)領(lǐng)域已經(jīng)超過(guò)25年了。他在IBM研究院工作過(guò)10年,此外有9年時(shí)間在各種大小類型的公司擔(dān)任過(guò)首席架構(gòu)師和首席技術(shù)官等職位。他從2000年開(kāi)始接觸敏捷開(kāi)發(fā)。他先后創(chuàng)建了MobileSpear
以及XPand軟件公司,專門(mén)在以色列和歐洲提供敏捷輔導(dǎo)、軟件教育和敏捷項(xiàng)目實(shí)施。目前Amir把他的專業(yè)經(jīng)驗(yàn)帶到了Net
Objectivs,作為敏捷教練和講師,提供關(guān)于精益和敏捷軟件流程、工具和實(shí)踐、Scrum、極限編程、設(shè)計(jì)模式以及測(cè)試驅(qū)動(dòng)開(kāi)發(fā)方面的培訓(xùn)。

書(shū)籍目錄

推薦序
譯者序
叢書(shū)前言
前言
致謝
第一部分最關(guān)鍵的小舵板
第1章意圖導(dǎo)向編程
1.1意圖導(dǎo)向編程:一個(gè)實(shí)例
1.2優(yōu)點(diǎn)
1.2.1方法的內(nèi)聚性
1.2.2可讀性和表達(dá)性
1.2.3調(diào)試
1.2.4重構(gòu)和增強(qiáng)
1.2.5單元測(cè)試
1.2.6更易修改和擴(kuò)展
1.2.7在代碼中發(fā)現(xiàn)模式
1.2.8可遷移的方法
1.3小結(jié)
第2章分離構(gòu)造和使用
2.1一個(gè)重要的問(wèn)題
2.2兩種視圖
2.2.1創(chuàng)建視圖
2.2.2使用視圖
2.2.3隱藏的部分更容易改動(dòng)
2.2.4現(xiàn)實(shí)的做法
2.2.5一些實(shí)際的考量因素
2.3給你的決策計(jì)時(shí)
2.4重載和C++
2.5自我查驗(yàn)
2.6小結(jié)
第3章代碼未動(dòng),測(cè)試先行
3.1一個(gè)小舵板:測(cè)試與可測(cè)試性
3.2什么是測(cè)試
3.3可測(cè)試性和代碼質(zhì)量
3.4案例學(xué)習(xí):可測(cè)試性
3.4.1隨時(shí)應(yīng)對(duì)變化
3.4.2青蛙一樣的程序員
3.5一個(gè)關(guān)于測(cè)試先行的思考
3.5.1更好的設(shè)計(jì)
3.5.2更清晰的范圍和避免不必要的工作
3.5.3降低復(fù)雜性
3.5.4其他優(yōu)勢(shì)
3.5.5沒(méi)有例外
3.6小結(jié)
第4章Shalloway法則和Shalloway原則
4.1冗余的種類
4.1.1復(fù)制和粘貼
4.1.2“魔法”數(shù)字
4.1.3其他類型
4.2重新定義冗余
4.3其他形式的冗余
4.4設(shè)計(jì)模式在減少冗余時(shí)扮演的角色
4.5很少有開(kāi)發(fā)人員花費(fèi)大量的時(shí)間去“修改”代碼錯(cuò)誤
4.6冗余對(duì)代碼質(zhì)量其他方面的影響
4.7小結(jié)
第5章封裝
5.1未封裝的代碼:對(duì)全局變量的破壞
5.2成員標(biāo)志的封裝
5.3自封裝成員
5.4預(yù)防代碼更改
5.5封裝引用對(duì)象的難點(diǎn)
5.6用get()來(lái)打破封裝
5.7對(duì)象類型的封裝
5.8設(shè)計(jì)的封裝
5.9各個(gè)層次的封裝
5.10實(shí)用性建議:把困難封裝起來(lái)
5.11小結(jié)
第6章面向接口的設(shè)計(jì)
6.1針對(duì)接口的設(shè)計(jì)
6.2接口的定義
6.3接口約定
6.4分離不同的視圖
6.5接口的模擬實(shí)現(xiàn)
6.6讓接口保持簡(jiǎn)單
6.7避免過(guò)早采用繼承體系
6.8接口和抽象類
6.9依賴反轉(zhuǎn)原則
6.10多態(tài)性概述
6.11不是每個(gè)類都需要接口
6.12小結(jié)
第7章驗(yàn)收測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
7.1兩種開(kāi)發(fā)流程
7.2驗(yàn)收測(cè)試
7.3一個(gè)關(guān)于驗(yàn)收測(cè)試的實(shí)例
7.4實(shí)現(xiàn)驗(yàn)收測(cè)試
7.4.1針對(duì)用戶界面的測(cè)試腳本
7.4.2測(cè)試用戶界面
7.4.3XUnit測(cè)試
7.4.4驗(yàn)收測(cè)試框架
7.4.5四種方法間的聯(lián)系
7.5一個(gè)練習(xí)
7.6如果客戶不告訴你怎么做的時(shí)候,你應(yīng)該怎么辦
7.7小結(jié)
第二部分基本態(tài)度
第8章避免過(guò)度設(shè)計(jì)或設(shè)計(jì)不足
8.1給開(kāi)發(fā)人員的箴言
8.2代碼質(zhì)量病理學(xué)
8.3避免過(guò)度設(shè)計(jì)或設(shè)計(jì)不足
8.4把復(fù)雜度和返工最小化
8.5永不把代碼變得更糟/僅在有目的的情況下降低代碼質(zhì)量
8.6使代碼容易修改,足夠強(qiáng)大健壯,適應(yīng)變化并安全可靠
8.7在非面向?qū)ο蟮拇a或遺留系統(tǒng)里編寫(xiě)易于修改代碼的策略
8.8小結(jié)
第9章持續(xù)集成
9.1建立源代碼分支
9.1.1多版本:特殊分支
9.1.2孤立地工作:開(kāi)發(fā)分支
9.1.3問(wèn)題、解決方案、新的問(wèn)題
9.2將主干內(nèi)容合并回分支
9.3測(cè)試驅(qū)動(dòng)開(kāi)發(fā)與合并成本
9.4持續(xù)集成
9.5持續(xù)集成服務(wù)器
9.6小結(jié)
第三部分設(shè)計(jì)問(wèn)題
第10章共性和可變性分析
10.1用動(dòng)詞和名詞來(lái)做指南:警告,前面有危險(xiǎn)
10.2真正的問(wèn)題是什么
10.3我們所需要知道的
10.4共性和可變性分析
10.4.1共性分析
10.4.2可變性分析
10.4.3面向?qū)ο笤O(shè)計(jì)“一箭三雕”
10.5發(fā)掘?qū)ο蟮男路妒?br />10.6分析矩陣:一個(gè)用例學(xué)習(xí)
10.7小結(jié)
第11章以開(kāi)放關(guān)閉原則為目標(biāo)的重構(gòu)
11.1開(kāi)放關(guān)閉原則
11.1.1從開(kāi)放關(guān)閉原則引申到其他
11.1.2開(kāi)放關(guān)閉原則是一個(gè)“原則”
11.2重構(gòu)
11.2.1為何重構(gòu)
11.2.2負(fù)債還是投資
11.2.3重構(gòu)和遺留系統(tǒng)
11.2.4以開(kāi)放關(guān)閉原則為目標(biāo)的重構(gòu)
11.2.5“及時(shí)”設(shè)計(jì)
11.3小結(jié)
第12章需求與功能接口
12.1迪米特法則
12.2耦合,可惡的耦合,還有依賴
12.2.1耦合和可測(cè)試性
12.2.2需求與功能
12.3理想的分離方案:需求接口和
功能接口
12.4回到迪米特法則
12.5小結(jié)
第13章何時(shí)以及如何使用繼承
13.1“四人組”
13.2初始向量,最終結(jié)果
13.3優(yōu)先委托
13.4使用繼承與使用委托
13.5繼承的使用
13.6可擴(kuò)展性
13.7在敏捷開(kāi)發(fā)里應(yīng)用四人組的訓(xùn)誡
13.8測(cè)試問(wèn)題
13.9更多
第四部分附錄
附錄A統(tǒng)一建模語(yǔ)言概覽
附錄B代碼質(zhì)量
附錄C封裝原始數(shù)據(jù)類型

章節(jié)摘錄

第一部分Part1最關(guān)鍵的小舵板第1章意圖導(dǎo)向編程第2章分離構(gòu)造和使用第3章代碼未動(dòng),測(cè)試先行第4章Shalloway法則和Shalloway原則第5章封裝第6章面向接口的設(shè)計(jì)第7章驗(yàn)收測(cè)試驅(qū)動(dòng)開(kāi)發(fā)第1章Chapter1意圖導(dǎo)向編程舊貌總能換新顏。那些給我們寫(xiě)了極限編程書(shū)籍的人們這些人包括:KentBeck、CynthiaAndres、MartinFowler、JamesNewkirk、RobertMartin、RonJeffries、LisaCrispin、TipHouse、AnnAnderson和ChetHendrickson。也在著力于推廣一系列軟件開(kāi)發(fā)的最佳實(shí)踐。其中一個(gè)實(shí)踐,他們稱為“意圖導(dǎo)向編程”(ProgrammingbyIntention,也稱目的導(dǎo)向編程)。它并非一個(gè)全新的概念,數(shù)年前,在COBOL和Smalltalk等語(yǔ)言中,它是個(gè)非常普遍的編碼技術(shù)(常常稱為“自頂向下”編程)。實(shí)踐確實(shí)是個(gè)好東西:經(jīng)過(guò)時(shí)間檢驗(yàn)的東西往往最可靠,因?yàn)樗鼈兊膬r(jià)值在真實(shí)環(huán)境中被一次次地證明。本章中,我們將一起來(lái)考察這一實(shí)踐,首先,我們簡(jiǎn)單地說(shuō)明它是什么,然后研究我們遵照著做會(huì)有什么好處。最后討論它與測(cè)試、可測(cè)試性以及設(shè)計(jì)方面的相關(guān)性。1.1意圖導(dǎo)向編程:一個(gè)實(shí)例在這個(gè)實(shí)例中,需要寫(xiě)些代碼。我們需要?jiǎng)?chuàng)建一個(gè)服務(wù)程序,它接受一個(gè)業(yè)務(wù)交易,然后提交。我們決定(不管是正確或錯(cuò)誤)先簡(jiǎn)單創(chuàng)建一個(gè)對(duì)象,這個(gè)對(duì)象只包含一個(gè)公共方法來(lái)完成這件事。具體需求如下:交易信息開(kāi)始于一串標(biāo)準(zhǔn)ASCII字符串。這個(gè)信息字符串必須轉(zhuǎn)換成一個(gè)字符串的數(shù)組,數(shù)組存放的值是此次交易用到的領(lǐng)域語(yǔ)言(domainlanguage)中所包含的詞匯元素(token)。每一個(gè)詞匯元素必須標(biāo)準(zhǔn)化(第一個(gè)字母大寫(xiě),其余字母小寫(xiě),空格和非字母數(shù)字的符號(hào)都要?jiǎng)h掉)。包含超過(guò)150個(gè)詞匯元素的交易,應(yīng)該采用不同于小型交易的方式(不同的算法)來(lái)提交,以提高效率。如果提交成功,API方法應(yīng)該返回“true”;失敗,則應(yīng)該返回“false”。這里并沒(méi)有涉及某些細(xì)節(jié)(比如提交的算法具體是什么),這樣就可以只關(guān)注我們感興趣的實(shí)踐。有一點(diǎn)是應(yīng)該充分利用的:在學(xué)習(xí)一種程序語(yǔ)言編碼的時(shí)候,我們會(huì)把問(wèn)題分解為一系列的功能性步驟,在這個(gè)過(guò)程中,我們的思維不斷地得到鍛煉。隨著代碼寫(xiě)得越來(lái)越多,我們解決這類問(wèn)題的能力也變得越來(lái)越強(qiáng)。繼續(xù)考慮前面的那個(gè)問(wèn)題,需求列出的每一點(diǎn)要求都代表一個(gè)功能性步驟。在寫(xiě)代碼的過(guò)程中,我們會(huì)按照一定的順序,有意識(shí)地去完成每一點(diǎn)要求。而意圖導(dǎo)向編程是指,先假設(shè)當(dāng)前這個(gè)對(duì)象中,已經(jīng)有了一個(gè)理想方法,它可以準(zhǔn)確無(wú)誤地完成你想做的事情,而不是直接盯著每一點(diǎn)要求來(lái)編寫(xiě)代碼。先問(wèn)問(wèn)自己:“假如這個(gè)理想的方法已經(jīng)存在,它應(yīng)該具有什么樣的輸入?yún)?shù),返回什么值?還有,對(duì)我來(lái)說(shuō),什么樣的名字最符合它的意義?”

編輯推薦

《敏捷技能修煉:敏捷軟件開(kāi)發(fā)與設(shè)計(jì)的最佳實(shí)踐》編輯推薦:4位世界頂級(jí)軟件開(kāi)發(fā)專家、敏捷導(dǎo)師兼Jolt大獎(jiǎng)獲得者數(shù)十年工作經(jīng)驗(yàn)結(jié)晶,敏捷軟件開(kāi)發(fā)領(lǐng)域公認(rèn)的經(jīng)典著作。圍繞意圖導(dǎo)向編程、分離構(gòu)造和使用、測(cè)試先行、Shalloway原則、面向接口設(shè)計(jì)、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)、避免過(guò)度設(shè)計(jì)、持續(xù)集成、共性和可變性分析、重構(gòu)等核心技術(shù)主題給出了大量最佳實(shí)踐,字字珠璣。

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    敏捷技能修煉 PDF格式下載


用戶評(píng)論 (總計(jì)18條)

 
 

  •   已經(jīng)開(kāi)始按照書(shū)中介紹的一些原則和方法在自己的代碼中一步步進(jìn)行實(shí)踐
  •   這是一個(gè)非常好的書(shū),總結(jié)出了很多最佳實(shí)踐
  •   好是好,難題在工作中怎么用
  •   看了一下這本書(shū),發(fā)現(xiàn)很多技巧都是通用的.在其它的書(shū)中也提到過(guò)這些。
  •   大師寫(xiě)的值得一看
  •   打好自己的基礎(chǔ),看看前輩的指導(dǎo).
  •   簡(jiǎn)單翻了一下,還不錯(cuò),就是感覺(jué)書(shū)薄了一點(diǎn)
  •   書(shū)不厚, 提出的理念也不算多,不過(guò)都是值得好好領(lǐng)會(huì)、實(shí)踐和掌握的。 有些內(nèi)容略顯單薄了些, 對(duì)不住4位頂級(jí)軟件開(kāi)發(fā)專家的名頭, 總體還是可以的,
  •   還可以,感覺(jué)對(duì)日常工作幫助不是太大
  •   不錯(cuò),值得一看,但有點(diǎn)難懂。
  •   書(shū)的內(nèi)容單薄,不值得這個(gè)定價(jià)。
  •   挺好 的 理論知識(shí)挺不錯(cuò)
  •   挺好,給老公帶的,應(yīng)該實(shí)用
  •   中等的推薦
  •   十條,木有最佳實(shí)踐
  •   書(shū)內(nèi)容不錯(cuò),就是太薄了
  •   敏捷開(kāi)發(fā)領(lǐng)域的一本好書(shū)
  •   里面的思想很好!
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7