mcpField
S
solid-java

solid-java

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

solid-java について

solid-javaは、Java 25以降の開発でモジュール型アーキテクチャとSOLID原則を適用するためのスキルです。必須の再利用チェック、構成ルール、各種コンポーネントの資料とテンプレートでコーディングエージェントを支援します。

主な機能

  1. 01機能ごとのモジュール構成
  2. 02実装前の再利用チェック
  3. 03SOLID原則のリファレンス
  4. 04モジュールと各層のテンプレート
  5. 05コード量とドキュメントの規則

活用シーン

  1. 01新しいJava機能の構成設計
  2. 02ロジック追加前の共有コード確認
  3. 03サービスやリポジトリのひな型作成

インストール

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

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

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
architecture-patterns.md
dependency-inversion.md
interface-segregation.md
liskov-substitution.md
open-closed.md
single-responsibility.md
solid-principles.md
references/templates/
error.md
interface.md
module.md
repository.md
service.md
test.md

詳細

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

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

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

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

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

  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/50
サービスmodules/[feature]/services/100
リポジトリmodules/[feature]/repositories/100
インターフェースmodules/[feature]/interfaces/30
モデル/DTOmodules/[feature]/models/50
共有modules/core/{services,interfaces,models}/-

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


重要なルール(必須)

ルール値
ファイルの上限100 行(90 行で分割)
コントローラー50 行未満にし、サービスに処理を委譲します
インターフェース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モックを使った単体テスト

禁止事項

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

コメント