1. 程式人生 > >瞭解敏捷開發

瞭解敏捷開發

什麼是敏捷開發?

敏捷開發以使用者的需求變化為核心,採用迭代、循序漸進的方法進行軟體開發。

敏捷開發模式的分類

  • XP極限程式設計(eXtreme Programming)
  • SCRUM
  • 水晶方法
  • 動態系統開發方法
  • 精益開發

其中XP和SCRUM最為流行。

極限程式設計

極限程式設計是一種輕量,高效,彈性的軟體開發方式。


四大核心價值觀

  • 溝通:

    完善的流程和詳細的文件用於團隊協作雖然能夠保證一致性,但效率往往不高。

    極限程式設計提倡通過高效的口頭溝通來保證整個團隊的高效協作。(並不是捨棄流程和文件,只是更加側重口頭上的溝通)

  • 簡單:

    ==今天夠用就行。

    那麼系統的擴充套件性怎麼實現?

    極限程式設計提倡重構。(對開發人員要求較高)

    重構建立在軟體開發中無法避免出現BUG的前提下,與其最後修改整體的BUG,不如在一次次的重構迭代中反覆擴充套件優化。

  • 反饋

    通過提前編寫測試程式碼,經常性的反饋程式碼的問題和進展。

    在開發過程中,通過持續整合,使得每一次的釋出都可以成為可執行版本。

  • 勇氣

    應用極限程式設計,每時每刻都在應對變化。這要求開發者時刻面對快速開發,重新開發。

    變化在軟體開發中是不可避免的,極限程式設計的思想就是將變化扼殺在搖籃中,避免最後形成一個無法重構的龐大工程。

13個最佳實踐

  • 計劃遊戲

    快速制定一個概要的計劃,隨著專案細節的不斷更新和迭代,再完善這份計劃。

    主要分為三個步驟:客戶編寫故事;開發人員進行按照優先順序進行分解和排序;確定產品迭代週期(2-3周)

  • 小型釋出

    持續整合,但每一個版本的釋出都需要具備足夠的商業價值。

  • 隱喻

    尋求共識

    發明共享詞彙,增強團隊默契

  • 簡單設計

    設計不應該一次性完成。因為變化不可能被所有的預見。所有設計一次也是無法完成的。

    扎克伯格:不變的事物只有變化

    • 通過所有的測試程式

    • 沒有任何重複的程式碼

    • 保持定期重構的思想

    • 單一職責(一個類只做一件事)

  • 測試先行

    先寫測試程式碼,再寫程式碼。(開始時效率低,但能解決許多隱形問題)

  • 重構

    重構是一種對程式碼改進而不影響功能實現的技術,重構的目的是降低變化引起的風險,使得程式碼優化更加容易。

    重構場景:

    • 實現功能之前:改變現有程式碼結構,使得新的特性更加容易實現
    • 實現功能之後:檢查一下剛剛寫完的程式碼,考慮是否能夠簡化

    理論上來說,重構思想和開閉原則是相違背的,但如果一開始沒有超強的設計分析和預測變化的能力,用來設計的時間不如花在重構上。【設計終究只能浮於紙上,而實踐才能更加真實的發現問題】

  • 結對程式設計

    code+review

  • 集體程式碼所有制

    編碼規範統一

  • 持續整合

    在確保系統執行的單元測試通過之後,每天儘可能的多做程式碼整合。

  • 每週工作40小時

    保證休息,提高效率。

  • 現場客戶

    主要為了溝通

  • 編碼標準

    定義變數名等開發規範。【確保溝通交流】

  • 配合是關鍵

    1+1>2