念念不忘,必有迴響。有一口氣,點一盞燈,有燈就有人。

深入探討 C# 之 Extension Method

深入探討 C# 之 Extension Method

C# 3 的 Extension Method 是很了不起的發明,讓我們在不修改原本 source code 的前提下,就能為 class 增加新 method,實現開放封閉原則,尤其對於 .NET Framework 或 package 的擴展特別有效。

事實上 Extension Method 在 Functional Programming 下另有妙用,讓我們輕易實現 Function Composition。

Rider Refactoring 之 Extract Local Function

Rider Refactoring 之 Extract Local Function

Local Function 是 C# 7 支援 FP 的重要功能,除了比 C# 3 的 Func 與 Action 可讀性高,速度也更快,因此建議全面使用 Local Function 取代 Func 與 Action。

透過 Rider,我們也可將 legacy code 快速重構成有 FP 風格的 Local Function。

如何在 Rider 使用 Vim ?

如何在 Rider 使用 Vim ?

Vim 是一個歷史悠久的編輯器,完全使用鍵盤操作,就算你使用 IDE,但其 鍵盤操作 的精神卻可以保留下來,讓你在開發時完全不需要摸到滑鼠與觸控板,而使用鍵盤全速開發。

在 Rider 只要安裝以下三個套件,就能順利在 Rider 使用 Vim,也適用於其他 JetBrains 產品。

如何在 .NET Core 使用 NUnit 與 NSubstitute ?

如何在 .NET Core 使用 NUnit 與 NSubstitute ?

單元測試的藝術 一書中,使用的是 NUnitNSubstitute,但 .NET Core SDK 預設只提供 MSTestxUnit,該如何在 .NET Core 使用我們熟悉的 NUnitNSubstitute 呢 ?

Rider Refactoring 之 Transform Parameters

Rider Refactoring 之 Transform Parameters

在實務上常會發現一些 parameter 總是以 primitive type 一起出現,導致 method 內的 parameter 個數過多,也就是 Code Smell 所謂的 Primitive Obsession,解決方式是將這些 parameter 抽成 class,這在 Refactoring 稱為 Introduce Parameter Object,而在 Rider 則稱為 Transform Parameters,且實務上常常搭配 Make Method Non-Static 一起重構。

如何在 Rider 從 Editor 與 Terminal 快速切換 ?

如何在 Rider 從 Editor 與 Terminal 快速切換 ?

在 .NET Core 使用 CLI 的機會越來越多,因此如何在 Rider 從 Editor 與 Terminal 快速切換,是一個不可逃避的問題,當然可以用滑鼠慢慢的點,但若能完全使用鍵盤操作,整個 workflow 會非常的順。

將設定使用 ⌃ + ~ 啟動 Terminal,ESC 離開 Terminal 回 Editor。

如何使用 pgcli 連上 PostgreSQL ?

如何使用 pgcli 連上 PostgreSQL ?

傳統都會使用 GUI 工具連上 database,如 DataGrip、SQLPro Studio,若只是想簡單確定資料有沒有寫入成功,簡單的 CLI 工具會更方便,pgcli 就是一套在 CLI 連接 PostgreSQL 的小工具。

如何在 Entity Framework Core 使用 Data Seeding ? (PostgreSQL)

如何在 Entity Framework Core 使用 Data Seeding ? (PostgreSQL)

當使用 Code First 與 Migration 後,下一步就是 Data Seeding,讓我們對 table 新增基本的資料。在 EF Core 2.0,Data Seeding 只能自己手動處理,在 EF Core 2.1 正式提供 Data Seeding。

如何在 Entity Framework Core 使用 Migration ? (PostgreSQL)

如何在 Entity Framework Core 使用 Migration ? (PostgreSQL)

透過 PostgreSQL 官方提供的 Npgsql EF Core Provider,Entity Framework Core 也能簡單地存取 PostgreSQL。

本文將使用 Code First 方式對 PostgreSQL 建立 database schema,並解釋 Migration 背後運作原理。

Rider Refactoring 之 Extract Higher Order Function

Rider Refactoring 之 Extract Higher Order Function

Higher Order Function 是 JavaScript 或 FP 語言常見的語言機制,事實上 C# 也支援某種程度的 FP,如 Func、 Predicate 與 Action。

透過 Rider,我們也能將既有 method 重構出具 FP 風格的 Higher Order Function。