老實說,我寫程式時也不總是遵循最佳實務與設計原則;我也會因為趕時間而「姑息養蟲」,或者未加思索地把一堆實作類別綁得很緊,造成日後維護的麻煩。的確,當我們不知道問題在哪裡,自然也就不容易發覺哪些寫法是不好的,以及當下能夠用什麼技術來解決,以至於技術債越揹越多。在學習 Dependency Injection(以下簡稱 DI) 的過程中,我覺得身上逐漸多了一些好用的武器裝備,可用來改善軟體設計的品質,這感覺真不錯。於是,我開始有了念頭,把我理解的東西比較有系統地整理出來,而結果就是您現在看到的這本書。

撰寫本書的過程中,.NET 技術平台陸續出現一些新的消息。其中一則令人矚目的頭條新聞,便是下一代的 ASP.NET 框架—— ASP.NET vNext ——將會更全面地支援 Dependency Injection 技術,其中包括一個 DI 抽象層與一些轉換器(adapters)類別來支援目前幾種常見的 DI 容器,例如 Unity、Autofac、Ninject、Structuremap、Windsor 等等。

雖然 ASP.NET vNext 離正式版本發布還有一段時間,將來的實作規格仍有變數,但我們至少可以確定一件事:DI 技術在未來的  .NET 平台已愈形重要,可說是專業開發人員的一項必備技能了。故不惴淺薄,希望本書能夠適時在 DI 技術方面提供一些學習上的幫助;另一方面,則拋磚引玉,盼能獲得各方高手指教,分享寶貴的實戰心得。

 

簡單地說,「寫自己想看的書」,我是抱持著這樣的想法來寫這本書。希望裡面也有您想要的東西。

  蔡煥麟 於台灣新北市
  2014 年 7 月