コードを読みやすくする為のコツを書き溜めてます。
説明変数
説明変数とは、意図を理解し辛い処理に対して、定義を与えた変数のことです。
読みにくい例
ここでは例として、2人プレイの対戦ゲームでスコアを競って何か処理をしているっぽいサンプルコードを書きました。
public class BattleGame : MonoBehaviour
{
int playerScore = 500;
int enemyScore = 200;
void Update()
{
if (playerScore > enemyScore)
{
// 何らかの処理
}
else if (playerScore == enemyScore)
{
// 何らかの処理
}
else if (playerScore < enemyScore)
{
// 何らかの処理
}
}
}
スコアを比較していることは、すんなりと理解できると思います。
仮に分岐の中の処理が簡単なものであれば、比較条件の意図も推測できそうですが、このサンプルではあえて理解できてない時の視点でなにも書いてません。
読みやすい例
分岐の条件そのものに変数で名前を定義してあげると、分岐の中の処理から意図を推測する手間が省けます。
public class BattleGame : MonoBehaviour
{
int playerScore = 500;
int enemyScore = 200;
bool playerWin = playerScore > enemyScore;
bool enemyWin = playerScore < enemyScore;
bool draw = playerScore == enemyScore;
void Update()
{
if (playerWin) // プレイヤーが勝った時の処理だ!
{
// 何らかの処理
}
else if (enemyWin) // 敵が勝った時の処理だ!
{
// 何らかの処理
}
else if (draw) // 引き分けの時の処理だ!
{
// 何らかの処理
}
}
}
サンプルコードは単純な条件で分岐しているので、かえって行数が増えてますが、IF文の条件が複雑だったり長い場合に、特に効果を発揮します。
筆者はワーキングメモリが強くなく、できるだけ視界に入ってくる情報はシンプルだと嬉しいタイプです。
こっちの書き方のほうが好きだなと思いました。
まあでも、逆に変な変数名をつけると、変数名に嘘つかれることもあるんだろうな。
気をつけよう。
コメント