無料マンガ・ラノベなど、豊富なラインナップで200万冊以上配信中!
「ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために,あっちもこっちも書きなおす必要がある」「ちょっとした変更のはずが,本来はありえない場所にまで影響して,大幅なやり直しになってしまった」といったトラブルが起こるのは,ソフトウェアの設計に問題があるから。日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者であり,システム設計のベテランである著者が,コードの具体例を示しながら,良い設計のやり方と考え方を解説します。
※アプリの閲覧環境は最新バージョンのものです。
Posted by ブクログ
オススメされたので読んだ。
前半はデータとロジックを一緒に定義していこう(ドメインオブジェクトの定義)、
後半はシステム全体でどうやってドメインオブジェクトやその他の部分を作って行くのかという内容。
説明については前半はかなり具体的に、後半はアプリケーションよるのでやや抽象的な印象だった。
ぼんやり考えていたことを言葉に表してくれた感するし、
普段しない習慣だけど取り入れると良さそうな習慣もあった。
-------
以下、メモ・気になった点
- 値オブジェクトを作る
- コレクションもラップする
- 条件分岐は書かない
- elseは特に複文になるからだめ
- enum setを使って状態遷移図を作ろう
- やってみようとしたことあるけど上手くいかなかった。
- 今作ってるアプリが丁度複雑な状態遷移を持つので再度試してみたい
- データモデルに対するドメインモデルの考え方
- ドメインオブジェクトはデータと業務オブジェクトが一体何なっているクラス
- オブジェクト指向の本来の使い方
- ドメインオブジェクトを作って参照関係を整理した状態をドメインモデルと呼んでいる
- 業務のロジックがアプリケーション層からドメインモデルへ移る
- 業務フローで最初に発生するオブジェクトはその後で発生するオブジェクトを知らない。
- 全体を俯瞰する手段
- パッケージ図と業務フロー図
- 更新系のサービスでは使う前にデータが正しい状況にあるかどうかを事前にチェックする
- ドメインオブジェクトがテーブルのマッピングオブジェクトになるのは良くない。業務のロジックとデータの管理が関心の主なオブジェクトにデータベースの関心を持ってくるのは良くない。
- IDやグループを表すカテゴリはURIのパスパラメータに。
- クエリパラメータにすべきはオプショナルなパラメータ
Posted by ブクログ
実践的なオブジェクト指向プログラミングを学べる。
オブジェクト指向とはプログラムの整理整頓の技術である。
バグを埋め込みにくく、ソース変更した際の影響範囲を小さくする。
オブジェクト指向でのプログラミングは、手続き型と比較して時間がかかる。
中身が読みにくくぐちゃくちゃのプログラムも、
オブジェクト指向に従って一定の規律で整理されたプログラムも
使い手にとっては、「動く」ということに変わりない。
だけど、長期的に運用を継続していくにつれ、後者のメリットが大きくなっていく。
時間をかけてでも、オブジェクト指向でのプログラミングをしていきたい。
発注側に理解されない(見えない)部分なので、ツライですところがありますが。
Posted by ブクログ
オブジェクト指向プログラミングとドメイン駆動設計の考えを実践的なシステム設計に落とし込むやり方が書いてありました。
もともとオブジェクト指向プログラミングやドメイン駆動設計を勉強していたが、より具体的なイメージがついたなと思います。
ちょっと真似できないなと思う内容もありましたが、非常に参考になる内容も多かったです。
ただ、これからシステム設計を始める人が初めて読む本ではないなと思いました。
(外部設計を担当することになったから勉強したい、みたいな)
オブジェクト指向やドメイン駆動設計を軽くでも知っている人が、より実践的な知識、手法を知るための本だと思います。
※アプリの閲覧環境は最新バージョンのものです。
ビジネス・実用
ビジネス・実用