golang-ddd-infrastructure について
Go チームがサービス境界に沿ってインフラとデリバリーを設計するためのスキルです。明示的な設定、決定性のあるテスト、CI、可視化されたセキュリティルールを扱います。
主な機能
- 01宣言的なインフラ管理
- 02明示的なサービス設定
- 03段階的なテスト指針
- 04決定性のある CI 実践
- 05明確なセキュリティ境界
活用シーン
- 01Terraform モジュールの整理
- 02サービスエンドポイントと認証情報の設定計画
- 03統合テストとコンポーネントテストの設計
- 04CI と特権操作のレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ joeyave/ golang-ddd-skills --skill golang-ddd-infrastructureインストール後、Claude Code で/golang-ddd-infrastructureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/infra-and-delivery.mdtesting-and-security.md詳細
Golang DDD Infrastructure
インフラストラクチャやデリバリーの作業が、ドメインモデルへの依存を持ち込んだり安全性を弱めたりせず、サービスアーキテクチャを強化する必要がある場合に、このスキルを使用します。
まずはこちらから
- インフラストラクチャはサービス設計を支えるものであり、アプリケーションの境界に不足がある場合にそれを取り繕う場所ではないと考えます。
- サービスの境界が大まかに明確になった後、または CI、認証、リポジトリ設計が開発の妨げになっている場合に、このスキルを使用します。
ワークフロー
- インフラストラクチャを宣言的に保ちます。
- クリック操作による管理よりも Infrastructure as Code を優先します。
- 繰り返し使用するインフラストラクチャの構成は、Terraform モジュールなどの明確な抽象化にまとめます。
- サービスを明示的に接続します。
- 適切な名前を付けた設定を通じて、サービスのエンドポイント、認証情報、環境ごとの差異を渡します。
- インフラストラクチャ固有の詳細をドメインパッケージに持ち込まないようにします。
- テストピラミッドを実際に機能させます。
- ドメインテストは高速かつローカルで実行できる状態に保ちます。
- アダプターとトランザクションの動作には統合テストを使用します。
- 外部依存をモックした、単一サービスのコンポーネントテストを使用します。
- エンドツーエンドテストの範囲は選択的に保ち、デフォルトのセーフティネットにしないようにします。
- 安定した CI を設計します。
- パイプラインでテストを自動実行します。
- 単体テスト以外のテストは、並列実行に対応し、決定論的に動作するようにします。
sleepによる同期は避け、明示的な準備完了条件や最終的な状態を待ちます。
- セキュリティを明示します。
- 特権を伴う内部更新に、偽のユーザーや隠れたコンテキスト値を使用しないでください。
- セキュリティ上の影響が名前から伝わる、明示的なロール、コマンド、リポジトリメソッドを優先します。
- サービス間認証と権限は、設定およびアダプターコードで確認できるようにします。
- アーキテクチャの境界を保ちます。
- インフラストラクチャはポートとアダプターを組み合わせてもかまいませんが、ドメインにデプロイの詳細を認識させてはいけません。
- リポジトリやハンドラーに特別な内部動作が必要な場合は、マジックフラグを追加せず、明示的な名前を付けます。
以下のリファレンスを使用する
- このスタイルに適した Terraform、Cloud Run、CI のパターンについては、references/infra-and-delivery.md を参照してください。
- テストアーキテクチャとセキュアバイデザインのリポジトリに関するガイダンスについては、references/testing-and-security.md を参照してください。
成果物
- コードとしてレビューできるインフラストラクチャ
- 明示的なサービス接続と権限設定
- 適切なテストを自動実行する CI 経路
- 決定論的に動作する統合テストとコンポーネントテスト
- 明示的なセキュリティ境界を備えた内部操作
コメント
Markdown 対応