mcpField
S
solid-java

solid-java

github.com/fusengine開発3444 回インストール1 日前に更新
リポジトリ

solid-java について

SOLID原則と機能別モジュールでコードを構成するJavaチーム向けのアーキテクチャスキルです。責務分担、再利用、依存性注入、実装のひな形に関するルールとテンプレートを提供します。

主な機能

  1. 01機能別のモジュール構成
  2. 02共有コードの再利用チェック
  3. 03サービスに委譲する薄いコントローラー
  4. 04DTOにrecord、制限付き階層にsealed型を使用
  5. 05公開メソッドへのJavadoc
  6. 06アーキテクチャとコードのテンプレート

活用シーン

  1. 01Javaコードベースを機能別モジュールに整理
  2. 02再利用可能な共有サービスやインターフェースの確認
  3. 03サービス、リポジトリ、テストのひな形作成
  4. 04実装時のSOLID原則の適用

インストール

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

$npx skills add https://github.com/fusengine/claude-plugins --skill solid-java

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

詳細

SOLID Java では、Java 25 以降(現行の LTS)向けにモジュール化アーキテクチャを適用します。すべての機能は `modules/[feature]/` 配下(コントローラー、サービス、リポジトリ、インターフェース、モデル/DTO)に配置し、共有コードは `modules/core/` に配置します。インターフェースは `modules/[feature]/interfaces/` のみに配置し、コントローラーは薄く保ってサービスに処理を委譲します。ファイルは `FUSE_SOLID_MAX_LINES` 以内に収め、DTO にはレコード、制限付き階層にはシールド型を使用し、すべての public メソッドに Javadoc を付けます。

新しいコードを書く前に、modules/core/services と modules/core/interfaces を対象に DRY チェックを必ず行います。概要は solid-principles.md を、SRP/OCP/LSP/ISP/DIP の詳細は各原則のリファレンスを、モジュール/サービス/インターフェース/リポジトリ/エラー/テストのひな形はテンプレートを参照してください。

SOLID Java - モジュール化アーキテクチャ

エージェントのワークフロー(必須)

実装を行う前に、name を指定した Agent 呼び出しをそれぞれ 1 回ずつ使い、3 つのエージェントを並行して起動してください。

  1. fuse-ai-pilot:explore-codebase - 既存のアーキテクチャを分析します
  2. fuse-ai-pilot:research-expert - Context7 を使って Java のドキュメントを確認します
  3. fuse-ai-pilot:sniper - 実装後の検証を行います

DRY - 作成する前に再利用(必須)

新しいコードを書く前に必ず行うこと:

  1. 類似のインターフェース、サービス、ロジックがないか、コードベースを Grep で検索します
  2. 共有領域を確認します:modules/core/services/、modules/core/interfaces/
  3. 類似コードが存在する場合 -> 重複させず、拡張または再利用します
  4. 2 つ以上の機能でコードを使う場合 -> modules/core/ に作成します

アーキテクチャ(モジュール必須)

レイヤー場所
コントローラーmodules/[feature]/controllers/
サービスmodules/[feature]/services/
リポジトリmodules/[feature]/repositories/
インターフェースmodules/[feature]/interfaces/
モデル/DTOmodules/[feature]/models/
共有modules/core/{services,interfaces,models}/

フラットな src/ 構造は絶対に使用せず、必ず modules/[feature]/ を使用してください


重要なルール(必須)

ルール値
ファイルの上限FUSE_SOLID_MAX_LINES
コントローラー薄く保ち、サービスに処理を委譲します
インターフェースmodules/[feature]/interfaces/ のみ
Javadocすべての public メソッドに記述します
レコードDTO に使用します(Java 16 以降)
シールド型制限付き階層に使用します(Java 17 以降)

リファレンスガイド

概念
トピックリファレンス参照するタイミング
SOLID の概要solid-principles.mdクイックリファレンス
SRPsingle-responsibility.md巨大なクラス
OCPopen-closed.mdプロバイダーの追加
LSPliskov-substitution.md契約
ISPinterface-segregation.md巨大なインターフェース
DIPdependency-inversion.mdインジェクション
アーキテクチャarchitecture-patterns.mdモジュール化パターン
テンプレート
テンプレート使用するタイミング
module.md機能モジュールの構造
service.mdビジネスロジックサービス
interface.md契約の定義
repository.mdデータアクセス層
error.mdカスタム例外
test.mdモックを使った単体テスト

禁止事項

アンチパターン修正方法
FUSE_SOLID_MAX_LINES を超えるファイル責務ごとに分割します
実装ファイル内のインターフェースinterfaces/ ディレクトリに移動します
サービス内の new ConcreteClass()依存性注入を使用します
フラットな src/ 構造modules/[feature]/ を使用します
ゴッドクラス責務ごとに分割します

コメント