長いので章ごとにしてます。
2 設計の初歩
2.1 省略せずに意図が伝わる名前を設計する
- これもひどい…。
- 一文字+数字とかありえない…。
- この処理、どんなところに置いてあるんだろう…?
- 普通考えたら、プレイヤー本体の攻撃力と武器の攻撃力を合算したものを取得するメソッドがプレイヤークラスにあるのでは…。
- こういう処理、絶対テストないので、リファクタリングがかなり困難…。
- 初手で変数名をわかりやすく変えるのは、コードを読んで理解する上でもよさそう。
2.2 変数を使い回さない,目的ごとの変数を用意する
- 再代入、ダメですね…。
- 分けたらグッとわかりやすくなりました。
- そして、この章の意図がわかってきました…。
- 説明変数かな。
2.3 ベタ書きせず,意味のあるまとまりでメソッド化
- 説明変数からメソッドの抽出…!
- 命名に違和感が…。Javaの文化でしょうか?
- Rubyだと
total_player_attack_power
みたいにしそう。- 副作用のない値を返してくるだけのメソッドは…変数やプロパティと区別する必要がないし…。
- よく見たら、引数を取るんですね…。そしたらまだ動詞でよいと思いました、すみません><
- Rubyだと
保守しやすいよう、変更しやすいよう、変数の名前やロジックに工夫をこらすことが設計
- いいこといってる…!