ken1flanのブログ

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

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

gihyo.jp

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

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

2 設計の初歩

2.1 省略せずに意図が伝わる名前を設計する

  • これもひどい…。
  • 一文字+数字とかありえない…。
  • この処理、どんなところに置いてあるんだろう…?
    • 普通考えたら、プレイヤー本体の攻撃力と武器の攻撃力を合算したものを取得するメソッドがプレイヤークラスにあるのでは…。
  • こういう処理、絶対テストないので、リファクタリングがかなり困難…。
  • 初手で変数名をわかりやすく変えるのは、コードを読んで理解する上でもよさそう。

2.2 変数を使い回さない,目的ごとの変数を用意する

  • 再代入、ダメですね…。
  • 分けたらグッとわかりやすくなりました。
    • そして、この章の意図がわかってきました…。
  • 説明変数かな。

2.3 ベタ書きせず,意味のあるまとまりでメソッド化

  • 説明変数からメソッドの抽出…!
  • 命名に違和感が…。Javaの文化でしょうか?
    • Rubyだとtotal_player_attack_powerみたいにしそう。
      • 副作用のない値を返してくるだけのメソッドは…変数やプロパティと区別する必要がないし…。
    • よく見たら、引数を取るんですね…。そしたらまだ動詞でよいと思いました、すみません><
  • 保守しやすいよう、変更しやすいよう、変数の名前やロジックに工夫をこらすことが設計
    • いいこといってる…!

2.4 関係し合うデータとロジックをクラスにまとめる

  • …納得!
  • リファクタリングは…焦りすぎると壊してしまうので、一歩一歩が正解ですね…。
    • 2.1から2.4のコードにいきなり変えられたプルリクエストのレビューを頼まれたら、泣いてしまいそう。