もちもちみかん0系くん
(プログラミングの設計原則を素早く復習できる実用チートシート)

プログラミング
設計原則チートシート

公開日:
最終更新日:

迷ったらこの一枚!KISS・DRY・YAGNI・OCPの要点を凝縮し、判断の迷いを素早く解消します。

印刷・スマホ対応でどこでも即チェックでき、ムダな実装や手戻りをぐっと減らせます。

日々の判断はこのチートシートでスピードアップ、実力強化は「プログラミング クイズ」で!

目次

  1. ピックアップ・特集記事へ

  1. クイズ一覧へ
  2. 『プリンシプル オブ プログラミング』101の原理・原則総まとめ

  1. 参考文献・出典
  2. このページの著者
  3. シェア

要約

  • KISS:まずは最小構造。仕様が曖昧な時は直書きで出荷し、観測する。
  • DRY:重複を避ける対象はコード行数ではなく知識(ルール・仕様)。同じ知識が2回出たら一元化を検討。
  • YAGNI:必要の根拠(仕様/実測/顧客確約)が来るまで先回り実装はしない。
  • OCP:同種変更が繰り返されるなら拡張点を設け、既存を修正せずに機能追加できるようにする。

トレードオフ早見表

原則目的適用する時(合図)適用しない時(見送り基準)よくある落とし穴迷った時の一手
KISS 構造を最小に保つ 仕様が曖昧/パターンが1〜2種 同種の変更が繰り返し入る 早すぎる抽象化で複雑化 まず直書き→実データで様子を見る
DRY 知識の一元化 同じルール・仕様が2回以上出た 用途ズレ/似て非なるケースが混在 コピペ削減=善の誤解(湿ったDRY) 似ているだけなら重複容認、共通化は後回し
YAGNI 先回り実装を抑止 「必要」の根拠が仕様/実測/顧客確約 「あると便利」「たぶん使う」レベル 設定や拡張点を先に作る TODO化+観測(使用率)で判断
OCP 拡張に開き修正に閉じる 同種の拡張が2回以上発生/今後も増える 拡張頻度が低い/抽象維持コストが高い 目的不明のインタフェース乱立 拡張点を1箇所だけ設け範囲を限定

メモ:DRYは“コード行数”ではなく知識を対象に。OCP導入は「同種変更×2」がシグナル。

意思決定フロー(簡易版)

  1. その機能は本当に必要?根拠=仕様/実測/顧客確約。なければ YAGNI(実装しない)。
  2. 必要なら、まずKISSで最小実装(直書きでOK)。
  3. 同種の変更・拡張が繰り返されたら、DRY(知識の一元化)とOCP(拡張点の設計)を検討。
  4. 用途がズレるなら重複容認(湿ったDRYを避ける)。拡張点は最小限・1箇所に限定。
  5. 導入後は観測(使用率・変更頻度)で見直す。

※ Mermaid図を使う場合はWeb版ガイドに掲載し、PDFには本文フローを掲載するのが安定です。

レビュー用チェックリスト

KISS

  • 仕様が曖昧な箇所は直書きで十分か?
  • 命名・引数・分岐は最小か?
  • 抽象が早すぎていないか?(複雑度↑)

DRY

  • 同じ知識が2回以上現れていないか?
  • “似て非なる”ケースを無理に共通化していないか?
  • 重複容認のほうがメンテ容易では?

YAGNI

  • 「必要」の根拠はあるか(仕様/実測/確約)?
  • 死蔵※しそうな設定・拡張点を先に作っていないか?
  • TODO化して観測に回せるか?

OCP

  • 同種変更が繰り返されているか(×2が合図)?
  • 拡張点は1箇所に限定できているか?
  • 抽象維持コストが便益を上回っていないか?

※ 死蔵…物事を活用しないで、ただしまい込んでおくこと。

アンチパターンと対処

アンチパターン兆候対処
湿ったDRY(過剰共通化)用途ズレで条件だらけ重複容認にロールバック/用途が収束してから共通化
早すぎる抽象化(KISS違反)将来予測でIF乱立具体化して出荷→パターン出現を待って設計
YAGNI違反(先回り実装)設定・フラグが死蔵TODO化+実測で削除/着手判断
OCP過適用抽象だらけで追えない拡張実績のない箇所は閉じる/拡張点は最小に限定

© 2025 設計原則チートシート|KISS/DRY/YAGNI/OCP

参考文献・出典

  • プリンシプル オブ プログラミング ~3年目までに身につけたい一生役立つ101の原理原則~
  • 上田 勲(著)/秀和システム/第1版14刷/2025年/ISBN978-4-7980-4614-3

※本ページは学習支援を目的とした要約です。実務適用時は原典もご参照ください。

このページの著者

もちもちみかん(システムエンジニア)

社内SEとしてグループ企業向けの業務アプリを要件定義〜運用まで一気通貫で担当しています。

経験:Webアプリ/業務システム

得意:PHP・JavaScript・MySQL・CSS

個人実績:フォーム生成基盤クイズ学習プラットフォーム


詳しいプロフィールはこちら!  もちもちみかんのプロフィール

TOPへ

もちもちみかん.comとは


このサイトでは、コーディングがめんどうくさい人向けのお助けツールとして、フォームやCSSをノーコードで生成できる、
 もちもちみかん.forms
 もちもちみかん.css1
 もちもちみかん.css2
と言ったジェネレーターを用意してます。

また、このサイトを通じて、「もちもちみかん」のかわいさを普及したいとかんがえてます!