📛

変数などの命名の長さを決める2つのポイント

2024/10/10に公開

はじめに

変数や関数の命名の長さっていつも悩みませんか?長すぎても短すぎてもコードが読みづらくなり、コードレビューなどで揉めてしまうこともありますよね。この記事ではその変数名の長さを決める2つの強力なポイントについて紹介します。

変数名を付けるときの2つのポイント

変数名を付けるときに気をつけたい2つのポイントがあります:

  1. その変数がどこで使われるか(使用範囲)
  2. その変数が表す内容がどれくらい一般的か(一般性)

これらのポイントについて、わかりやすく説明していきます。

1. 変数の使用範囲によって変わる名前

変数が使われる範囲(プログラマーは「スコープ」と呼びます)によって、適切な名前の長さが変わります。

狭い範囲で使う変数

短い処理の中だけで使う変数には、短い名前をつけても大丈夫です。

例:

# 1から10まで数を数えるだけの簡単な処理
for i in range(10):
    print(i)

# リストの要素を2倍にする
numbers = [1, 2, 3, 4, 5]
doubled = [n * 2 for n in numbers]

# 簡単な計算
def add(a, b):
    return a + b

これらの例では、inab といった短い名前で十分です。これらの変数は、それぞれの小さな範囲内でしか使われないからです。

広い範囲で使う変数

プログラム全体や大きな部分で使う変数には、より詳しい名前をつけましょう。

例:

# ユーザーの情報を扱うクラス
class UserInfo:
    def __init__(self, user_id, username):
        self.user_id = user_id
        self.username = username

# アプリケーション全体で使う設定
MAX_LOGIN_ATTEMPTS = 3
DEFAULT_TIMEZONE = "UTC"

# データベース接続情報
DATABASE_HOST = "localhost"
DATABASE_PORT = 5432
DATABASE_NAME = "myapp_db"

これらの変数は広い範囲で使われるので、その内容がはっきりわかる詳しい名前をつけています。

2. 変数の内容の一般性

変数が表す内容が一般的なものか、それとも特別なものかによっても、名前の付け方が変わります。

一般的な内容の変数

よく使われる一般的な概念には、短くてもわかりやすい名前を使えます。

例:

def calculate_total(prices):
    total = sum(prices)
    return total

def get_average(numbers):
    count = len(numbers)
    total = sum(numbers)
    average = total / count
    return average

# リストの操作
items = ["apple", "banana", "cherry"]
first_item = items[0]

totalaveragecountitems などは、一般的によく使われる概念なので、このような簡潔な名前でも十分理解できます。

特別な内容の変数

特別な目的や複雑な意味を持つ変数には、より詳しい名前をつけましょう。

例:

# ユーザーの活動スコアを計算
def calculate_user_activity_score(login_count, post_count, comment_count):
    activity_score = (login_count * 1) + (post_count * 3) + (comment_count * 2)
    return activity_score

# 特定の製品の在庫状況
current_iphone_12_stock = 150
minimum_iphone_12_stock_threshold = 50

# APIリクエストの設定
MAX_API_RETRIES = 3
API_TIMEOUT_SECONDS = 30

これらの変数は特定の概念や複雑な意味を持つので、より詳細で説明的な名前をつけています。

良い例と悪い例

変数名の良い例と悪い例を見てみましょう:

  1. 悪い例:x = 10 # ユーザーの年齢
    良い例:user_age = 10 # ユーザーの年齢

  2. 悪い例:lst = ["apple", "banana", "cherry"] # 果物のリスト
    良い例:fruit_list = ["apple", "banana", "cherry"] # 果物のリスト

  3. 悪い例:t = 60 # タイムアウト時間(秒)
    良い例:timeout_seconds = 60 # タイムアウト時間(秒)

  4. 悪い例:flag = True # ユーザーが認証されているか
    良い例:is_authenticated = True # ユーザーが認証されているか

  5. 悪い例:data = process(input) # 処理された顧客データ
    良い例:processed_customer_data = process(input) # 処理された顧客データ

  6. 悪い例:get_data() # データベースからユーザー情報を取得する関数
    良い例:get_user_info_from_database() # データベースからユーザー情報を取得する関数

まとめ

変数名を付けるときは、次のことを考えてみましょう:

  1. その変数はどこで使われるか?短い範囲なら短い名前、広い範囲なら詳しい名前。
  2. その変数は一般的な内容?それとも特別な内容?一般的なら簡潔に、特別なら詳しく。

ただし、命名でチームメンバーと喧嘩になってしまうのはよくありません。

  • 略語は慎重に使いましょう(誰もが知っている略語以外は避けましょう)
  • チームで働いている場合は、チームの命名規則に従いましょう

プログラミングの腕前が上がるにつれて、良い名前を付けるのが上手くなっていきます。焦らず、少しずつ練習していきましょう!

YOSHINANI

Discussion