長いので章ごとにしてます。
5 低凝集 ―バラバラになったモノたち―
5.1 staticメソッドの誤用
- あー…こりゃ書いちゃいそう…。
5.1.1 staticメソッドはインスタンス変数を変えない
5.1.2 インスタンス変数を使う構造につくり変える
5.1.3 インスタンスメソッドのフリしたstaticメソッドに注意
- こらー!って感じですね><
- RubyだとRubocopが指摘してくれます。
- staticをつけても動くのか?その確認方法、いいですねw
5.1.4 どうしてstaticメソッドが使われてしまうのか
- 手続き型…なるほど。
- サンプルはタダの足し算でしたが…もっと複雑な「手続き」があるときにこそ現れそう。
5.1.5 どういうときにstaticメソッドを使えばいいのか
- わかる気がします。
5.2 初期化ロジックの分散
- まぁまぁいいんじゃないの?と確かに思いました。
5.2.1 privateコンストラクタ+ファクトリメソッドで目的別初期化
- これはなるほどです。あちこちでやってしまいそう。
- Railsで同じモデルを扱うけど、場面で変更する内容を制御したいときに使っているフォームオブジェクトも同じような気持ちかも。
- 用途別のファクトリーメソッドは確かに有効かも。
5.2.2 生成ロジックが増え過ぎたらファクトリクラスを検討すること
- 増えすぎて見通しが悪くなったら…。せやなあ。
5.3 共通処理クラス(Common・Util)
5.3.1 さまざまなロジックが雑多に置かれがち
- 実によく見ます…。
- 今うちにもありますし。
5.3.2 オブジェクト指向設計の基本に立ち返ろう
- 中をちゃんと読み直せば、本来置くべきところがみつかることも多そう。
5.3.3 横断的関心事
- 🦀
- 他、なにか思いつかないかな…?
5.4 結果を返すために引数を使わないこと
- この本、ゲームプログラミングをやってるとわかりみがあるのかな…?
- 5.16のコードだと…意図が読み取れない><
- そこはsetというメソッド名がそもそも問題ありそう…。
- ここのサンプルコード、あー書いちゃいそう感がないので、実感が…
Column C#のoutキーワード
- 5.20「完全回復」魔法の実装、こんなふうには書かないような…。
- 渡すなら引数は魔法の対象者の「キャラクター」じゃないかな?
- ヒットポイント・マジックポイントの最大値、絶対わかんないじゃん?
- 5.21 なら確かによさそうです。
5.5 多すぎる引数
- 5.23…なりがちかなぁ…こんなふうに書きたくなる気持ちが想像つかない…。
- あやうい実装だという説には同意しますけども…。
- でも…わざわざ書くということは、やっぱり見かけるってことですよね…。
5.5.1 プリミティブ型執着
- あちこちにコードが散らばってしまうのはわかります…。
- Railsでどう書いたものか…?
- techracho.bpsinc.jp
- techracho.bpsinc.jp
- buildersbox.corp-sansan.com
- 金額に関してはモデルのconcernでわりときれいに書けそうだったけど…
5.5.2 意味のある単位ごとにクラス化する
- 魔法力…数値っぽいので、回復/消費はオペレータが使えるとうれしい気がする…。
- Javaでは結構議論があるんですね…。
- https://blogs.oracle.com/otnjp/post/is-it-time-for-overloading-in-java-ja
- 数学っぽく扱えるほうがいいのか、そうでないのか…。確かに悩ましいかも。
- Javaでは結構議論があるんですね…。
- 意味のある単位でクラス化は同意…!
5.6 メソッドチェイン
- デメテルの法則…。あんまり深くのものを直接扱うな…はわかる…。
5.6.1 尋ねるな、命じろ
- これ、めっちゃ大事だ…
- Railsだとこの例がわかりやすかったです。
- Rubyのリファクタリング:「聞くな、言え」の法則
- あー…やっちゃうなー…