mcpField
C
clean-code-principles

clean-code-principles

github.com/asyrafhussin開発951.8k 回インストール9 週間前に更新
リポジトリ

clean-code-principles について

ソフトウェアの設計、レビュー、リファクタリングに使える言語非依存のスキルです。SOLID、基本原則、デザインパターンに沿った指針と、コード監査結果の書式を提供します。

主な機能

  1. 01SOLID 原則の指針
  2. 02基本的な設計原則
  3. 03一般的なデザインパターンのルール
  4. 04コード監査結果の書式

活用シーン

  1. 01ソフトウェアアーキテクチャのレビュー
  2. 02既存コードのリファクタリング
  3. 03SOLID 原則に照らしたコード評価
  4. 04コード品質の問題の報告

インストール

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

$npx skills add https://github.com/asyrafhussin/agent-skills --skill clean-code-principles

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

同梱ファイル

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

AGENTS.md
metadata.json
README.md
rules/
_sections.md
_template.md
core-composition.md
core-dry-extraction.md
core-dry-single-source.md
core-dry.md
core-encapsulation.md
core-fail-fast.md
core-kiss-readability.md
core-kiss-simplicity.md
core-law-demeter.md
core-separation-concerns.md
core-yagni-abstractions.md
core-yagni-features.md
pattern-repository.md
solid-dip-abstractions.md
solid-dip-injection.md
solid-isp-clients.md
solid-isp-interfaces.md
solid-lsp-contracts.md
solid-lsp-preconditions.md
solid-ocp-abstraction.md
solid-ocp-extension.md
solid-srp-class.md
solid-srp-function.md

詳細

クリーンコードの原則

ソフトウェア設計の基本原則、SOLID、デザインパターン、クリーンコードの実践方法です。保守性と拡張性に優れたソフトウェアを書くための、言語に依存しないガイドラインです。

適用するタイミング

次のような場合に、これらのガイドラインを参照してください。

  • 新しい機能やシステムを設計するとき
  • コードアーキテクチャをレビューするとき
  • 既存のコードをリファクタリングするとき
  • 設計上の決定について話し合うとき
  • コードの品質を向上させるとき

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1SOLID の原則重大solid-
2基本原則重大core-
3デザインパターン高pattern-
4コード構成高org-
5命名と可読性中name-
6関数とメソッド中func-
7コメントとドキュメント低doc-

クイックリファレンス

1. SOLID の原則(重大)
  • solid-srp - 単一責任の原則
  • solid-ocp - オープン・クローズドの原則
  • solid-lsp - リスコフの置換原則
  • solid-isp - インターフェース分離の原則
  • solid-dip - 依存性逆転の原則
2. 基本原則(重大)
  • core-dry - 繰り返しを避ける
  • core-kiss - シンプルに保つ
  • core-yagni - 必要になるまで実装しない
  • core-separation-of-concerns - 異なる責務を分離する
  • core-composition-over-inheritance - 継承よりコンポジションを優先する
  • core-law-of-demeter - 知識を最小限にする原則
  • core-fail-fast - エラーを早期に検出して報告する
  • core-encapsulation - 実装の詳細を隠す
3. デザインパターン(高)
  • pattern-factory - オブジェクト生成にファクトリーパターンを使う
  • pattern-strategy - アルゴリズムにストラテジーパターンを使う
  • pattern-repository - データアクセスにリポジトリーパターンを使う
  • pattern-decorator - 振る舞いの拡張にデコレーターパターンを使う
  • pattern-observer - イベント処理にオブザーバーパターンを使う
  • pattern-adapter - インターフェースの変換にアダプターパターンを使う
  • pattern-facade - インターフェースの簡素化にファサードパターンを使う
  • pattern-dependency-injection - 疎結合を実現するために DI を使う
4. コード構成(高)— 予定
  • org-feature-folders - レイヤーごとではなく、機能ごとに整理する
  • org-module-boundaries - モジュールの境界を明確にする
  • org-layered-architecture - レイヤーを適切に分離する
  • org-package-cohesion - 関連するコードをまとめる
  • org-circular-dependencies - 循環インポートを避ける
