《測試驅動開發(fā)與軟件重構》課程詳情
點擊下載課大綱及報名表
【課程形式】
本課程將會采用全程Code Kata的學習方式。每 2 名成員會自發(fā)形成一個作戰(zhàn)單元,每個作戰(zhàn)單元都會有自己指定的“作戰(zhàn)區(qū)域”和“武器裝備”。我們將共同穿越那些危險重重的“編程陷阱”和“開發(fā)沼澤”,這包括“場景再現”、“Code Kata”、“復盤總結”三個部分:
“場景再現”環(huán)節(jié)。由教練扮演“駕駛員”和“領航員”角色,模擬演練在實際開發(fā)場景中的編程實踐。
每2位開發(fā)者,共同組建結對伙伴(其間2位教練會作為開發(fā)者參與隨機分配),完成一個“番茄鐘”的“Code Kata”練習。
“復盤總結”,繪制知識體系雷達圖。
讓那些真正來自第一線的編程實踐(ATDD + TDD + TOOLS + PAIR PROGRAMMING + REFACTOR + DESIGN PATTERNS)融入我們的血液,成為我們身體中的一部分。
我們來自開發(fā)實戰(zhàn)第一線,我們是“ Programming Samurai”。
【培訓對象】
注重實效的開發(fā)人員、開發(fā)工程師、開發(fā)團隊負責人等。
第一天
面向對象編程與實戰(zhàn)方法
面向對象的知識地圖
面向對象的原則
① ISOLD原則(Single Responsibility原則,Open Closed原則,Liskov Substitution原則,Interface Segregation原則,Dependency Inversion原則)
② DRY原則
③ …
面向對象的模式與方法
④ 模式(架構模式、分析模式、設計模式、實現模式)
⑤ 方法:TDD、UDD、DDD、FDD、BDD…
面向對象的實踐與工具
⑥ 實踐(Pair Programming、Unit Test、Refactor…)
⑦ 工具(XUnit、Mock、Git、Maven、Jenkins…)
三個基本元素
角色、職責、協作
用例驅動開發(fā)
面向對象的軟件開發(fā)
角色、職責、協作
UML與OOAD
設計畫布
四色建模法
健壯性分析圖法
CRC卡片法
Workshop:E-learning
繪制用例圖
用戶故事
粒度與層次
場景
設計畫布
角色、職責、協作
驗收測試驅動開發(fā)
實例化需求
場景驅動設計
行為驅動開發(fā)
使用Cucumber
確定角色、職責、協作
Kata_01:Order Payment
從故事開始
基于文本的自動化
基于Gherkin語法
Given、When、Then、And、But
富有表現力的場景
組織代碼
角色、職責、協作
測試驅動開發(fā)
基本匠藝實踐
紅色
綠色
藍色
TDD三項法則
F.R.I.S.T
Kata_02:Currency
尋找結對伙伴
選取用戶故事
編寫測試用例
紅色->綠色->藍色
偽實現
顯明實現
三角法
第二天
重構與設計模式
三個基本手法
抽象、封裝、多態(tài)
重構工具箱
腐爛的代碼
識別壞味道
應用重構技法
小步前進
Clean Code
Kata_03:Trainning
實現功能的代碼
識別代碼壞味道
重構手法運用
重構導向模式
繪制重構地圖
重構導向模式
可讀性好的代碼
由異味導向的重構
由原則導向的重構
應用設計模式
抽象變化點
封裝職責
利用多態(tài)進行解耦
Kata_04:iCourse
重構到策略模式
重構到工廠模式
重構到命令模式
重構到模板模式
重構到職責鏈模式
重構到適配器模式
重構到MVC框架
解構設計模式
識別變化點
關注點分離
職責的抽離
封裝變化點
三種封裝手法
依賴解耦
組合還是多態(tài)
設計的原本
《測試驅動開發(fā)與軟件重構》所屬分類
研發(fā)項目
《測試驅動開發(fā)與軟件重構》授課培訓師簡介
姜老師
線下交流組織“設計匠藝”核心小組成員、線上“產品經理俱樂部”組織者,開源項目AgileUML的提交者,曾拿過IBM兩個獎項,于05、09年先后在863國家數字油田的項目中任“架構師”。目前正在抓緊完成在線Code Kata網站iDojo的編碼。喜歡線下技術活動的各種交流和分享,熱衷于實用主義和敏捷開發(fā)技術。