在設計中加入 AOP 著實會讓程式碼清晰度大增,讓程式的職責更清楚,Autofac 中的擴充套件 Autofac.Extras.DynamicProxy 可以輕鬆地讓我們實現 AOP 的功能,在註冊完後可以呼叫 EnableInterfaceInterceptors()
或 EnableClassInterceptors()
的其中一個方法來啟用 Interceptors,而這兩個擴充方法的區別又在哪?
[桌邊服務] 為什麼要儘量遵循物件導向設計原則及模式?
時常回到原點思考,可以幫助我們確認做這件事情的價值,物件導向設計原則及模式在網路上有很多文章在介紹它,一篇比一篇寫得還詳細,但是搜尋「為什麼要遵循物件導向設計原則及模式」,文章的數量就不多了,原因我想大概就是有些事情必須要切身體會,才會有所體悟。
[食譜好菜] 從 C# 一個簡單的 lock string 修正了對 String Pool 的觀念
今天以前,我一直以為「在 C# 程式裡面只要是 String 型態,其內容都會在 String Pool 有一份,而且相同的 String 實體物件在記憶體中只會有一份。」,這個觀念在今天得到了修正:「只有在編譯時期的 Literal String,預設才會放進 String Pool,執行時期動態組成的 String 物件則不會。」,再次命中了「程式是照我們寫的跑,不是照我們想的跑。」
[小菜一碟] 一個要用到時偏偏忘記的 SQL 查詢分析工具 - Database Engine Tuning Advisor
- 2700
- 0
- SQL Server
面對被存放在 SQL Server 中的 Legacy Stored Procedures 這群洪水猛獸,遇到它們比遇到 Legacy C# Code 還讓人感覺無力,一方面是之前寫的人對 SQL 語句有自己的幻想,另一方面是要公司買維護工具給大家用比登天還難,今天在 Tune 一段 SQL 查詢語句時,讓我想起以前共事的 DBA 有表演過叫 SQL Server 分析查詢語句,然後提出改善建議的工具,就是它 - Database Engine Tuning Advisor。
[料理佳餚] C# 在 Redis 發生 Failover 時自動跟著執行 HA 切換
天有不測風雲,人有旦夕禍福;服務在走,HA 要有,先前有介紹過使用 Redis-Sentinel 打造 Redis 的 HA,當時只完成了伺服器端的設定,這次要介紹如何在應用程式這一端也完成自動 failover,以維持服務的 HA。
[小菜一碟] 用 URL Rewrite 解決 SEO 要求網址全小寫及有無斜線結尾的問題
為了讓搜尋引擎多認識我們的網站、提昇搜尋結果的排名,大都會做 SEO(Search Engine Optimization),其中有一條規則是要讓網址保持一致性,避免相同的網頁內容使用不同的網址,導致網頁的瀏覽量被分散,因而讓搜尋引擎認為我們的網頁內容沒什麼人要瀏覽,使得該網頁的權重下降而影響排名,如果是全新的網站,我們大可配合 SEO 來調整設計,可是如果是已經被蹂躪過的已存在網站,又剛好是 Host 在 IIS 上,該怎麼辦?
[料理秘方] "KISS",Keep it simple, stupid
「保持簡單」這句話是多麼地簡單,但是簡單並不意謂著「輕鬆、容易」,當程式碼夠簡單時表示它的結構透明、清楚、不會隱藏 Bug,我相信大多數的人不會喜歡複雜的東西,程式設計也是如此,當我們一邊罵著前人留下來的 Legacy Code 的時候,自己是否能設計得比現在更為優雅?還是單純地只是想按照著自己的習慣,以自己覺得輕鬆的方式解決問題?
[小菜一碟] 取得往上第 n 個階層的目錄路徑
有時候我們會有這樣的需求,我們需要取得相對於當前所在目錄的祖父兄弟目錄(暫且稱呼為叔公目錄)的絕對路徑,如果我們已經知道叔公目錄的絕對路徑永遠不變,當然就直接 Hard Code 取用就好,但是這種狀況是少之又少,大多數情況是整個家族目錄會因需要而搬家,在已知叔公目錄名稱的條件下,要得知叔公目錄的絕對路徑,我們可以這樣做,找到曾祖父目錄之後,把叔公目錄名稱合併在後面就可以了,而我們要怎麼用 C# 找到曾祖父目錄呢?
[創意料理] 有一個工具可以讓資料庫的資料在發生 Insert、Update、Delete 時即時主動通知我們
- 5484
- 0
- SQL Server
- 2017-01-02
發現一個工具 - SqlTableDependency,透過它可以在資料庫的資料發生 Insert、Update、Delete 的時候,即時主動發送通知,而且包含異動後的資料都一起隨著通知發送出來,我們就來看看它要怎麼用?
[食譜好菜] 用 SqlBulkCopy 可以快速批次 Insert 大量資料,那批次 Update 大量資料呢?
- 19209
- 0
- SQL Server
- 2017-02-07
先前有介紹過用 SqlBulkCopy 快速批次 Insert 大量資料,心裡想說既然快速批次 Insert 大量資料有 SqlBulkCopy,那我要快速批次 Update 大量資料有沒有類似於 SqlBulkCopy 的東西可以用?很可惜,可能是我孤陋寡聞,遍尋不著可以像 SqlBulkCopy 這麼相對容易操作的工具,不過我倒是有找到替代方案,速度上也可以接受,我把整個實作的過程做個記錄,以利往後參考。