了解DI概念和目的
DI是物件導向中最常被誤解的概念之一,涉及術語、目的、設計模式、控制權和機制..等,但DI只為了更方便測試嗎?
我沒寫測試還需了解DI嗎?
還是有更廣泛用途?DI容器有存在必要性嗎?DI就是實現晚期繫結而已嗎?
網路上有很多DI相關文章,但內容參差不齊,甚至有些還給予錯誤定義,
導致開發人員更混亂。
開發人員值得投資的軟體設計
我回想自己第一次在 asp@net 開始DI撰寫風格,
簡單初始化application失敗且無法順利啟動次數多到數不清,因DI註冊相關物件沒那麼單純,導致我當時相當排斥DI撰寫風格(用靜態類別或直接new instance反而更簡單),
另外,我也不認為使用DI卻不用吸收其他概念,如Clean Code、SOLID、Design Pattern和OOP..等,
而所有不一致和更混亂的原因之一是,DI邊界太模糊,雖然我認為不可能在這些概念之間劃清界線,
但至少我們要了解DI的好處和使用時機,才能進而定義DI邊界,也才能避免繼續擴大下去。
我曾聽一位資深開發人員告訴我,他不喜歡DI設計,因為debug變更困難了,
維護和測試成本都提高了不少,但真的是這樣嗎?。
輕鬆上手DI開發風格
這堂課我將使用.NET5提供的DI框架進行示範和介紹(.NET CORE也適用),DI軟體設計也是ASP.NET Core 5核心,
我將比對傳統和DI兩種撰寫風格,讓學員了解採取面向介面開發而非直接實現所帶來的好處,
幫助學員如何寫出鬆耦合程式碼,
並掌握現代化的DI風格、攔截、注入模式和服務生命週期,
並隨時隨地自由使用DI,對DI不在有恐懼,
現在就加入這堂課,和我一起改善軟體品質,寫出更好維護的程式碼,