5. 命名と可読性(中)— 予定
  • name-meaningful - 意図が伝わる名前を使う
  • name-consistent - 一貫した命名規則を使う
  • name-searchable - マジックナンバーやマジック文字列を避ける
  • name-avoid-encodings - ハンガリアン記法を使わない
  • name-domain-language - ドメインの用語を使う
6. 関数とメソッド(中)— 予定
  • func-small - 関数を小さく保つ
  • func-single-purpose - 1つのことだけを行う
  • func-few-arguments - パラメーターを制限する
  • func-no-side-effects - 副作用を最小限にする
  • func-command-query - コマンドとクエリーを分離する
7. コメントとドキュメント(低)— 予定
  • doc-self-documenting - コード自体で説明する
  • doc-why-not-what - 何をするかではなく、なぜするかを説明する
  • doc-avoid-noise - 冗長なコメントを避ける
  • doc-api-docs - 公開 API をドキュメント化する

重要なガイドライン

詳しい例と説明については、ルールファイルを参照してください。

SOLID の原則(概要)
原則定義
Single Responsibilityクラスが変更される理由は1つだけであるべきです
Open/Closed拡張に対して開かれ、変更に対して閉じている
Liskov Substitutionサブタイプは基底型と置換可能でなければなりません
Interface Segregationクライアントに未使用のインターフェースへの依存を強制しない
Dependency Inversion具象ではなく、抽象に依存する
基本原則(概要)
原則定義
DRY同じことを繰り返さない ― 信頼できる唯一の情報源
KISSシンプルに保つ ― 過度な設計を避ける
YAGNI今は必要ない ― 必要なものだけを構築する
簡単な例
// Single Responsibility - one class, one job
class UserService {
  constructor(
    private validator: UserValidator,
    private repository: UserRepository,
  ) {}

  createUser(data) {
    this.validator.validate(data);
    return this.repository.create(data);
  }
}

// Dependency Inversion - depend on abstractions
interface Repository<T> {
  find(id: string): Promise<T | null>;
  save(entity: T): Promise<T>;
}

class OrderService {
  constructor(private repository: Repository<Order>) {}
}

// DRY - single source of truth
const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
const isValidEmail = (email: string) => EMAIL_REGEX.test(email);

// Meaningful names over magic numbers
const MINIMUM_AGE = 18;
if (user.age >= MINIMUM_AGE) { }

出力形式

コードを監査するときは、次の形式で指摘事項を出力します。

file:line - [principle] Description of issue

例:

src/services/UserService.ts:15 - [solid-srp] Class handles validation, persistence, and notifications
src/utils/helpers.ts:42 - [core-dry] Email validation duplicated from validators/email.ts
src/models/Order.ts:28 - [name-meaningful] Variable 'x' should describe its purpose

使用方法

詳細な説明については、個々のルールファイルをお読みください。

rules/solid-srp-class.md
rules/core-dry.md
rules/pattern-repository.md

参考資料

このスキルは、確立されたソフトウェアエンジニアリングの原則に基づいています。

主な書籍
  • Clean Code(Robert C. Martin 著)― クリーンコードの実践の基礎
  • Design Patterns(Gang of Four 著)― 古典的なデザインパターンのカタログ
  • Refactoring(Martin Fowler 著)― コード構造の改善
  • The Pragmatic Programmer(Hunt & Thomas 著)― 実践的な知恵
オンラインリソース
パターンカタログ

メタデータ

バージョン: 1.0.2 ステータス: アクティブ 対象範囲: 3 つの実装済みカテゴリ(SOLID、基本原則、デザインパターン)にわたる 23 のルール、計画中 4 件 最終更新日: 2026-03-07

ルールの統計
  • SOLID 原則:10 ルール
  • 基本原則:12 ルール
  • デザインパターン:1 ルール

コメント