長いので章ごとにしてます。
7 コレクション ―ネストを解消する構造化技法―
7.1 わざわざ自前でコレクション処理を実装してしまう
- ちょくちょく名前で検索するコードがサンプルにありますが…国際化とか考えたら絶対やらない気がするんですが…見かけるコードなんですかね…。(リスト7.1、7.2)
- クソリプだったかも。例としてパッと読めるからですかね…。
- ただ、ちょっと勘違いされそうで、ヤダなぁ…。
Column 車輪の再発明
- 一般的にありそうだな―みたいなのは最初に標準ライブラリを探しましょ、みたいな感じですかね…。
- 標準ライブラリ以外は…選定にセンスがいるのも…。
- 「一考」より「一興」のような?
- 「一考」だと、すぐにやらずに立ち止まってもう一度考えちゃってるというか…。
- 「一興」はちょっとした面白みとかですし。
- それとも「一考の価値があります」かなぁ…。
- 違和感が…。
7.2 ループ処理中の条件分岐ネスト
- こんなんベタに書かなくないですか…?(リスト7.3)
- 仕様の時点でスパゲッティです…。
- うーん…まずはループの中をメソッドにまとめるところからではないでしょうか…?
- 早期continueの例にしたいだけですかねぇ…。
7.2.1 早期continueで条件分岐のネストを解消する
- それはそうと、これもサッサとcontinueすると構造がスッキリする、というのは納得です。
7.2.2 早期breakもネスト解消に役立つ
- ネストを深くしたくない気持ちを持って、構造を見直すと割とすっきりしますよね。
7.3 低凝集なコレクション処理
- んー…membersはFieldManagerの属性にしとけば…とか余計なことを思ってしまいます><(リスト7.8)
- ↑などということを思いながら読んできましたが…なんとなくこういった処理が散らばっていく感じはすごくします。(リスト7.8〜7.10)
7.3.1 コレクション処理をカプセル化する
- どういうときに副作用があるか、例を書いてくれるとうれしいかも。
- 場合によってはやりすぎって事もあるのでは…?
7.3.2 外部へ渡す場合はコレクションを変更できなくする
- 不変にして渡さないときの恐れはわかります…。ミスしにくくなりそうです。