principle-minimize-reader-load について
読者が処理の流れを追い、状態を把握する負担から保守性を評価するスキルです。理解しやすいコードに向けた見直しを支援します。
主な機能
- 01間接層の評価
- 02可変状態の評価
- 03純粋関数と局所状態の優先
- 04境界で不変条件を明示
- 0530秒理解テスト
活用シーン
- 01追加する抽象化のレビュー
- 02コード内の隠れた状態の削減
- 03追跡しにくいコードのリファクタリング
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ poteto/ plugins --skill principle-minimize-reader-loadインストール後、Claude Code で/principle-minimize-reader-loadを入力して読み込まれたか確認します。
詳細
読者の負荷を最小限にする
保守性とは、コードを理解するために読者が行わなければならない作業です。次の2つの軸で考えます。
- たどる階層。 問いと答えの間に、いくつの間接参照があるか。
- 把握すべき状態。 読者が頭の中に保持しなければならない、隠れたコンテキストや変更可能なコンテキストの量。
理由: コードは書かれるよりもはるかに頻繁に読まれます。行数(LOC)、循環的複雑度、「クリーンアーキテクチャ」はあくまで代替指標です。重要なのは読者の負荷です。この2つの軸は独立しています。グローバル変数が50個あるフラットなファイルも、6層のアダプタースタックと同じくらい理解しにくくなることがあります。どちらにも注意しましょう。これはコンテキストウィンドウを守ることの、人間における類似例です。読者の作業記憶にも限りがあります。
パターン:
- 役割に見合わない階層は取り除きます。呼び出し元が1つだけのラッパー、2つ目の実装がないアダプター、実現しなかった将来のために導入された間接参照はインライン化します。
- 状態のスコープを小さくします。 ミューテーションより戻り値を使う純粋関数、フィールドよりローカル変数、モジュール状態よりフィールド、グローバル変数よりモジュール状態を優先します。同期するのではなく、値を導出します。
- 不変条件は各利用側ではなく境界で命名し、 読者が一度で理解できるようにします。
- 階層や状態を追加する前に、こう問いかけます。他の箇所の読者の負荷を、それと同等以上に減らせるでしょうか?
テスト: 新しい読者が「Xはどこから来るのか?」と「何がXを変えるのか?」に30秒以内に答えられるでしょうか?答えられない場合は、階層か状態を減らしましょう。
コメント
Markdown 対応