💨

美しいコード

2023/04/11に公開

美しいコード

美しいコードとは、見た目だけでなく、読みやすく、保守しやすく、品質が高く、意図が明確なコードのことを指します。この記事では、美しいコードの書き方について、以下の5つのポイントを紹介します。

  1. シンプルであること
  2. コードの重複を避ける
  3. 適切なコメントを追加する
  4. エラー処理を適切に行う
  5. テスト可能であること

1. シンプルであること

以下の例は、シンプルで読みやすいコードです。

# 悪い例 
def calculate_average(numbers): total = 0 for i in range(len(numbers)): total += numbers[i] return total / len(numbers) 

# 良い例 
	def calculate_average(numbers): return sum(numbers) / len(numbers)

良い例の**calculate_average()関数は、シンプルでわかりやすい実装になっています。sum()**関数を使うことで、forループで合計を計算するよりも簡潔に書くことができます。

2. コードの重複を避ける

以下の例は、重複したコードを共通化する例です。

# 悪い例 
def calculate_area_of_triangle(base, height): return 0.5 * base * height defcalculate_area_of_rectangle(width, height): return width * height defcalculate_area_of_square(length): return length ** 2 

# 良い例 
defcalculate_area_of_shape(shape, **kwargs): if shape == "triangle": return 0.5 * kwargs["base"] * kwargs["height"] elif shape == "rectangle": return kwargs["width"] * kwargs["height"] elif shape == "square": return kwargs["length"] ** 2 else: raiseValueError("Invalid shape")

良い例の**calculate_area_of_shape()関数は、引数に渡されたshape**に応じて、面積を計算するロジックを実行します。これにより、重複したコードを共通化し、コードの見通しをよくしています。

3. 適切なコメントを追加する

以下の例は、適切なコメントを追加したコードの例です。

# 悪い例
def calculate_discount(price, discount_rate): 

# 割引額を計算 
discount_amount = price * discount_rate 
# 割引後の価格を計算 
discounted_price = price - discount_amount returndiscounted_price 

# 良い例 
def calculate_discount(price, discount_rate): 
# 割引額を計算
discount_amount = price * discount_rate 
# 割引後の価格を計算 
discounted_price = price - discount_amount 
# 割引後の価格を返す 
return discounted_price

良い例では、関数の目的が明確になるよう、適切なコメントを追加しています。関数が何を行っているか、何を返すかが明確になり、コードの読みやすさが向上します。

4. エラー処理を適切に行う

以下の例は、適切なエラーハンドリングがされたコードの例です。

# 悪い例 
def divide(a, b): return a / b 
# 良い例 
def divide(a, b): if b == 0: raiseValueError("Cannot divide by zero") return a / b

良い例の**divide()**関数では、0で割るという不正な計算を防ぐため、適切なエラーハンドリングを行っています。このようなエラーハンドリングを行うことで、プログラムの安全性を高めることができます。

5. テスト可能であること

以下の例は、テスト可能なコードを書く例です。

# 悪い例 
def calculate_fibonacci_sequence(n): if n == 0: return 0 elif n == 1: return 1else: return calculate_fibonacci_sequence(n - 1) + calculate_fibonacci_sequence(n - 2) 

# 良い例 
def calculate_fibonacci_sequence(n): if n < 0: raise ValueError("Invalid input")elif n == 0: return 0 elif n == 1: return 1 else: a, b = 0, 1 for _ in range(n - 1): a, b = b, a + b return b

良い例の**calculate_fibonacci_sequence()**関数では、再帰的な計算を行わず、ループ処理によってフィボナッチ数列を計算しています。このようなコードは、独立した関数であり、副作用がないため、テスト可能なコードと言えます。

まとめ

以上の例からも分かるように、美しいコードは、シンプルであり、重複がなく、コメントが適切で、エラーハンドリングが適切で、テスト可能なコードであると言えます。これらのポイントに注目しながらコードを書くことで、保守性の高い美しいコードを書くことができます。

Discussion