《C#敏捷開發實踐》讀書整理
阿新 • • 發佈:2018-12-24
《C#敏捷開發實踐》是一本相當不錯的良心之作。本書分為兩個部分:
第一部分:講了敏捷開發的一些原則,書中列舉了一些很不錯的實現例子。本書主要使用的是Scrum的敏捷開發流程
第二部分:通過一個具體開發過程中的實踐,講了如何應用這些模式。
對於本書的理解
本書講解了C#敏捷開發,首先我們承認沒辦法做出一個大而全的軟體,沒辦法一次性的完成使用者的需求。所以我們需要去擁抱變化,採用迭代的方式逐步去適應客戶提出的需求。而適應市場,擁抱變化需要做幾方面的改變,首先我們需要採用更加敏捷的開發流程,其次在開發中我們需要一些技術手段,去實現自適應的系統
關於敏捷開發的理解
首先本書中介紹了Scrum敏捷開發的一般流程。個人理解的Scrum是把一個產品通過迭代演化的方式分為若干個階段(衝刺)來開發,在每個開發中,完成一個最小可以演示的單元。把要開發的內容,從使用者的角度去講幾個故事,然後把這些故事去分成開發任務,去一一實現。因為我們承認我們開發的軟體是不完整的,需求會不斷的變化,所以我們採用了迭代開發的方式進行開發,而迭代開發就需要我們去擁抱變化,同時快速的相應市場。
Scrum開發中的角色
- 專案負責人 主要是負責和客戶進行溝通,把客戶的需求轉化為故事,同時組織團隊進行評估、開發和驗收
- scrum負責人,負責組織敏捷開發的流程,對開發中的問題,反饋進行記錄
- 開發團隊,負責實現故事點的開發,同時完成自己的單元測試
- 測試團隊,負責測試開發人員完成的開發工作。
scrum的一些基本的流程
- 首先要進行開發大會,對開發進行評審。
- 把使用者對產品的需求進行拆分,按照階段進行迭代。從最小的可演示單元到最小可市場化的產品,再到逐步豐滿,完善的產品。
- 然後把若干個可形成第一次的可以演示的故事挑選出來。同時對故事的開發難易程度進行評估,評估的結果以故事點的形式進行呈現出來。
- 然後挑選可以在1-2周可以實現的故事,分解成開發任務。
- 開發人員進行開發,在開發的過程中努力的分析可能存在的變化,去開發一個可以擁抱變化的自適應系統。
- 開發人員在開發過程中,需要測試驅動開發,測試說明了功能意圖和實現的邊界,能滿足測試需求的功能點,才可以滿足需求
- 在開發過程中,要逐步優化和重構。
- 開發完成後,交付測試人員,完成測試
- 組織演示,讓利益相關人員進行參與,提出需求和意見,行程擠壓工作。
- 開敏捷總結大會,找出什麼是做的好的,什麼是做的不好的,那些需要改進,那些需要堅持,那些實出乎意外的。
然後再次進入這個迴圈,同時敏捷開發的負責人需要把進度記錄到scrum板上。
scrum的一些名詞
- 豬:全身心參與開發的人
- 雞: 參與開發,但是非全身心
- Scrum板:記錄scrum的一些開發過程
- 衝刺:把若干故事點進行羅列,進行一個階段的開發,完成一個最小的可演示產品
- 擠壓工作: 待開發完成的故事點
每日站立會議:需要在每天,站立說明自己做過的工作和將要計劃的工作,以及遇到的問題
自適應系統的一些概念
軟體工程的SOLID原則
- 單一職責原則
- 開閉原則
- Liskv置換原則
- 介面分離原則
- 依賴注入原則
原則自適應的一個特徵
應該儘量減少軟體的依賴,同時避免無需的依賴,軟體應該依賴於抽象,而不是依賴於實現。所以在軟體開發中,儘可能的靈活使用介面,隔離變化是做好自適應系統的主要難點。
而多種設計模式都是為了更好的做出自適應系統。
依賴介面而非依賴實現的好處
- 方便隔離變化,軟體的實現和細節無關
- 方便單元測試
- 有利於軟體的重構和優化
- 可能會降低軟體的可讀性
書中講到的集中常用的設計模式
- 括謂語修飾器
- 分支修飾器
- 延遲修飾器
- 日誌記錄修飾器
- 效能修飾器
- 非同步修飾器
- 屬性和事件修
- 空物件模式
- 策略模式
學會的幾個新的詞語和方法
- 程式碼味道
- 模式和反模式
- scrum開發
- 修飾器的詳細模式
- 逆變和協變
- 空物件模式
- 階梯模式和隨從反模式
- 縱切關注點
下一步如何深入學習和研究
- 把修飾器模式的程式碼,認證的自己敲打一遍,增加印象
- 把書中第二部分的程式碼從Github上下載下來,自己研究一遍,同時敲打一遍
- 買幾本Scum的書,認真的學習,並且在實踐中去貫徹。
- 抽點時間搜尋和研究學習下逆變和協變。
- 抽點時間,再認真的下載幾個開源專案學習下。