もちもちみかん0系くん
『プリンシプル オブ プログラミング』前提編を15問で学べるクイズサイト

プリンシプル オブ プログラミング
第1章:前提 要約&クイズ

公開日:
最終更新日:

本ページでは、『プリンシプル オブ プログラミング』第1章のプログラミングの前提知識と考え方を、短時間で効率よく整理します。

要点要約で予習 → 4択クイズ(15問・全問解説)で理解度を確認 → 解説で復習。この学習サイクルで、プログラミング学習の土台をしっかり固めましょう!

今すぐクイズに挑戦
(15問・約4分・解説つき)
プリンシプルオブプログラミング
101の原理・原則を読む

目次

  1. 要点・要約を読む(3分)
    1. 1.1 プログラミングに銀の弾丸はない(No Silver Bullet)
    2. 1.2 コードは設計書である(Code as design)
    3. 1.3 コードは必ず変更される(Code will be changed)
  2. クイズに挑戦する(15問)

  1. クイズ一覧へ
  2. 次のクイズへ(第2章:原則)
  3. 前のクイズへ(第7章:法則)
  4. 『プリンシプル オブ プログラミング』101の原理・原則総まとめ

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

第1章:前提
~プログラミングの変わらぬ真実~

1.1 プログラミングに銀の弾丸はない(No Silver Bullet)

  • 要旨:万能な技術や特効薬(銀の弾丸)は存在しない。
  • 理由:ソフトウェアには以下の4つの複雑さがあり、ソフトウェアの本質が、定義上それらを取り除けないものだからである。
    • 複雑性:対象が大きく多様で本質的に複雑。
    • 同調整:現実世界の変化に継続的に同調し続ける必要。
    • 可変性:要求・環境の変化に伴い絶えず修正・進化を強いられる。
    • 不可視性:概念の集積体で目に見えない(製品・プロセス・意思決定の履歴も不可視)。
  • 結論歴史から学び、地道な改善を積み重ねる。ただし、偶有的な複雑さ(スキル不足・設計不備・非効率ツールなど)は排除・軽減可能であるためこちらを改善し、本質へ注力する。
  • その他(行動指針)
    • 本質的な複雑さから逃げずに向き合う
    • 偶有的な複雑さは設計力・技術力・チーム運営で着実に削る。

1.2 コードは設計書である(Code as design)

  • 要旨:「基本設計 → 詳細設計 → プログラミング → テスト → デバッグ」まで広義の設計であり、最終アウトプットが設計書=コードである。
  • 理由:多くの事実は実装して初めて露わになり、最終的にはコードが設計を確定させるため。
  • 結論プログラミング=設計として捉え、全員が仕様作成から実装まで担う。よってできるだけ早くコードを書き始め、動くものから妥当性を検証する。また、設計理由(Why)はコメントや補足ドキュメントで明示する。
  • その他(実践ポイント)
    • 動くコードでフィードバックループを回す。
    • Whyはコメントや設計メモとして残す(決定理由・代替案・トレードオフなど)。

1.3 コードは必ず変更される(Code will be changed)

  • 要旨:コードは一度書いて終わりではない。将来必ず変更される。
  • 理由:ソフトウェアは本質的に複雑で、要求変更・不具合修正・新仕様対応が継続的に発生するため、完璧は到達不能
  • 結論:「いずれ変わる」前提で変更に強いコードを書く。最重要は読みやすさ(理解しやすい=変更しやすい)。
  • その他(変更に強くするコツ)
    • 明確な命名と一貫した構造。
    • 小さな関心事に分割し疎結合を保つ。
    • テストで振る舞いを固定し、安心してリファクタリング。

プリンシプル オブ プログラミング(第1章:前提)

1. 【1.3.コードは必ず変更される④】
「完璧に見えるコードでも将来は必ず変わる」という原則に基づき、開発初期から意識すべきことはどれか?

2. 【1.2.コードは設計書である①】
「コードは設計書である」とされる主な理由は何か?

3. 【1.3.コードは必ず変更される⑤】
変更を前提にした設計原則として、最も本質的なものはどれか?

4. 【1.1.プログラミングに銀の弾丸はない⑤】
「本質的な複雑性に向き合い、偶有的な複雑性を克服する」という姿勢が重視される理由として最も適切なものはどれか?

5. 【1.2.コードは設計書である④】
コードが設計書である以上、特に補足すべき内容は何か?

6. 【1.1.プログラミングに銀の弾丸はない①】
ソフトウェア開発において「銀の弾丸はない」とされる理由として最も適切なものはどれか?

7. 【1.1.プログラミングに銀の弾丸はない②】
次のうち、「本質的な複雑性」として誤っているものはどれか?

8. 【1.3.コードは必ず変更される③】
以下のうち、読みやすさを確保することで「変更に強くなる」理由として最も適切なものはどれか?

9. 【1.1.プログラミングに銀の弾丸はない③】
次のうち、「偶有的な複雑性」の例として最も適切なものはどれか?

10. 【1.2.コードは設計書である⑤】
「プログラマは設計全体を担う存在である」とされる背景として最も適切なものはどれか?

11. 【1.3.コードは必ず変更される①】
「コードは必ず変更される」という前提に立つとき、最も避けるべき設計姿勢はどれか?

12. 【1.3.コードは必ず変更される②】
将来の変更に備えた設計として、特に有効とされる考え方はどれか?

13. 【1.2.コードは設計書である③】
「コードは設計書である」ことを前提にした適切な開発姿勢はどれか?

14. 【1.1.プログラミングに銀の弾丸はない④】
ソフトウェア開発における最も健全な姿勢として適切なものはどれか?

15. 【1.2.コードは設計書である②】
「プログラミングは設計そのものである」とされる理由として適切なものはどれか?

第1章:前提の要約を読む クイズ一覧へ

参考文献・出典

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

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

このページの著者

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

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

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

得意:PHP・JavaScript・MySQL・CSS

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


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

採点結果

正答率:0%

-

-

TOPへ

もちもちみかん.comとは


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

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