ken1flanのブログ

自己紹介・最近やってることなどを書くつもりです。

良いコード/悪いコードで学ぶ設計入門 13章のメモ

gihyo.jp

良いコード/悪いコードで学ぶ設計入門読書メモです。

長いので章ごとにしてます。

13章 モデリング ークラス設計の土台ー

13.1 邪悪な構造に陥りがちなUserクラス

  • うわあ……ありがちw いいサンプル!

13.2 モデリングの考え方とあるべき構造

  • 突然説明パートになっちゃいました?

13.2.1 システムとは何か

  • ですね!

13.2.2 システム構造とモデリング

  • 「特定の目的達成のために最低限考慮が必要な要素を備えたものがモデル」
    • どうやって構成をまとめた文書をメンテナンスし続けたらよさそう…?

13.2.3 ソフトウェア設計におけるモデリング

  • なんでも書いちゃうと目的がぼやける、というのはわかります。
    • 絞って書いたほうが確かに目的がわかりやすいです。
  • メンテナンスするんでしょうか…?

13.3 良くないモデルの問題点と解決方法

  • 辛辣ですねぇ…。
  • 「社会活動や目的の理解が必須」
    • わかります!…が、辛辣ですね。

13.3.1 Userとシステムの関係

  • 「システム内にユーザがいない」なるほど、なんか書きにくい気持ちもしていました。

13.3.2 仮想世界を表現する情報システム

  • まぁ…せやな。

13.3.3 目的別にモデリングする

  • 実世界とシステム上のユーザが1:多って何事かと思いました。
    • 目的によっていろんなモデルに分かれるよ、ということですね。

13.3.4 モデルはモノではなく目的達成手段

  • まぁ、わかりますが…。

13.3.5 単一責任とは単一目的

  • いい言い換えかも。
  • 「共通利用可能な、汎用的な部品」…そんなことを言ってるのもあったんでしたっけ……。

13.3.6 モデルの見直し方

  • ひとにシステムを説明するときには確かに全部は書きませんが…。

13.3.7 モデルと実装は相互にフィードバックする

  • ううむ…じゃあ、モデルは今後どうやっていくの…?
  • 図13.10 … ああ、そうか、値オブジェクトがいっぱいあるからですかね…。

Column クソコード動画「Userクラス」

  • プロジェクト最初期からモデリングに心を砕けって…ムリでしょ…。どんな恵まれたメンバーなんですか…と思ってしまいました。
  • 今自分がその場になったら、気にしてやりますが…なかなかそういうこともないもので…。

13.4 機能性を左右するモデリング

13.4.1 裏に隠れた真の目的を見破る

  • 「法的な顔」
    • 最初からわかってれば!は同意です。
    • ドメイン知識も乏しい中で、どうやって最初から引き出せるのか、方法を知りたいです…。

13.3.2 機能性をイノベートする「深いモデル」

  • 目的によって分類の仕方が変わるのはたしかに…。
    • 自然にやってると思いますが…。
    • スーパーのアプリとかやってたら、魚類の前に青魚、白身、赤身みたいに入れるかもしれないし。
  • 深いモデル…うーん、プロダクトチーム全体で日々の議論が必要な感じが…。
  • 会社でちょくちょく議論するときに、情報の構造をホワイトボードに描くようにしてますが、たしかに効果を感じてます。