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