長いので章ごとにしてます。
3 クラス設計 ―すべてにつながる設計の基盤―
- この本全体の基本になっている章だそう。ちょくちょく見直せるようにしとこ。
3.1 クラス単体で正常に動作するよう設計する
- 複雑な初期設定がいらないようにする…。
- このあたり、結構しくじっているような気がする…。ちょっと気をつけます…。
- メソッドは必ずインスタンス変数を使う…。
- reekで指摘される気がします。
- 面倒くさいことをしなくても利用できるようにしとく…。利用者の視点になれば、たしかに…。
3.2 成熟したクラスへ成長させる設計術
- コンストラクタで値を入れるようにするのは、やってます!
- Railsでモデルのバリデーションを書くのが面倒だと思ってました。
- 今はたくさんの不具合にヤラれて、必ず書くようにしています。
- 設計が足りてなかったってことかも。
- 機能をざっくり作ったあとで、見直しながら整えるときに埋めるようにしてます。
- 今はたくさんの不具合にヤラれて、必ず書くようにしています。
- ガード節、よく使うけど、そんな名前があったとは…。
- オペレータの実装、いいですよね。
- railsで金額を扱うときにこういう実装したいと思ったのですが…chatgptに聞いたら、money-railsを使えと。
- 自分で実装するには?と聞くと、勉強になりました…。
- 他のデータクラスでも勝てる…!
- 不変化…!
- たしかに使いたいと思うときがありますね…。
- Read onlyにしたいときとそうでないときがあるような…。
- そういえば、finalをちゃんと使える言語を使ったことがない…。
- Dart/Flutterで体験するか…!
- たしかに使いたいと思うときがありますね…。
- MoneyはMoneyとしか足せないように…。
- 大変だけど、効果ある…かも?(やってみたことないので気になる…)
3.3 悪魔退治の効果を検証する
- 「悪魔」「設計パターン」でなんかゲームできそうですね…!
- …って、これかw
3.4 プログラム構造の問題解決に役立つ設計パターン
- 完全コンストラクタと値オブジェクトがもっとも基本形
- OOをなんか使いこなせてない感があったのは、ここから来てたのかも?
- …名前も知らずに使っていたというか…。
- もうちょっとやっていこう…!
- OOをなんか使いこなせてない感があったのは、ここから来てたのかも?
Column 種類の異なる言語と本書のノウハウ
- JavaのMoneyクラスをRubyやJavascriptで書き直してる…!
- 設計思想は言語によらないですからね…。
- 実現方法が違ったりするでしょうけど。