情報
- タイトル: プリンシプルオブプログラミング
- Amazonのurl: https://amzn.asia/d/6ByhZLx
ざっくりメモ
出典書籍としてあげたら書籍
- The Art of UNIX Programming
- 「CODE COMPLETE 第2版 上 完全なプログラミングを目指して」
- 「Java言語で学ぶリファクタリング入門」
- 「The Art of UNIX Programming」
- 人月の神話 ooこれマジで読まないとなぁ…oo
- 「達人プログラマー」
- 「プロダクティブ・プログラマー プログラマのための生産性向上術」
- 「効果的プログラミング開発技法」
- 「まつもとゆきひろコードの世界スーパー・プログラマになる14の思考法」
- 「アジャイルプラクティス達人プログラマに学ぶ現場開発者の習慣」
- 「プロダクティブ・プログラマー プログラマのための生産性向上術」
「プログラミングPerl<VOLUME1>」
- 「Clean Code アジャイルソフトウェア達人の技」
- 「Java言語で学ぶリファクタリング入門」
- 「Joel on Software」 Joel Spolsky
- 「UNIXという考え方 その設計思想と哲学」
- 「人月の神話」
- 「組織パターン」
- 「達人プログラマー」
- 小飼弾の「仕組み」進化論
- 「プログラミングの心理学25周年記念版」 ジェラルド・M・ワインバーグ
- 「ソフトウェアアーキテクチャ ソフトウェア開発のためのパターン体系」
- 「プロダクティブ・プログラマ-プログラマのための生産性向上策」
- 「効果的プログラミむ開発技法」
- 「実装パターン」ケント・ベック
- 「まつもとゆきひろコードの世界 スーパー・プログラマになる14の思考法」
- 「ソフトウェア品質知識体系ガイド -SQuBOK Guide- (第2版)」
- 「アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の真髄と匠の技」
- 「リファクタリング・ウェットウェア-達人プログラマーの思考法と学習法」
- 「ノンデザイナーズ・デザインブック」
- 「プロジェクト・マネージャーが知るべき97のこと」
- 「アート・オブ・アジャイルデベロップメント- 組織を成功に導くエクストリームプログラミング」
- 「オブジェクト指向入門第2版原則・コンセプト」
- 「ソフトウェアアーキテクチャーソフトウェア開発のためのパターン体系」
- 「アジャイルソフトウェア開発の奥義第2番オブジェクト指向開発の真髄と匠の技」
目次
- 0.1 プリンシプルのカテゴリ
- 1.1 プログラミングに銀の弾丸はない
- 1.2 コードは設計書である
- 1.3 コードは必ず変更される
- 2.1 KISS
- 2.2 DRY
- 2.3 YAGNI
- 2.4 PIE
- 2.5 SLAP
- 2.6 OCP
- 2.7 名前重要
- 3.1 プログラミングセオリー
- 3.2 【プログラミングセオリー 価値観】 コミュニケーション
- 3.3 【プログラミングセオリー 価値観】 シンプル
- 3.4 【プログラミングセオリー 価値観】 柔軟性
- 3.5 【プログラミングセオリー 原則】 結果の局所化
- 3.6 【プログラミングセオリー 原則】 繰り返しの最小化
- 3.7 【プログラミングセオリー 原則】 ロジックとデータの一体化
- 3.8 【プログラミングセオリー 原則】 対称性
- 3.9 【プログラミングセオリー 原則】 宣言型の表現
- 9.10 【プログラミングセオリー 原則】 変更頻度
- 9.11 アーキテクチャ根底技法
- 9.12 【アーキテクチャ根底技法】 抽象
- 9.13 【アーキテクチャ根底技法】 カプセル化
- 9.14 【アーキテクチャ根底技法】 情報隠蔽
- 9.15 【アーキテクチャ根底技法】 パッケージ化
- 3.16 【アーキテクチャ根底技法】 関心の分離
- 3.17 【アーキテクチャ根底技法】 充足性、完全性、プリミティブ性
- 3.18 【アーキテクチャ根底技法】 ポリシーと実装の分離
- 3.19 【アーキテクチャ根底技法】 インタフェースと実装の分離
- 3.20 【アーキテクチャ根底技法】 参照の一点性
- 3.21 【アーキテクチャ根底技法】 分割統治
- 3.22 アーキテクチャ非機能要件
- 3.23 変更容易性
- 3.24 相互運用性
- 3.25 効率性
- 3.26 信頼性
- 3.27 テスト容易性
- 3.28 再利用性
- 3.29 7つの設計原理 p117
- 3.30 単純原理
- 3.31 同型原理
- 3.32 対称原理
- 3.33 階層原理
- 3.34 線形原理
- 3.35 明証原理
- 3.36 安全原理
- 3.37 UNIX思想 p129
- 3.38 モジュール化の原則
- 3.39 明確性の原則
- 3.40 組み立て部品の原則
- 3.41 分離の原則
- 3.42 単純性の原動
- 3.43 倹約の原則
- 3.44 透明性の原理
- 3.45 安定性の原則
- 3.46 表現性の原則
- 3.47 驚き最小の原則
- 3.48 沈黙の原則
- 3.49 修復の原則
- 3.50 経済性の原則
- 3.51 生成の原則
- 3.52 最適化の原則
- 3.53 多様性の原則
- 3.54 拡張性の原則
- 3.55 UNIX哲学 p159
- 3.56 小は美なり
- 3.57 1つ1仕事
- 3.58 即効プロトタイプ
- 3.59 効率性より移植性
- 3.60 データはテキスト
- 3.61 レバレッジ・ソフトウェア
- 3.62 シェルスクリプト活用
- 3.63 対話インタフェース回避
- 3.64 フィルタ化
- 4.1 凝集度
- 4.2 結合度
- 4.3 直交性
- 4.4 可逆性
- 4.5 コードの臭い
- 4.6 技術的負債
- 5.1 プログラマの3大美徳
- 5.2 ボーイスカウトの規則
- 5.3 パフォーマンスチューニングの箴言
- 5.4 エゴレスプログラミング
- 5.5 1歩ずつ少しずつ
- 5.6 TMTOWTDI
- 6.1 曳光弾
- 6.2 契約による設計
- 6.3 防御的プログラミング
- 6.4 ドッグフーディング
- 6.5 ラバーダッキング
- 6.6 コンテキスト
- 7.1 ブルックスの法則
- 7.2 コンウェイの法則
- 7.3 割れた窓の法則
- 7.4 エントロピーの法則
- 7.5 80-10-10の法則
- 7.6 ジョシュアツリーの法則
- 7.7 セカンドシステム症候群
- 7.8 車輪の再発明
- 7.9 ヤクの毛刈り
感想
原理原則についてのHubになる本だった。
原理原則の網羅性をメインテーマにしているため、抽象度が高く、この本だけではあまり役に立たない印象だった。出典元をしっかり読んでおくことで、この本の価値が発揮されると思った。
「どういうこと?」「どうして?」「どうすれば?」のアプローチは非常にわかりやすい。自分も誰かに伝えるときはこのアプローチを参考にしていきたい。
お気に入り度
⭐️⭐️⭐️