7. 同じことを何度も書かない
次のような言葉があります。
繰り返しを避けよ
(Don't Repeat Yourself)
Andy Hunt, Dave Thomas The Pragmatic Programmer
これはDRY原則と呼ばれています。あなたのコードの中に、同じコードをいくつもコピペしたような箇所はありませんか?単に冗長なだけでなく、もし修正する場合、その全てを探して修正しなければならず、修正漏れがあればバグになります。複数の場所で使われるロジックをメソッドとしてまとめるなど、繰り返しを避ける工夫をしましょう。
csharp
// ❌ Bad: 同じロジックのコピペ
void OnEnemyDefeated(Enemy enemy)
{
int exp = enemy.Exp;
totalExp += exp;
Debug.Log($"{exp} EXPを獲得!");
if (totalExp >= nextLevelExp)
{
level++;
Debug.Log($"レベルアップ! Lv.{level}");
}
}
void OnQuestCompleted(Quest quest)
{
int exp = quest.RewardExp;
totalExp += exp;
Debug.Log($"{exp} EXPを獲得!"); // ← 上と全く同じ
if (totalExp >= nextLevelExp) // ← 上と全く同じ
{
level++;
Debug.Log($"レベルアップ! Lv.{level}");
}
}csharp
// ✅ Good: メソッドに切り出す
void OnEnemyDefeated(Enemy enemy)
{
GainExp(enemy.Exp);
}
void OnQuestCompleted(Quest quest)
{
GainExp(quest.RewardExp);
}
void GainExp(int amount)
{
totalExp += amount;
Debug.Log($"{amount} EXPを獲得!");
if (totalExp >= nextLevelExp)
{
level++;
Debug.Log($"レベルアップ! Lv.{level}");
}
}