Ron 2.0

Simple Is Not Easy

在 .NET Core 做 DI 時,大多習慣用建構子注入(Constructor Injection)。但如果依賴的 implementation factory 裡面藏著高成本的初始化,就可能在注入服務時初始化非必要的高成本依賴,進而造成效能問題。這篇整理問題成因與幾個可行的解法。

Read more »

在典型的分層式架構下,遇上複雜的業務邏輯時,服務層的不同服務間仍然很容易產生依賴。這篇文章會循序漸進地說明依賴關係的問題,以及如何使用 Rx.NET(Reactive Extensions for .NET)優雅地解耦這些依賴。

Read more »

NLog 是一個在 .NET 開發領域相當受歡迎的 log 管理工具,因為操作簡單、功能齊全,且具備完善的歸檔與壓縮機制。然而,前陣子我們團隊因為 NLog 的檔案管理策略設定不當,導致線上服務在歸檔過程中完全卡住,無法處理任何請求。以這個實際問題為契機,我想紀錄一下使用 NLog 管理 log 時的正確策略、可能的風險,以及設定時的考量,以避免日後再度踩坑。

Read more »

迭代器模式(Iterator Pattern)是一種常見的設計模式,相關實作和說明在網路上隨處可見。在 C# 中,這個模式是藉由列舉器(Enumerator)來實現的。除了直接操作列舉器,C# 還提供了多種語法糖使開發更加便捷。本篇文章將不再贅述迭代器模式的理論,而是聚焦於 C# 提供的介面與語法糖,詳細說明列舉器在 C# 中的實際應用。

Read more »

閉包(Closure)是 C# 中的一種常用特性,允許方法內部引用其外部作用域的變數,進而提高程式的靈活性。然而,如果對閉包及變數捕捉(Capture)機制的理解不夠深入,可能會導致難以預期的錯誤。本文將介紹閉包與變數捕捉機制,並展示常見的陷阱及解決方案。

Read more »

LINQ (Language Integrated Query) 的延遲執行機制 (Deferred Execution) 是其一大特色,讓查詢表達式在實際迭代前都不會執行。然而,如果不加注意,可能會因誤用而引發難以察覺的效能問題。本文將探討 LINQ 的延遲執行機制及其潛在的誤用風險,並提供實際程式碼範例說明。

Read more »

C# 的非同步程式設計是一個相當龐大且複雜的主題,甚至可以寫成整本專書。由於這也是面試中的常見題目,本文將嘗試從面試的角度整理非同步開發的要點。

Read more »
0%