[桌邊服務] 為什麼要儘量遵循物件導向設計原則及模式?

時常回到原點思考,可以幫助我們確認做這件事情的價值,物件導向設計原則及模式在網路上有很多文章在介紹它,一篇比一篇寫得還詳細,但是搜尋「為什麼要遵循物件導向設計原則及模式」,文章的數量就不多了,原因我想大概就是有些事情必須要切身體會,才會有所體悟。

...繼續閱讀 »

[小菜一碟] 偽造 ClaimsIdentity 為 Controller Action 做有身份識別的單元測試

我在之前的專案有使用過 ASP.NET Identity 來幫我做驗證的工作,ASP.NET Identity 的出現為驗證身份的方式帶來了更大的彈性,不過如何使用不是這道菜的重點,這道料理要展現的是,當我們為 Controller Action 做有身份識別的單元測試時,我們要如何偽造不同的身份來滿足測試情境?

...繼續閱讀 »

[料理佳餚] FluentValidation + Autofac.Extras.DynamicProxy2 實現參數條件檢查的 AOP 攔截器

  • 977
  • 0
  • C#
  • 2016-07-05

之前在[料理佳餚] 使用 Decorator Pattern 分離參數檢查與資料處理這篇文章有提到我想要用 AOP 的方式來把參數的條件檢查分離出來,當時還沒有什麼好的做法,但是在遇到 FluentValidation 之後有了新的想法,只要搭配 AutofacAutofac.Extras.DynamicProxy2 就可以實現參數條件檢查的 AOP 攔截器。

...繼續閱讀 »

[料理佳餚] 讓 FluentValidation 把參數的檢查條件口語化

  • 7638
  • 0
  • C#
  • 2016-05-21

先前在[料理佳餚] 使用 Decorator Pattern 分離參數檢查與資料處理這篇文章裡分享過如何分離參數的條件檢查及資料處理的邏輯,讓程式碼的職責可以更聚焦,不過那篇文章裡面參數檢查條件的範例部分是單純用 if...else... 兜出來的,看起來有點「阿雜」。

有一個 Package 叫 FluentValidation,它可以將單純用 if...else... 兜出來的參數檢查條件,用口語化的方式來表達,讓程式碼可以更貼進人的閱讀習慣。

...繼續閱讀 »