1. 任何情況下,變化是絕對(duì)的,不變是相對(duì)的,我們不要抱怨變化的發(fā)生,重要的時(shí)要有應(yīng)付變化的能
力。但是那絕對(duì)不是聽從別人來變化,而是自適應(yīng)形勢(shì)的變化。
2. 四個(gè)變量:成本、時(shí)間、質(zhì)量、范圍
3. 四個(gè)原則:溝通、簡(jiǎn)單、反饋、勇氣
4. 所有的實(shí)踐:
a) 計(jì)劃游戲
i. 業(yè)務(wù)人員需要決定的內(nèi)容:
1. 范圍
2. 優(yōu)先級(jí)
3. 版本的組成
4. 發(fā)布的日期
ii. 技術(shù)人員決定的內(nèi)容:
1. 估算
2. 后果
3. 過程
4. 詳細(xì)的日程計(jì)劃
b) 小版本
包含最有價(jià)值的業(yè)務(wù)需求。
c) 隱喻
每個(gè)XP軟件項(xiàng)目都是由一個(gè)全面的隱喻指導(dǎo)的。
d) 簡(jiǎn)單設(shè)計(jì) 任何時(shí)候,正確的軟件設(shè)計(jì)都具有下面的特征:
i. 能夠運(yùn)行所有測(cè)試
ii. 沒有重復(fù)的邏輯
iii. 陳述每個(gè)對(duì)程序員重要的意圖。
iv. 有盡可能少的類別和方法
e) 測(cè)試
測(cè)試有助于增強(qiáng)程序員的信心;只對(duì)有可能出錯(cuò)的方法編寫測(cè)試代碼。
f) 重構(gòu)
g) 結(jié)對(duì)編程
一個(gè)人思考實(shí)現(xiàn)此方法的最佳途徑,另一個(gè)應(yīng)更加偏重于戰(zhàn)略性的角度進(jìn)行思考。
h) 集體所有權(quán)
只有代碼的正式所有者才可以更改代碼
i) 持續(xù)集成
用一臺(tái)計(jì)算機(jī)專門作集成工作
j) 每周工作40小時(shí)
加班時(shí)項(xiàng)目存在嚴(yán)重問題的征兆
k) 現(xiàn)場(chǎng)客戶
指的是在系統(tǒng)投產(chǎn)后真正使用系統(tǒng)的人
l) 編碼標(biāo)準(zhǔn)
標(biāo)準(zhǔn)應(yīng)強(qiáng)調(diào)溝通,并必須被整個(gè)團(tuán)隊(duì)自愿地采納。
5. 環(huán)境可能是最后被考慮到的東西,但是往往是非常重要的。
6. 一定要保證一個(gè)小組在工作的時(shí)候不被干擾,否則就無法真正集中精力工作。
7. 業(yè)務(wù)人員應(yīng)該選擇:
a) 發(fā)布的范圍或時(shí)間
b) 提出的功能的相對(duì)優(yōu)先權(quán)
c) 提出的功能的確切范圍。
8. 開發(fā)組織必須確定:
a) 實(shí)現(xiàn)各種功能所需的時(shí)間估算
b) 各種可選的技術(shù)方案的后果估算
c) 適合他們的個(gè)性、業(yè)務(wù)環(huán)境和公司文化的開發(fā)過程。
d) 使用哪組時(shí)間來開始,即以使用什么樣的進(jìn)程來評(píng)審實(shí)踐的效果和對(duì)變化進(jìn)行試驗(yàn)。
9. 制定計(jì)劃的目的:
a) 團(tuán)結(jié)和組織開發(fā)團(tuán)隊(duì)
b) 決定范圍和優(yōu)先級(jí)
c) 估算成本和日程
d) 讓大家對(duì)系統(tǒng)的成功信心百倍
e) 為反饋提供一個(gè)基準(zhǔn)
10. 制定計(jì)劃的原則:
a) 只制定下一個(gè)階段所需的計(jì)劃(計(jì)劃需要不停的進(jìn)行迭代)
b) 接受的責(zé)任(責(zé)任只能被接受,而不能被強(qiáng)加)
c) 負(fù)責(zé)實(shí)現(xiàn)的人進(jìn)行估算
d) 忽略個(gè)部分之間的依賴關(guān)系
e) 為優(yōu)先級(jí)作計(jì)劃與為開發(fā)作計(jì)劃的比較—謹(jǐn)記計(jì)劃的目的
11. 首要的一個(gè)問題是如何處理好人與人之間的關(guān)系,如果大家都能夠做到權(quán)責(zé)明確,并且和睦相處
,那么就具備了一個(gè)好團(tuán)隊(duì)所必須的一點(diǎn)。
12. 業(yè)務(wù)方和開發(fā)方一定要做到相互信任,相互尊重。
13. 如果能夠把一項(xiàng)工作做的像是大家在共同進(jìn)行一個(gè)游戲的話,大多數(shù)人都會(huì)樂意去做,而且很快
樂。
14. 配對(duì)編程是一種非常值得嘗試的方式,可能一旦使用就會(huì)永遠(yuǎn)喜歡上這種方式。
15. 最佳設(shè)計(jì):能運(yùn)行所有測(cè)試用例的最簡(jiǎn)單的設(shè)計(jì)
16. 最簡(jiǎn)單的四種約束:
a) 系統(tǒng)必須能夠溝通任何你希望溝通的內(nèi)容
b) 系統(tǒng)不能夠包含重復(fù)的代碼
c) 系統(tǒng)擁有盡可能少的類
d) 系統(tǒng)擁有盡可能少的方法
17. 軟件的設(shè)計(jì)不可能沒有變化,我們要做的是如何來面對(duì)并處理這些變化。在極限編程中,對(duì)于變
化我們會(huì)返工,但是那就像是修改一篇文章一樣,是一件令人快樂的事情。
18. 不停的進(jìn)行測(cè)試的方法似乎與制作網(wǎng)頁的過程有些類似,在制作網(wǎng)頁的過程中我們會(huì)不斷的進(jìn)行
預(yù)覽,查看在瀏覽其中實(shí)際的效果,而且所有的網(wǎng)頁都是在持續(xù)集成的過程中完成的。
19. 測(cè)試先行并不意味著我們?cè)谑裁辞闆r下都要先編寫測(cè)試,然后編寫代碼。在Eclipse中,如果沒有
一定的代碼,測(cè)試程序根本就是無法通過的,又來的什么正確不正確呢。而且,在編好了基本的類之后
,使用自動(dòng)化的工具來生成測(cè)試程序,在一定程度上也可以提高工作的效率,何樂而不為呢?
20. 當(dāng)一個(gè)人編寫的程序里面Bug太多的時(shí)候,并不意味著他沒有重視測(cè)試,大多時(shí)候是因?yàn)樗€沒有
掌握測(cè)試的方法和工具。不知道怎樣來測(cè)試,怎么可能做好呢?
21. 在保存項(xiàng)目的時(shí)候,如果使用極限編程,應(yīng)該不僅保存項(xiàng)目的源代碼,而且要保存所有的測(cè)試用
例。而且在寫注釋的時(shí)候,不僅在程序的源代碼里面要有詳盡的注釋,在測(cè)試用例的代碼中也應(yīng)該做到
這一點(diǎn)。聯(lián)系客服