l

2019年3月6日 星期三

最新課程:【Clean Architecture實作班】

March 06 14:00~16:20


今年泰迪軟體新規畫一門兩天課程:【Clean Architecture實作班】(簡潔架構實作班),這是去年「Clean Architecture嘴砲班」的進化版。今年的新課程,打嘴砲練練嘴上功夫還是必要的,此外增加了一個完整的實作練習,讓大家動動腦與練練手上功夫。

關於這個練習題目Teddy規劃了超過一整年,去年設計好的題目經過實驗發現整體來說有點太難。於是今年Teddy從新設計一個練習範例,除了學習Clean Architecture以外,還同時兼顧TDD/BDD/SBE,並借用DDD(領域驅動設計)的Ubiquitous Language(通用語言)Event Storming(事件風暴)AggregateEntity來幫助學員分析domain model(領域模型)的物件邊界。

今天簡短介紹一下課程範例。

***

看板系統需求

課程範例要開發一個看板系統(Kanban System),稱為cleanKanban。看板範例如下所示,由不同工作階段所組成,以下圖為例,有待辦事項、分析、實作、測試、可佈署等五個工作階段。

▲看板範例


每個工作階段還可以分為子工作階段,以上圖為例,待辦事項細分成「想法」與「Top 6」,分析階段細分成「進行中」與「完成」。

使用者將工作項目移入不同的工作階段,以視覺化方式追蹤工作進度。每個工作階段可以設定WIP上限(Work In Progress Limit),當工作項目已達WIP上限時,就不可以再拉入工作到該工作階段。

最後,系統要計算工作項目在每個工作階段所停留的時間,稱為Cycle Time,以及Lead Time

結論就是,cleanKanban系統要支援看板系統三原則:

  • 視覺化(工作流程)
  • 限制WIP
  • 管理工作流

***

測試驅動開發/行為驅動開發

Clean Architecture的重點之一就是將系統分層,如下圖所示,由內而外分別是:Entity(Domain Model)Use CaseInterface AdapterFramework and Driver

▲Clean Architecture,圖片來源在此


課程採取測試驅動開發(TDD/BDD/SBE)方式,首先寫出規則(Specification)例子(Example)


看到這裡鄉民們可能會想:「要用BDD或Specification by Example方法,需要使用Cucumber或SpecFlow工具嗎?

答案是:可以使用但先不要用工具之前,先練習用腦,以免在學習過程中被工具綁住。本練習只需要最簡單的xUnit單元測試工具即可 。


▲用JUnit撰寫第一個失敗的驗收測試


▲因為要套用Clean Architecture,最後的驗收測試長成這樣,直接呼叫use case。

***

事件風暴(Event Storming)

Clean Architecture非常重視領域模型的建立,如果有學過物件導向分析與設計(OOAD)的朋友,可以沿用原本OOAD的技巧來建立領域模型。在這門課中,Teddy將介紹在領域驅動設計很流行的事件風暴,來協助建立領域模型與通用語言。

***

專案結構

最後開發出來的專案結構,反應Clean Architecture的三大原則:

  • 分層原則
  • 相依性原則
  • 跨層原則

***

課程費用

  • 原價$22,000元。
  • 早鳥優惠: NT$18,900/人(2019年3月19日前報名並完成繳費。)
  • 2人團報:$17,900 元/人。
  • 嘴砲班舊生優惠:$9,900 元/人(僅限五名)。

課程網址:http://teddysoft.tw/courses/clean-architecture/

上課地點:台北市(近台北車站)。2019年4月19、20日(五、六),09:30-16:30,共12小時

image

***

友藏內心獨白:一個課程三種享受—Clean Architecture、TDD與DDD。

1 則留言: