mcpField
P
principle-minimize-reader-load

principle-minimize-reader-load

github.com/backnotprop開発3.1k5.8k 回インストール今日更新
リポジトリ

principle-minimize-reader-load について

コードの理解に必要な読者の負担を減らす開発スキルです。間接層と隠れた状態を抑え、新しい読者が値の由来や変更要因を追う時間を目安にします。

主な機能

  1. 01不要な抽象レイヤーの削減
  2. 02重要な判断を隠すインターフェースの優先
  3. 03可変状態のスコープ縮小
  4. 04境界での不変条件の明示
  5. 05読者の追跡負荷によるコード評価

活用シーン

  1. 01ラッパーやアダプター追加案のレビュー
  2. 02単純な中継レイヤーのリファクタリング
  3. 03共有可変状態の削減
  4. 04新規コントリビューターのデータフロー把握

インストール

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

$npx skills add https://github.com/backnotprop/pstack --skill principle-minimize-reader-load

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

詳細

読者の負荷を最小限に抑える

保守性とは、コードを理解するために読者が行わなければならない作業です。2 つの軸で捉えます。たどるレイヤー数(疑問から答えにたどり着くまでの間接参照の数)と、把握しておく状態(読者が頭の中に保持しなければならない、隠れたコンテキストや変更可能なコンテキスト)です。LOC、サイクロマティック複雑度、「クリーンアーキテクチャ」はその代用指標です。重要なのは読者の負荷です。この 2 つの軸は独立しています。グローバル変数が 50 個あるフラットなファイルも、6 層のアダプタースタックと同じくらい推論しにくい場合があります。両方に注意してください。これはコンテキストウィンドウを守ることの、人間にとっての類似例です。読者の作業記憶にも限りがあります。

  • コストに見合わないレイヤーは統合します。 呼び出し元が 1 つだけのラッパー、2 つ目の実装がないアダプター、必要になったことのない、推測に基づく間接参照などです。インライン化してください。
  • 隣り合うレイヤーでは抽象化を変えます。 同じメソッドと引数を繰り返すレイヤーは、情報を圧縮せず読者の負荷を増やします。単に受け渡すだけのレイヤーは統合してください。
  • インターフェースに情報の圧縮を求めます。 複雑さをほとんど隠さない幅広いインターフェースでは、読者はインターフェースと実装の両方を把握しなければなりません。意味のある判断を隠す境界を優先してください。
  • 状態のスコープを縮小します。 ミューテーションより戻り値を使う純粋関数を優先し、フィールドよりローカル変数を、モジュール状態よりフィールドを、グローバル変数よりモジュール状態を優先してください。同じ状態を同期するのではなく、必要に応じて導出してください。
  • 不変条件は各利用箇所ではなく、境界で名付けます。 そうすれば、読者は一度だけ把握すれば済みます。
  • レイヤーや状態を追加する前に、こう問いかけてください。他の箇所の読者の負荷を、それと同等以上に減らせますか?

確認方法: 新しい読者が「X はどこから来るのか?」「何が X を変えるのか?」に 30 秒以内で答えられますか?答えられない場合は、レイヤーか状態を減らしてください。

コメント