你可曾想過測試驅(qū)動開發(fā)的真正含義嗎?你又曾想過高級顧問是如何運用*實踐賺取高額鐘點費的嗎?或許,你正準(zhǔn)備進(jìn)行自動化的構(gòu)建,使代碼在版本控制之中,為軟件進(jìn)行重構(gòu),并將一些設(shè)計模式集成到你的軟件系統(tǒng)之中。在你完成本書閱讀之時,你將能跟蹤工作量完成狀況,解釋開發(fā)團(tuán)隊中開發(fā)人員的編碼能力與時間效率值,并且為項目反復(fù)進(jìn)行需求、設(shè)計、開發(fā)與部署等工作。
我們認(rèn)為你的時間寶貴,不應(yīng)該浪費在努力理解新概念之中。利用*的認(rèn)知科學(xué)與學(xué)習(xí)理論的研究成果,《Head First軟件開發(fā)》采取專為大腦工作而設(shè)計的豐富視覺化風(fēng)格,而不是令人昏昏欲睡的冗贅敘述。
您將從《Head First軟件開發(fā)(中文版)》學(xué)會什么?
你可曾想過測試驅(qū)動開發(fā)的真正含義嗎?你又曾想過高級顧問是如何運用實踐賺取高額鐘點費的嗎?或許,你正準(zhǔn)備進(jìn)行自動化的構(gòu)建,使代碼在版本控制之中,為軟件進(jìn)行重構(gòu),并將一些設(shè)計模式集成到你的軟件系統(tǒng)之中。在你完成《Head First軟件開發(fā)(中文版)》閱讀之時,你將能跟蹤工作量完成狀況,解釋開發(fā)團(tuán)隊中開發(fā)人員的編碼能力與時間效率值,并且為項目反復(fù)進(jìn)行需求、設(shè)計、開發(fā)與部署等工作。
這《Head First軟件開發(fā)(中文版)》為何與眾不同?
我們認(rèn)為你的時間寶貴,不應(yīng)該浪費在努力理解新概念之中。利用認(rèn)知科學(xué)與學(xué)習(xí)理論的研究成果, 《Head First軟件開發(fā)》采取專為大腦工作而設(shè)計的豐富視覺化風(fēng)格,而不是令人昏昏欲睡的冗贅敘述。
重視大腦的學(xué)習(xí)指南。學(xué)習(xí)Mary如何滿足她的客戶的真實用戶故事,通過測試驅(qū)動開發(fā)去避免不可見的軟件災(zāi)難,通過跟蹤burn-down率保持你的項目進(jìn)度,通過開發(fā)速度弄清你的團(tuán)隊的生產(chǎn)率并以此進(jìn)行評估。掌握經(jīng)驗豐富的軟件開發(fā)人員的技術(shù)和工具。
目錄(簡要版)
引言
1 偉大的軟件開發(fā):讓客戶滿意
2 收集需求:知道客戶需要什么
3 項目規(guī)劃:為成功而籌劃
4 使用情節(jié)和任務(wù):開始你實際的工作
5 足夠好的設(shè)計:以良好的設(shè)計完成工作
6 版本控制:防御性開發(fā)
6.5 構(gòu)建你的軟件代碼:自動化構(gòu)建……
7 測試和連續(xù)集成:智者千慮必有一失
8 測試驅(qū)動開發(fā):讓代碼負(fù)起責(zé)來
9 結(jié)束開發(fā)循環(huán):涓涓細(xì)流歸大海……
10 下一輪開發(fā)循環(huán):無事就要生非
11 軟件錯誤:專業(yè)排錯
12 真實的世界:落實流程
目錄(詳實版)
引言
把你的心思放在軟件開發(fā)上。此時,你們圍坐在一起,準(zhǔn)備開始學(xué)習(xí),但你的大腦不停地告訴你,要學(xué)習(xí)的內(nèi)容并不重要。你的大腦告訴你說,最好在大腦中留一點空間,因為還有更重要的事情,就像油價要不要上漲,徒手攀登是不是一個錯誤的想法。所以,你如何哄騙你的大腦去思考你的生活真地依賴于你學(xué)習(xí)怎樣開發(fā)偉大的軟件?
本書適合誰?
我們知道你們在想什么
元認(rèn)知
讓你的大腦順從你
讀我
技術(shù)審閱團(tuán)隊
致謝
1 偉大的軟件開發(fā)
讓客戶滿意
如果你的客戶不爽,每個人都不會爽!
軟件系統(tǒng)中每段偉大的代碼都源自客戶的宏大想法。身為職業(yè)的軟件開發(fā)人員,你的工作就是把這些想法付諸實現(xiàn)。但是,要把客戶模糊不清的想法轉(zhuǎn)換為可工作的軟件代碼客戶滿意的代碼,并不是一件很容易的事情。在本章中,你將學(xué)到如何通過交付滿足需求、且在預(yù)計的時間和預(yù)算內(nèi)的軟件,避免成為軟件開發(fā)戰(zhàn)役的陣亡將士。打開你的筆記本電腦,讓我們踏上交付偉大軟件的征途吧!
Toms Trail即將上線
大多數(shù)項目都有兩個焦點
大霹靂式開發(fā)法
時間飛馳:兩周以后
大霹靂開發(fā)法通常以一團(tuán)糟結(jié)束
偉大的軟件開發(fā)是……
通過開發(fā)循環(huán)達(dá)到目標(biāo)
每個開發(fā)循環(huán)是一個微型項目
每個開發(fā)循環(huán)都會產(chǎn)生有品質(zhì)的軟件
客戶會請求變更
由你來進(jìn)行調(diào)整
然而,有一些大的問題
開發(fā)循環(huán)自動處理變更(好啦,一點點啦)
直到軟件交付,你的開發(fā)工作才算完成
軟件開發(fā)工具箱
2 收集需求
知道客戶想要什么
你不能總能得到你想要的……但你的客戶應(yīng)該可以!
偉大的軟件開發(fā)交付客戶所需要的軟件系統(tǒng)。本章的內(nèi)容都將講述與客戶溝通以弄清他們對軟件系統(tǒng)的需求。你將學(xué)會使用情節(jié)(UserStories)、頭腦風(fēng)暴(Brainstorming)、估計游戲(Estimationgame)如何有助于你獲得客戶的真實想法的。這樣的話,在你完成項目之時,你就能深信你開發(fā)的軟件系統(tǒng)就是客戶所想要的,而不是一個低劣的、其他系統(tǒng)的仿制品。
orions Orbits正在進(jìn)行現(xiàn)代化
與客戶溝通,獲得更多的信息
與客戶共筑愿景
有時你的共筑愿景的會議可以這樣……
找出人們真正在做的事情
需求一定是面向客戶的
通過客戶反饋,澄清需求
使用情節(jié)定義了項目要構(gòu)建什么……
時間估計值定義了什么時候完成開發(fā)
小組交流
玩計劃撲克牌的游戲
驗證假設(shè)
大而不當(dāng)?shù)氖褂们楣?jié)估計值
目標(biāo)是收斂
需求與估計的反復(fù)循環(huán)
最后,你準(zhǔn)備估計整個項目……
3 項目規(guī)劃
為成功而籌劃
每段偉大的代碼始于偉大的計劃。
在本章,你就要學(xué)會如何創(chuàng)建計劃。你要學(xué)會與客戶一道按優(yōu)先順序排序他們的需求。你還要確定開發(fā)循環(huán),使你和你的團(tuán)隊向一個方向努力。最后,你還要創(chuàng)建一個有可行性的開發(fā)計劃,你和你的團(tuán)隊有信心地執(zhí)行和監(jiān)控該計劃。到你工作完成之時,你就確切地知道如何從需求到軟件的第一次交付。
客戶現(xiàn)在就要他們的軟件!
與客戶一起確定優(yōu)先級順序
我們知道什么是Milestone 1.0版(好吧,可能知道)
如果功能太多,重新進(jìn)行優(yōu)先順序排序
更多人力有時意味著減損績效
找到合理的Milestone 1.0
開發(fā)循環(huán)應(yīng)該簡短和易行
將你的計劃與真實情況作比較
時間效率值是在作估計時需要考慮的時間開銷
理想國里的程序員……
現(xiàn)實世界里的開發(fā)人員……
你的開發(fā)循環(huán)何時算太長?
在你著手開發(fā)循環(huán)之前,先處理時間效率值
該進(jìn)行評估了
管理愛炭脾氣的客戶
墻上的大白板
如何毀了團(tuán)隊的生活
4 使用情節(jié)和任務(wù)
開始你實際的工作
開始去工作。使用情節(jié)抓住了你需要為客戶開發(fā)什么,但現(xiàn)在是認(rèn)真開始工作并分派所需要完成的工作的時候了,這樣你才能使使用情節(jié)成為現(xiàn)實。在這一章里,你將學(xué)會如何將使用情節(jié)分解成任務(wù),任務(wù)估計(Task Estimates)如何幫助你從頭到尾跟蹤項目。你將學(xué)會如何更新你的白板,使進(jìn)行中的任務(wù)成為完成,最終完成整個使用情節(jié)。沿著這條道路,你將處理和優(yōu)先順序排序你的客戶不可避免地增加給你的工作。
iSwoon簡介
你的任務(wù)匯總了嗎?
標(biāo)注剩余的任務(wù)
把任務(wù)寫在白板上
開始為任務(wù)工作
正在進(jìn)行中表示任務(wù)正在進(jìn)行
萬一我同時做兩件事呢?
你的第一次碰頭會……
任務(wù)1:創(chuàng)建:Data類
碰頭會:第五天,第一周的最后一天……
碰頭會:第二周的第二天……
在此先打斷一下……
你必須跟蹤計劃外的任務(wù)
意料之外的任務(wù)會讓你的工作量完成情況呈上升趨勢
時間效率值有幫助,但……
我們有很多事情要做……
……但是,我們確切地知道我們身在何處
Velocity的心聲
……
5 足夠好的設(shè)計
6.1 版本控制
6.2 構(gòu)建代碼
7 測試和連續(xù)集成
8 測試驅(qū)動開發(fā)
9 結(jié)束開發(fā)循環(huán)
10 下一勞務(wù)出口開發(fā)循環(huán)
11 軟件錯誤
12 真實的世界
附錄