mcpField
B
backend-development

backend-development

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

backend-development について

C++ と Elixir/Phoenix のバックエンド開発向けスキルです。コード構成、エラー処理、リソース管理の実践方法を扱います。

主な機能

  1. 01C++ の命名とメモリ管理
  2. 02モダン C++ 機能の活用指針
  3. 03Phoenix contexts による領域構成
  4. 04パターンマッチとエラー処理
  5. 05LiveView と Ecto の検証実践

活用シーン

  1. 01C++ コードレビュー基準の策定
  2. 02Phoenix の業務コンテキスト整理
  3. 03バックエンドのリソースとエラー処理
  4. 04LiveView とデータ検証コードの作成

インストール

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

$npx skills add https://github.com/mindrally/skills --skill backend-development

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

詳細

バックエンド開発

C++ と Elixir/Phoenix によるバックエンド開発のエキスパートです。

C++ 開発

命名規則
  • クラスと構造体には PascalCase を使用します
  • 変数とメソッドには camelCase を使用します
  • 定数とマクロには SCREAMING_SNAKE_CASE を使用します
メモリ管理
  • 生ポインターよりスマートポインター(std::unique_ptr、std::shared_ptr)を優先します
  • 排他的な所有権には std::unique_ptr を使用します
  • 共有所有権が必要な場合に限り std::shared_ptr を使用します
  • すべてのリソース管理で RAII を実装します
  • 不要なヒープ割り当てを避けます
モダン C++ の機能
  • 可読性が向上する場合は、型推論に auto を使用します
  • 範囲ベースの for ループを活用します
  • 存在しない可能性のある値には std::optional を使用します
  • 型安全な共用体には std::variant を使用します
  • コードをすっきりさせるために構造化束縛を適用します
  • ムーブセマンティクスには std::move を使用します
エラー処理
  • エラー処理には例外を使用します
  • ドメイン固有のエラーにはカスタム例外型を定義します
  • 適切な境界で例外をキャッチします
  • すべてのコードで例外安全性を確保します
ベストプラクティス
  • コード全体で const の正確性を徹底します
  • C スタイルのキャストを避け、static_cast、dynamic_cast などを使用します
  • Google Test または Catch2 でユニットテストを作成します
  • Doxygen コメントでドキュメントを作成します

Elixir と Phoenix のベストプラクティス

基本理念
  • PragDave の理念に基づくドメイン駆動設計に従います
  • 明示的なエラー処理を伴う関数型プログラミングを使用します
  • 「let it crash」の原則を取り入れます
コードの構成
  • Phoenix コンテキストを使って、ビジネスドメインを中心にコードを構成します
  • 各コンテキストが単一のドメインに専念するようにします
  • 結合を防ぐために境界づけられたコンテキストを使用します
  • 各コンテキストに明確な公開 API を実装します
パターンマッチングと制御フロー
  • データ抽出にはパターンマッチングを積極的に使用します
  • with 文を使って「レール指向プログラミング」を適用します
  • パイプ演算子で処理を明確につなぎます
  • すべてのパターンマッチのケースを明示的に処理します
エラー処理
  • タグ付きタプル({:ok, result} または {:error, reason})を返します
  • 失敗する可能性のある処理をつなぐには with 文を使用します
  • 適切なスーパービジョンツリーを実装します
  • 想定されるエラーを明示的に処理します
Phoenix コンテキスト
  • 関連する機能をコンテキストにまとめます
  • コンテキスト間に明確な境界を定義します
  • ビジネスロジックの API 層としてコンテキストを使用します
  • コントローラーは薄く保ち、処理をコンテキストに委譲します
LiveView
  • 主要な UI 技術として LiveView を使用します
  • 再利用可能な UI には関数コンポーネントを実装します
  • LiveView モジュールでイベントを処理します
  • assigns で適切に状態を管理します
データ検証
  • Ecto.Changeset を使って境界で検証します
  • データベースのコンテキスト以外でも changeset を使用します
  • 明確な検証ルールを定義します
  • 役立つエラーメッセージを返します

コメント