2015年10月30日 星期五

[ 單元測試 ] 在單元測試裡面使用Localdb

   在單元測試實作的過程中,隨著經驗的累績,發現很常要做一些假資料,但是這些回傳的假資料,如果用Hard Code的方式放在程式碼裡面,一方面是不好看,二來是不見得好維護。再來也許需要多種不同的Input,提升測試的品質,這些時候都會想到「如何更有效率的提升測試品質(效率)」,一開始我想到的是用Sqlite,簡單、且輕量化的他,其實在做很多小東西的時候都會仰賴他,但是在設定資料上,仍覺得他畢竟還是沒有SSMS來得方便及習慣。

  在之前的專案中,我對Localdb有了些比較深入的瞭解,也覺得如果走MS-SQL,不用這套簡直太可惜了,所以這邊簡單的分享一下可能會遇到的問題跟做法。

2015年10月15日 星期四

[ 設計原則 ] - 開放封閉原則(OCP,Open-Closed Principle)

 開放封閉原則(OCP,Open-Closed Principle),光從名稱來看的話,這個其實是相當矛盾的一種原則,要怎麼又開放,又封閉呢?其實這個更具體的來說是要「開放擴充」、「封閉修改」,例如我們寫了一個服務,這個服務他提供了MS-SQL的資料提供,這個時候公司下一個案子進來了,客戶是用Oracle資料庫時,我們如果去修改了原始提供服務的類別,那麼就違背了這個原則,那我們應該怎麼做呢?我們應該為資料提供類別取出抽象的介面,而資料的提供都依賴這個介面,如此一來,我們就可以輕鬆的替換原始的邏輯了。