定数による改善

定数を使ってコードの可読性と保守性を向上させたいと思います。

定数を使うメリット

三目並べコードに定数を入れていく前に、メリットを考えてみます。

修正が楽になる

例えば以下のようなメールのメッセージを生成するコードがあったとします

def create_mail_text_a name
 return <<~EOS
   #{name}
   
   ご登録ありがとうございました。
   
   ...
   
   以上、よろしくお願いします。
   
   ---------------------
   社名: スーパモンキー株式会社
   サイトURL: https://~
   住所: xxx-ooo-xxx
   電話番号: 000-0000-0000
   ---------------------
 EOS 
end

def create_mail_text_b name
 return <<~EOS
   #{name}
   
   本日はイベントにご参加いただきありがとうございました!
   
   ...
   
   以上、よろしくお願いします。
   
   ---------------------
   社名: スーパモンキー株式会社
   サイトURL: https://~
   住所: xxx-ooo-xxx
   電話番号: 000-0000-0000
   ---------------------
 EOS 
end

def create_mail_text_c
 return <<~EOS
   本日のイベント情報です!
   
   ...
   
   以上、よろしくお願いします。
   
   ---------------------
   社名: スーパモンキー株式会社
   サイトURL: https://~
   住所: xxx-ooo-xxx
   電話番号: 000-0000-0000
   ---------------------
 EOS
end

...(この後にd, e, f, gと続いていく)

この時に不運な事にサイトURLが変わってしまったとします。

すると、全てのメール署名部分を書き直すという非常に面倒な作業が発生します。

例の場合だと1 枚のファイルなので簡単に書き直せるかもしれませんが、これが

大量のファイルに散らばっていると地獄を見ることになります(実際経験しました)

大量に修正するのが嫌なので、定数を定義して楽したいと思います。

SIGNATUREを変えるだけで修正内容を全て適応できるので、楽できるわけです。

可読性が向上する

例えば、以下のようなコードがあったとします。

これだと、なんのこっちゃわかりません。

staff_idの123と113だけ特別な権限が与えられているのかなーくらいです。

定数にしてみます。

田中と山本という社員が営業チームのリーダーでダウンロードが出来る

それ以外の社員は出来ない、ということを定数を使って表現しました

修正前よりは可読性が上がりました。

課題コーナー

現状のコードに定数を適用させる

三目並べコードに定数を適用する

以下の数字に定数を適応していきたいと思います。

  • プレイヤー1を表す数値の1

  • プレイヤー2を表す数値の2

  • 空きマスを表す数値の0

今まで、数値を使っていたメソッドの処理を定数に置き換えてみます。

各メソッドの可読性が上がったのではないでしょうか。

最終更新