見出し画像

書記の読書記録#22「オブジェクト指向でなぜつくるのか」

平沢章「オブジェクト指向でなぜつくるのか」のレビューと読書記録。


レビュー

まさに表題通り,オブジェクト指向で「なぜ」つくるのかについて書かれた本。オブジェクト指向という用語は,プログラミングに触れたばかりの人でも耳にすることと思う。一方でなぜそれをつかうのか,設定するのは容易ではない。

ポイントは,オブジェクト指向には,抽象的な「汎用の整理術」と,具体的な「プログラミング技術」の2つの側面があること。この辺を意識するだけでも見通しは良くなると思う,本書はその役割を果たしている点で推奨できる。

本書では,まずオブジェクト指向の世間での印象についてから始まり,オブジェクト指向の概念が説明される。最後に,関数型言語の特徴について解説している。


読書記録

# 1 p17〜121
・歴史:機械語→アセンブリ言語→高級言語→構造化言語(構造化プログラミング,GOTO文の廃止,基本三構造)・サブルーチンの独立性を高める:ローカル変数,引数の値渡し・課題:グローバル変数,貧弱な再使用・OOPの仕組み:クラス,ポリモーフィズム,継承・クラスの効能:サブルーチンと変数をまとめる,他のクラスから隠す,1つのクラスからインスタンスをたくさん作る・インスタンス変数:長持ちするローカル変数,仲間内だけのグローバル変数・ポリモーフィズム:共通メインルーチンを作る(呼び出す側を一本化)・継承:クラス定義の重複を排除・クラスを型として使える・パッケージ:クラスをまとめる・例外・ガベージコレクション:不要インスタンスを削除する


# 2 p125〜199
・コンパイラ方式,インタプリタ方式,中間コード方式・マルチスレッド環境・メモリ領域:静的,ヒープ,スタック・コード情報は1クラスに1つだけロード・ポインタの格納・メソッドテーブル・孤立したインスタンスをガベージコレクタが処分・クラスライブラリ:OOPの仕組みを利用・フレームワーク:ハリウッドの原則・コンポーネント・デザインパターン:GoF・上流工程への応用:集合論,役割分担・汎用の整理術,プログラミング技術


# 3 p201〜276
・UMLの13種類のダイアグラム・プログラム構造や動作の表現・クラス図,シーケンス図,コミュニケーション図・汎用の整理術の成果物・非オブジェクト指向の表現:ユースケース図,アクティビティ図,ステートマシン図・自然言語とコンピュータ用言語の欠点を補う・業務分析,要求定義,設計・モデリング:ビジネスアプリケーション,組み込みソフトウェア・保守に強く再利用しやすいソフトウェア:重複の排除,部品の独立性を高める,依存関係を循環させない・凝縮度を強く,結合度を弱く


# 4(最終回)p277〜359
・開発プロセス:ウォーターフォール型,反復型(RUP,XP)・アジャイル開発のプラクティス:テスト駆動開発,リファクタリング,継続的インテグレーション・オブジェクト指向の次の技術:アスペクト指向,エージェント指向,SOAなど・関数型言語の特徴:関数(引数と戻り値を必ず持つ)でプログラムを組み上げる,すべての式が値を返す(宣言的),関数を値として扱える,関数と引数の柔軟な組み合わせ(部分適用,カリー化,関数の合成),副作用を起こさない(参照性評価,遅延評価),パターンマッチと再帰によるループ処理,型推論と多相性


本記事のもくじはこちら:


学習に必要な本を買います。一覧→ https://www.amazon.co.jp/hz/wishlist/ls/1XI8RCAQIKR94?ref_=wl_share