Tips

今日の開発Tips(2025-06-24)

可読性と保守性を向上させるために、複雑な条件分岐を改善する方法を紹介します。ネストされた`if-else`文は理解しにくく、バグの温床になりがちです。本Tipsでは、ガード句や早期リターン、ポリモーフィズムといったテクニックを用いて、条件分岐を簡潔で分かりやすいコードに書き換える方法を解説します。これにより、コードの可読性が向上し、保守作業も容易になります。

複雑な条件分岐の改善

ネストしたif-else文はコードの可読性を著しく低下させ、バグの発見を困難にします。これを改善するために、ガード句、早期リターン、ポリモーフィズムといったテクニックを活用しましょう。

ガード句と早期リターン:

ガード句とは、条件式がfalseの場合に早期に処理を返すことで、ネストを回避する手法です。

def calculate_price(quantity, discount_rate, is_vip):
  if quantity <= 0:
    return 0  # ガード句: 数量が0以下の場合は0を返す

  if discount_rate < 0 or discount_rate > 1:
    return 0 # ガード句:割引率が不正な場合は0を返す

  price = quantity * 100
  if is_vip:
    price *= (1 - discount_rate)
  return price

ポリモーフィズム:

複数の条件分岐をクラスやメソッドに分割することで、コードをモジュール化し、可読性を高めることができます。

class PriceCalculator:
  def calculate(self, quantity, discount_rate):
    raise NotImplementedError

class NormalPriceCalculator(PriceCalculator):
  def calculate(self, quantity, discount_rate):
    return quantity * 100

class VIPPriceCalculator(PriceCalculator):
  def calculate(self, quantity, discount_rate):
    return quantity * 100 * (1 - discount_rate)

# 使用例
calculator = VIPPriceCalculator()
price = calculator.calculate(10, 0.1)

注意点:

  • ガード句や早期リターンは、条件式が単純な場合に特に効果的です。
  • ポリモーフィズムは、条件分岐が複雑で、複数のアルゴリズムを必要とする場合に有効です。
  • 過剰な適用はコードの複雑さを増す可能性があるため、適切なバランスが重要です。

おすすめポイント:

  • コードの可読性が向上し、保守性が容易になります。
  • バグの発生率を低減できます。
  • コードの再利用性を高めることができます。