重構既有系統:邁向整潔架構實作班

 

第四梯次

2024年11月23、24日(六、日) / 09:30-16:30,兩天共12小時

你的重構有讓系統設計變得更好,還是一不小心就越改越糟?在重構的過程中,你經常遇到「小勝利易得,大架構難尋」的情況嗎?Teddy提出「重構成整潔架構(Refactor to Clean Architecture)」為目的的重構方法,以達成整潔架構分層、依賴、跨層原則為最終目標,透過移除基本型別依戀、套用領域驅動設計(DDD)的戰術設計模式為手段,在重構過程中建立領域模型與通用語言,最終達成將架構重構為整潔架構的目的。

  • 採用由上而下的系統化方法,將有自動化測試的既有系統重構成整潔架構
  • 透過重構徹底了解整潔架構的實作細節,包含分層原則、依賴原則、跨層原則、Main Component、依賴注入
  • 將DDD的戰術設計模式(Aggregare、Entity、Value Object、Repository)應用於整潔架構中
  • 實踐Pattern-Oriented Problem Solving (模式導向解決問題方法)
  • 了解通用語言如何協助重構與建立領域模型

課程大綱:

  1. 重構簡介
  2. 為什麼很難透過重構改善軟體架構?
  3. 將Task List Kata重構成整潔架構:
    • 步驟一:Task List Kata介紹
    • 步驟二:分層原則、移除基本型別依戀壞味道、建立通用語言、使用DDD戰術設計模式、遵守Aggregate Root設計原則
    • 步驟三:尋找更多Entities Layer的物件
    • 步驟四:建立Use Cases Layer物件、區分Command Use Case與Query Use Case(在使用案例層讀寫分離)、依賴反轉、依賴注入、套用Repository、Controller、Presenter、DTO(Data Transfer Object)、Mapper等設計模式。
    • 步驟五:在Interface Adapters Layer形成Controllers、依賴注入、Presenter設計模式的使用方法討論。
    • 步驟六:Main Component,使用SpringBoot作為依賴注入框架。
    • 步驟七:在Interface Adapters Layer增加Web Controllers (使用SpringBoot)。
    • 步驟八:使用Persistent Object 以滿足跨層原則,重新設計Repository介面與Mapper。
    • 步驟九:使用關連式資料庫,透過 JPA (Java Persistence API) 使用SpringBoot連結H2資料庫。
  4. 架構設計討論與重構回顧

課程包含講解與實作練習,小組教學,隨時排解實作練習時遭遇的困難。

※ 注意:課程練習範例Task List Kata有C#, Go, Java, Kotlin, Python, Ruby, Scala, Typescript等版本,上課練習採用Java語言示範,使用不同語言的學員可在課後選擇自己熟悉的語言練習重構成整潔架構。

本課程適合下列人士:

  1. 想要透過重構手法,對既有系統產生架構改善的人。
  2. 想徹底了解整潔架構 (Clean Architecture) 與領域驅動設計的戰術設計模式(包含Aggregate、Entity、Value Object、Repository、Application Service)
  3. 苦無系統化方法學習軟體重構之有理想、有抱負的程式設計師。
  4. 想成為一位有能力償還技術債的工程師。
  5. 對物件導向設計有興趣者。
  6. 接下爛攤子維護既有軟體系統的工程師。
  7. 有志成為軟體架構師者 (什麼都要懂一點 XD) 。

 

專業師資陳建村 (Teddy Chen)

  • 泰迪軟體創辦人,從事敏捷開發顧問、教育訓練、軟體工具導入等服務。
  • 台北科技大學機電科技研究所(資訊組)博士班畢業,有30年以上軟體開發經驗。
    曾擔任程式設計師、技術總監、敏捷專案經理、軟體架構師、敏捷顧問、敏捷課程講師。
  • Teddy從2001年接觸與實踐敏捷方法XP,在2008年開始帶領他的第一個Scrum團隊,歷時三年半。
    其後成立泰迪軟體,擔任不同產業的敏捷教練,顧問與培訓課程講師至今。
    同時也在北科大資工所擔任兼任助理教授,講授「敏捷與精實軟體開發」以及「軟體架構」。
  • 2012年6月出版暢銷書「笑談軟體工程:敏捷方法的逆襲」,獲iThome週刊推薦為2012年iT人必看好書。
    2014年5月,出版第二本書「笑談軟體工程:例外處理設計的逆襲」。
  • 2007年起,Teddy經營部落格「搞笑談軟工」至今,閱讀人次破五百萬。內容涵蓋軟體工程、敏捷開發方法、設計模式、軟體測試與重構、例外處理等內容。

相關影片:

相關文章:

 

費用

原價:$38,000元
早鳥優惠票:$29,900 元(2024/10/20前報名)
泰迪之友票:$29,000 元
兩人同行價:$28,900 元(每人)

泰迪之友:需參與過泰迪軟體兩日以上付費課程者,本人即具有泰迪之友資格。
費用已包含:發票、咖啡茶水、午餐、課程證書 (本課程不使用紙本教材講義)。

每位學員贈送課程範例原始碼與參考解答,可帶回開發團隊中直接使用。
請學員自備筆記型電腦並安裝JDK與IntelliJ開發環境。

本課程已結業梯次:

  • 2024年4月22、23日(一、二)
  • 2024年5月25、26日(六、日)
  • 2024年7月27、28日(六、日)

2024計畫開課班次:

  • 2024年11月23、24日(六、日)

注意事項

  • 報名方式:先填寫線上報名表,確認開課後將收到匯款通知,再行繳費即完成報名。
  • 主辦單位將於開課日三天前以e-mail寄發上課通知,若未收到通知者請來電確認。
  • 已完成繳費學員若因故無法上課,在開班日前一日申請退費者,退還已繳學費全額。開班日當天到課程進行1/3申請退費者,退還已繳學費四成。課程進行超過1/3之後無法上課將不予退費。 未達開班人數則延期或全額退費。
  • 開課單位保留是否接受報名之權力。如遇天災或其他不可抗拒因素導致原訂日期無法開課,開課單位保留修訂日期權利。

第四梯次

2024年11月23、24日(六、日),兩天 09:30-16:30(共十二小時)