テスト駆動開発から始める C# 入門¶
概要¶
FizzBuzz 問題を題材に、テスト駆動開発(TDD)の基本サイクルから、開発環境の整備、オブジェクト指向設計、関数型プログラミングの活用まで、C# の特徴を活かしながら段階的に学びます。
対象読者¶
- C# の基本文法を理解しているプログラミング学習者
- TDD を体験してみたい開発者
- オブジェクト指向設計や LINQ による関数型プログラミングに興味がある方
前提条件¶
- .NET 8.0 SDK 以降がインストールされていること
- dotnet CLI が利用可能であること(Nix 環境推奨:
nix develop .#dotnet)
C# の特徴¶
| 特徴 | 説明 |
|---|---|
| 静的型付け + 型推論 | 強力な型システムと var による型推論 |
| オブジェクト指向 | class, interface, abstract class による本格的な OOP |
| 関数型要素 | LINQ, ラムダ式, デリゲートによる関数型プログラミング |
| Nullable 参照型 | null 安全性をコンパイル時に検査 |
| パターンマッチング | switch 式、型パターン、プロパティパターン |
| クロスプラットフォーム | .NET による Windows / macOS / Linux 対応 |
開発ツール¶
| ツール | 用途 |
|---|---|
| xUnit.net | テスティングフレームワーク |
| NuGet | パッケージマネージャ |
| dotnet format | コードフォーマッター |
| Microsoft.CodeAnalysis.Analyzers | 静的コード解析 |
| Cake | ビルドスクリプト |
目次¶
第 1 部: TDD の基本サイクル¶
第 2 部: 開発環境と自動化¶
第 3 部: オブジェクト指向設計¶
第 4 部: 関数型プログラミングへの展開¶
実装コード¶
本記事のすべてのコード例は apps/dotnet/ に実装されています。
# 開発環境に入る
nix develop .#dotnet
# テスト実行
cd apps/dotnet
dotnet test
参考文献¶
- Kent Beck 著『テスト駆動開発』
- Martin Fowler 著『リファクタリング: 既存のコードを安全に改善する』
- Robert C. Martin 著『Clean Code: アジャイルソフトウェア達人の技』
- Microsoft『C# プログラミングガイド』