変数などの命名の長さを決める2つのポイント
はじめに
変数や関数の命名の長さっていつも悩みませんか?長すぎても短すぎてもコードが読みづらくなり、コードレビューなどで揉めてしまうこともありますよね。この記事ではその変数名の長さを決める2つの強力なポイントについて紹介します。
変数名を付けるときの2つのポイント
変数名を付けるときに気をつけたい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
これらの例では、i
、n
、a
、b
といった短い名前で十分です。これらの変数は、それぞれの小さな範囲内でしか使われないからです。
広い範囲で使う変数
プログラム全体や大きな部分で使う変数には、より詳しい名前をつけましょう。
例:
# ユーザーの情報を扱うクラス
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]
total
、average
、count
、items
などは、一般的によく使われる概念なので、このような簡潔な名前でも十分理解できます。
特別な内容の変数
特別な目的や複雑な意味を持つ変数には、より詳しい名前をつけましょう。
例:
# ユーザーの活動スコアを計算
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
これらの変数は特定の概念や複雑な意味を持つので、より詳細で説明的な名前をつけています。
良い例と悪い例
変数名の良い例と悪い例を見てみましょう:
-
悪い例:
x = 10
# ユーザーの年齢
良い例:user_age = 10
# ユーザーの年齢 -
悪い例:
lst = ["apple", "banana", "cherry"]
# 果物のリスト
良い例:fruit_list = ["apple", "banana", "cherry"]
# 果物のリスト -
悪い例:
t = 60
# タイムアウト時間(秒)
良い例:timeout_seconds = 60
# タイムアウト時間(秒) -
悪い例:
flag = True
# ユーザーが認証されているか
良い例:is_authenticated = True
# ユーザーが認証されているか -
悪い例:
data = process(input)
# 処理された顧客データ
良い例:processed_customer_data = process(input)
# 処理された顧客データ -
悪い例:
get_data()
# データベースからユーザー情報を取得する関数
良い例:get_user_info_from_database()
# データベースからユーザー情報を取得する関数
まとめ
変数名を付けるときは、次のことを考えてみましょう:
- その変数はどこで使われるか?短い範囲なら短い名前、広い範囲なら詳しい名前。
- その変数は一般的な内容?それとも特別な内容?一般的なら簡潔に、特別なら詳しく。
ただし、命名でチームメンバーと喧嘩になってしまうのはよくありません。
- 略語は慎重に使いましょう(誰もが知っている略語以外は避けましょう)
- チームで働いている場合は、チームの命名規則に従いましょう
プログラミングの腕前が上がるにつれて、良い名前を付けるのが上手くなっていきます。焦らず、少しずつ練習していきましょう!
Discussion