”DRY原則”って何?これはコードの重複を避ける考え方!

プログラミング
スポンサーリンク

今回はDRY原則について紹介していきます。

他の原則、法則についてはこちらのページから!
プログラミングの原則とは?知っておくべき原則5選!
スポンサーリンク

DRY原則とは?

DRY原則は、「同じコードやロジックを繰り返さない」という考え方です。これにより、コードの再利用性が高まり、保守性が向上します。具体的には、同じ処理を複数の場所で行う場合、それを一つの関数やメソッドにまとめて呼び出すようにします。

DRY原則のメリット

  1. コードの簡潔化: 繰り返しを避けることで、コードが短くなり、読みやすくなります。
  2. バグの減少: 同じロジックを一箇所にまとめることで、バグの発生箇所が減り、修正も容易になります。
  3. メンテナンスの容易さ: 変更が必要な場合、一箇所を修正するだけで済むため、メンテナンスが簡単になります。
  4. 再利用性の向上: 共通の処理を関数やモジュールとしてまとめることで、他のプロジェクトや部分でも再利用しやすくなります。

DRY原則の実践方法

  1. 関数やメソッドの活用: 同じ処理を行うコードを関数やメソッドにまとめて、必要な場所で呼び出します。
  2. テンプレートの使用: HTMLやメールのテンプレートなど、繰り返し使用する部分をテンプレート化して管理します。
  3. モジュール化: 共通の機能をモジュールとして分離し、必要な場所でインポートして使用します。
  4. データベースの正規化: データベース設計においても、同じデータを複数の場所に保存しないように正規化を行います。

具体例

例えば、ユーザーの入力を検証するコードが複数の場所にある場合、それを一つの関数にまとめると良いでしょう。

def validate_input(input_data):
    if not input_data:
        return False
    # その他の検証ロジック
    return True

# 検証が必要な場所で関数を呼び出す
if validate_input(user_input):
    # 入力が有効な場合の処理

このようにすることで、検証ロジックを一箇所にまとめ、変更が必要な場合も簡単に対応できます。

別の例で紹介します。

# 重複したコード
print("ユーザーの名前を入力してください:")
name = input()
print("こんにちは、" + name + "さん!")

print("ユーザーの年齢を入力してください:")
age = input()
print("あなたは" + age + "歳ですね。")

このコードは、ユーザーの入力を求める部分が重複しています。これをDRY原則に従ってリファクタリングすると、以下のようになります。

def get_user_input(prompt):
    print(prompt)
    return input()

name = get_user_input("ユーザーの名前を入力してください:")
print("こんにちは、" + name + "さん!")

age = get_user_input("ユーザーの年齢を入力してください:")
print("あなたは" + age + "歳ですね。")

DRY原則を意識して共通の処理を関数にまとめることで、より効率的で保守性の高いコードを書くことができます。

DRYと KISSの違いは?

DRY (Don’t Repeat Yourself) と KISS (Keep It Simple, Stupid) は、どちらもプログラミングにおける重要な原則ですが、それぞれ異なる側面に焦点を当てています。以下にその違いを詳しく説明します。

・KISS原則についてはこちら

DRY (Don’t Repeat Yourself)

目的: コードの重複を避けること。

  • 詳細: 同じコードやロジックを繰り返さないようにすることで、保守性を向上させ、バグの発生を減らします。
  • 実践方法: 関数やメソッド、クラス、モジュールを使って共通の処理をまとめる。

KISS (Keep It Simple, Stupid)

目的: コードをシンプルに保つこと。

  • 詳細: コードをできるだけ簡潔にし、複雑さを避けることで、理解しやすく、バグが発生しにくいコードを作成します。
  • 実践方法: 不必要な複雑さを避け、シンプルな設計と実装を心がける。

:

# 複雑なコードをシンプルにする
def calculate_area(radius):
    return 3.14 * radius * radius

# シンプルな関数を使って面積を計算
area = calculate_area(5)
print("面積は:", area)

違いのまとめ

  • DRY はコードの重複を避けることに焦点を当てており、同じロジックを一箇所にまとめることで保守性を高めます。
  • KISS はコードをシンプルに保つことに焦点を当てており、複雑さを避けることで理解しやすく、バグが少ないコードを目指します。

どちらの原則も、良いコードを書くために重要ですが、適用する場面や目的が異なります。どちらか一方だけでなく、両方をバランスよく取り入れることが大切です。

まとめ

DRY原則は、コードの重複を避けることに焦点を当てており、同じロジックを一箇所にまとめることでコードの再利用性が高まり、保守性を高めます。

・他原則についても知りたい方はこちら

スポンサーリンク

コメント

タイトルとURLをコピーしました