Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プリンシプルオブプログラミング ~3章(Unix除く)と7章~

Terry
January 29, 2021
120

 プリンシプルオブプログラミング ~3章(Unix除く)と7章~

2021/01のはじめてのIT勉強会のメイントーク資料です。
https://lets-go-study-meeting.connpass.com/event/199511/

Terry

January 29, 2021
Tweet

Transcript

  1. The Principles of Programing • 第1章 前提 ~プログラミングの変わらぬ真実~ • 第2章

    原則 ~プログラミングのガイドライン~ • 第3章 思想 ~プログラミングのイデオロギー~ • 第4章 視点 ~プログラマの見る角度~ • 第5章 習慣 ~プログラマのルーティン~ • 第6章 手法 ~プログラマの道具箱~ • 第7章 法則 ~プログラミングのアンチパターン~
  2. The Principles of Programing • 第1章 前提 ~プログラミングの変わらぬ真実~ • 第2章

    原則 ~プログラミングのガイドライン~ • 第3章 思想 ~プログラミングのイデオロギー~ • 第4章 視点 ~プログラマの見る角度~ • 第5章 習慣 ~プログラマのルーティン~ • 第6章 手法 ~プログラマの道具箱~ • 第7章 法則 ~プログラミングのアンチパターン~
  3. The Principles of Programing • 第1章 前提 ~プログラミングの変わらぬ真実~ • 第2章

    原則 ~プログラミングのガイドライン~ • 第3章 思想 ~プログラミングのイデオロギー~ • 第4章 視点 ~プログラマの見る角度~ • 第5章 習慣 ~プログラマのルーティン~ • 第6章 手法 ~プログラマの道具箱~ • 第7章 法則 ~プログラミングのアンチパターン~
  4. アーキテクチャ根底技法 • 抽象 • カプセル化 • 情報隠蔽 • パッケージ化 •

    関心の分離 • 充足性、完全性、プリミティブ性 • ポリシーと実装の分離 • インターフェイスと実装の分離 • 参照の一点性 • 分割統治
  5. アーキテクチャ根底技法 コレクションであれば • 充足性 ◦ add() ◦ remove() • 完全性

    ◦ size() • プリミティブ性(純粋性) ◦ add10()はいらない
  6. アーキテクチャ非機能要件 変更容易性 F A機能 F B機能 B B機能 B A機能

    がっちり密結合 F A機能 F B機能 B B機能 B A機能
  7. 7つの設計原則 明証原理 results = Database.all_objects.filter(“year <= 2011”) year <= 2011

    であるオブジェクト? でないオブジェクト? 出典:リーダブルコード 3章 誤解されない名前
  8. The Principles of Programing • 第1章 前提 ~プログラミングの変わらぬ真実~ • 第2章

    原則 ~プログラミングのガイドライン~ • 第3章 思想 ~プログラミングのイデオロギー~ • 第4章 視点 ~プログラマの見る角度~ • 第5章 習慣 ~プログラマのルーティン~ • 第6章 手法 ~プログラマの道具箱~ • 第7章 法則 ~プログラミングのアンチパターン~
  9. 法則 ~プログラミングのアンチパターン~ • ブルックスの法則 • コンウェイの法則 • 割れた窓の法則 • エントロピーの法則

    • 80-10-10の法則 • ジョシュアツリーの法則 • セカンドシステム症候群 • 車輪の再発明 • ヤクの毛刈り
  10. • 硬さ • 脆さ • 移植性のなさ • 扱いにくさ • 複雑さ

    • 繰り返し • 不透明さ 法則 ~プログラミングのアンチパターン~