053-design-simple-rules について
053-design-simple-rulesは、Java開発者が設計レビューやリファクタリングでKent Beckのシンプルデザインルールを適用する対話型スキルです。正しさ、明瞭さ、重複、要素数の順に評価し、選択肢とトレードオフを報告します。
主な機能
- 01優先順位に沿ったルール適用
- 02テストを正しさの基準として使用
- 03抽象化より意図の明瞭さを優先
- 04意味を曖昧にせず重複を削減
- 05先行ルールの確認後に要素を最小化
- 06トレードオフと検証根拠の報告
活用シーン
- 01Javaのリファクタリング案の比較
- 02シンプルデザインルールによる設計レビュー
- 03抽象化が明瞭さを高めるかの評価
- 04正しさを保った簡素化案の選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 053-design-simple-rulesインストール後、Claude Code で/053-design-simple-rulesを入力して読み込まれたか確認します。
同梱ファイルreferences/053-design-simple-rules.md
詳細
シンプルな設計ルール
設計やリファクタリングの選択肢を評価する際に、Kent Beck のシンプルな設計ルールを Java 開発者が活用できるようにガイドします。これは対話型のスキルです。
このスキルで扱う内容
- 設計の整理に着手する前に、テストを正しさの最初の境界として使う
- 抽象化への圧力に応じる前に、意図を明らかにして明瞭さを最大限に高める
- ドメインの意味を隠したり、可読性を損ねたりせずに重複を減らす
- 正しさ、明瞭さ、重複への対応後に、要素を減らすことを最後の単純化の指針とする
- 優先順位を付けたルールに基づいて、Java の設計やリファクタリングの選択肢を比較する
- 選んだ選択肢、トレードオフ、検証結果の指標、残るリスクを報告する
制約
シンプルな設計ルールを優先順位に従って適用し、先にあるルールを弱めて後のルールを最適化しないでください。
- 必須:ルールを適用する前に
references/053-design-simple-rules.mdを読む - 必須:ルールを次の順序で評価する:テストに合格する、意図を明らかにする、重複がない、要素が最も少ない
- 必須:設計の整理に着手する前に、テストの合格を正しさの境界として扱う
- 必須:それ自体が目的の抽象化より、意図の明瞭さを優先する
- 必須:結果によって明瞭さが維持または向上する場合にのみ、重複を減らす
- 必須:正しさ、明瞭さ、重複に対応した後にのみ、要素を減らすことを検討する
このスキルを使う場面
- シンプルな設計ルールを適用する
- Beck のシンプルな設計ルールを使う
- この設計をシンプルな設計ルールでレビューする
- これらのリファクタリングの選択肢から選ぶ
- この Java の設計をシンプルに保つ
- この設計はシンプルな設計ルールに合格しますか?
ワークフロー
- 正しさを基準にする
references/053-design-simple-rules.md を読み、議論の対象となっている動作と、コードが正しく動作するかを判断する基準となるテスト、特性評価チェック、ビルドチェック、または手動の証拠を特定します。
- 意図を明らかにする
名前、型、責務、制御フロー、API の形、テストの説明によって、将来の保守担当者がドメイン上の判断を明確に理解できるかを評価します。
- 慎重に重複を減らす
繰り返されている知識、ポリシー、マッピング、検証、クエリ、ワークフロー上の判断を探します。抽象化によって意図がより理解しやすくなる場合にのみ、重複を取り除きます。
- 最後に要素を最小限にする
正しさ、明瞭さ、重複に対応した後、もはや存在意義のないクラス、メソッド、パラメーター、分岐、レイヤー、設定、間接化を取り除きます。
- 選択肢を比較して報告する
利用可能な設計またはリファクタリングの選択肢を、優先順位を付けたルールに照らして比較します。先にあるルールを最もよく満たす選択肢を推奨し、採用しなかった選択肢のトレードオフを説明して、検証結果の指標を示します。
リファレンス
詳細なガイダンス、例、制約については、references/053-design-simple-rules.md を参照してください。