【プログラミング学習】現場で役立つシステム設計の原則〜変更を楽で安全にするオブジェクト指向の実践技法
記事更新日:2022-08-31
そもそも
設計って
なんだろう
設計って
なんだろう
「設計とは何か」が、とてもわかりやすい本でした
設計とは何か
プログラミングでの「設計」の意味とは
- どこにロジックを書くかを考えること
- どこにロジックがあるかをわかりやすくすること
つまり。コードを整理整頓すること
設計は、「整理整頓」・・・
どこにロジックを書くか
それを整理するのが設計
それを整理するのが設計
どこに置くかといえば、クラス(オブジェクト)の中
ロジック置き場を作るためのオブジェクト指向
オブジェクト指向とは
ロジックがどこに書いてあるかを見つけやすくするために、業務をクラス(オブジェクト)で表現する設計手法
つまり。業務上のルールをそのまま「クラス(オブジェクト)」にする
設計は、業務をクラスにする・・・
対象業務(=ドメイン)を
オブジェクトにすることを
「ドメインオブジェクト」と呼ぶ
オブジェクトにすることを
「ドメインオブジェクト」と呼ぶ
どんなクラスにするかが重要
目指すは、小さなクラス
『「短いメソッド」の入った「小さなクラス」』の集まりが、クラス
↓たとえば・・・
- 値オブジェクト
- 値を扱うクラス
- 例)Period(期間:開始日+終了日)
- コレクションオブジェクト
- コレクションを1つだけ持つクラス
メソッドとは、ロジック置き場のこと
小さな置き場がたくさんある、小さなクラスを作る
設計は、小さなロジック置き場を作る・・・
どのクラスに置くかも重要
ロジック置き場は、データを保持するクラスの中
データをgetするときは「計算後のデータ」をgetする。
getしてから、別の場所で計算をさせない
データのある場所が、ロジックのある場所
設計は、データとロジックを分離しない・・・
どんなふうにロジックを置くか
「小さくて短い」置き場
データ保持クラスにロジックを置く
「小さくて短い」置き場
データ保持クラスにロジックを置く
そのためには、業務の分析が欠かせない
分析と設計は同時
- 分析
- 人間のやりたいことを正しく理解すること
- 業務内容のヒアリング
- 設計
- 人間のやりたいことの実現方法を考えること
- クラスの発見
「クラスの発見」とは、「データ&ロジックのまとまり」を見つけること
設計は、ヒアリングしながらクラスを発見する・・・
クラスの発見は、かなり難しい
良い設計とは
「良い・悪い」は単純に、「目的を果たせているか・いないか」
設計の目的:修正を楽で安全にすること
コード修正のときにラクだと感じたら、良い設計
設計は、修正を楽で安全にする・・・
まとめ:オブジェクト指向で設計をするとは
オブジェクト指向で設計すると、こうなる
「プログラムの構造」と「業務の構造」が一致する
ソースコードで「業務マニュアル」を作るような感覚
- 設計とは、コードを整理整頓すること
- オブジェクト指向は、業務ルールをそのままクラスにする
- 小さなロジック置き場を作る
- データを保持するクラスに、ロジックも置く
- ヒアリングしながらクラスを発見する
- 修正がラクだと感じたら良い設計
設計のイメージがわいてきた
オブジェクト指向についてはこちらも
2022-08-31
編集後記:
この記事の内容がベストではないかもしれません。