1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

いいコード悪いコードまとめ2章設計の初歩

Last updated at Posted at 2023-07-15

省略せずに意図が伝わる名前を設計しているか

player #pとか書いちゃうと自分は分かるかもしないが、他の人は分からない。
damage #dも同様

状況によってはplayerやdamageだけでは分からないので、読み手が理解しやすい配慮をする。

変数を使い回さない、目的ごとの変数を用意しているか

以下のようにdamageという変数を使い回して、再代入するのはNG

damage = player_attack
damage = damage - something

意味のあるまとまりでメソッド化しているか

以下のような記述が1つのメソッドに混在していると可読性や保守性においてよろしくない。
したがって、意味のあるまとまりでメソッド化することが重要

プレイヤーの攻撃力を合算する
敵の防御力を合算する
ダメージ量を評価する

関係しあうデータとロジックをクラスにまとめているか

いろいろなところにメソッドを書いていると可読性が落ちてしまう。そのため、関連し合うデータやロジックは1つのクラスにまとめること。

また、クラス化するときに重要なのはコンストラクターで初期化するときに不正な値が紛れ込まないように条件でエラーを投げたりする仕掛けを持つこと。

例えば最小値が1の場合、-1などが紛れ込むとバグの原因になる。したがって、以下のような記述を書いておくとよい。

MIN_VALUE = 1.freeze
if value < MIN_VALUE
  raise_error('this number is wrong.')
end
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?