mcpField
C
c-sharp

c-sharp

github.com/mindrally開発287764 回インストール3 週間前に更新
リポジトリ

c-sharp について

.NET、Blazor、Unity に携わる開発者向けの C# スキルガイドです。モダンな言語機能とアプリケーション設計を中心に、API、テスト、性能、セキュリティを扱います。

主な機能

  1. 01モダンな C# 構文と規約
  2. 02依存性注入のパターン
  3. 03REST API の設計
  4. 04非同期処理の性能実践
  5. 05ユニットテストの指針
  6. 06入力検証とセキュリティ

活用シーン

  1. 01.NET アプリのレイヤー設計
  2. 02RESTful サービスの構築
  3. 03非同期 I/O コードの作成
  4. 04ビジネスロジックのテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mindrally/skills --skill c-sharp

インストール後、Claude Code で/c-sharpを入力して読み込まれたか確認します。

詳細

C# 開発ガイドライン

.NET、Blazor、Unity、最新の C# 言語機能に関する深い知識を持つ、C# 開発のエキスパートとして対応します。

コードスタイルと構成

  • 簡潔で慣用的な C# コードを、正確な例とともに記述します
  • .NET と C# の規約およびベストプラクティスに従います
  • 必要に応じて、オブジェクト指向および関数型プログラミングのパターンを使用します
  • コレクション操作には LINQ とラムダ式を優先します
  • わかりやすい変数名とメソッド名を使用します(例:IsUserLoggedIn、GetUserById)
  • .NET の規約に従ってファイルを構成します(Controllers、Models、Services など)

命名規則

  • クラス名、メソッド名、パブリックプロパティには PascalCase を使用します
  • ローカル変数とプライベートフィールドには camelCase を使用します
  • 定数には SCREAMING_SNAKE_CASE を使用します
  • インターフェース名には「I」を付けます(例:IUserService)
  • プライベートフィールド名にはアンダースコアを付けます(例:_userRepository)

C# 言語機能

C# 10 以降の機能
  • コードを簡潔にするため、ファイルスコープの名前空間を使用します
  • 共通の名前空間にはグローバル using を使用します
  • 不変のデータ型にはレコードを活用します
  • 型チェックと分解にはパターンマッチングを使用します
  • 適切な注釈を付けて nullable 参照型を使用します
最新の構文
  • シンプルなメソッドやプロパティには式形式のメンバーを使用します
  • ターゲット型 new 式(new())を使用します
  • 簡潔な条件分岐には switch 式を使用します
  • 文字列連結より文字列補間を優先します

エラー処理

  • 想定される例外には try-catch ブロックを使用します
  • ドメイン固有のエラーにはカスタム例外クラスを作成します
  • パラメーターの検証には ArgumentNullException.ThrowIfNull() を使用します
  • 適切な場合は、操作結果に Result パターンを実装します
  • コンテキスト情報とともに例外をログに記録します

API 設計

  • Web API には RESTful の規約に従います
  • レイヤー間のデータ転送には DTO を使用します
  • 適切な HTTP ステータスコードを実装します
  • 横断的関心事にはアクションフィルターを使用します
  • API に適切なバージョン管理を導入します

パフォーマンス

  • I/O 待ちの操作には async/await を使用します
  • 適切な場合はキャッシュを実装します
  • ループ内での文字列連結には StringBuilder を使用します
  • ジェネリックを使用してボックス化/ボックス化解除を回避します
  • 高いパフォーマンスが求められる場面では Span<T> と Memory<T> を使用します

依存性注入

  • 依存関係にはコンストラクターインジェクションを使用します
  • 適切なライフタイム(Scoped、Transient、Singleton)でサービスを登録します
  • サービスの抽象化にはインターフェースを使用します
  • Program.cs または Startup.cs で DI を構成します

テスト

  • xUnit または NUnit を使用してユニットテストを記述します
  • モックには Moq または NSubstitute を使用します
  • Arrange-Act-Assert パターンに従います
  • ビジネスロジックの高いテストカバレッジを目指します
  • 読みやすいアサーションには FluentAssertions を使用します

セキュリティ

  • すべてのユーザー入力を検証します
  • SQL インジェクションを防ぐため、パラメーター化クエリまたは Entity Framework を使用します
  • 適切な認証と認可を実装します
  • シークレットは構成情報(User Secrets、Azure Key Vault)に保存します
  • すべての通信に HTTPS を使用します

Blazor 固有のガイドライン

  • コンポーネントベースのアーキテクチャを使用します
  • 適切な状態管理を実装します
  • 共有状態にはカスケードパラメーターを使用します
  • @key と仮想化を使用してレンダリングを最適化します
  • コンポーネントのライフサイクルイベントを適切に処理します

Unity 固有のガイドライン

  • ゲームオブジェクトの振る舞いには MonoBehaviour を使用します
  • データコンテナーには ScriptableObjects を実装します
  • モジュール性を高めるため、コンポーネントパターンに従います
  • 時間ベースの処理にはコルーチンを使用します
  • 頻繁にインスタンス化されるオブジェクトにはオブジェクトプーリングを実装します

コメント