はじめに
コーディングにおいては、コードの理解しやすさと保守性を重視することが重要です。
今回はコードの品質を高めるための基本的なコーディングのお作法を説明します。
以下のポイントに従うことで、他の開発者や新規参入メンバーにも分かりやすいコードを書くことができます。
1. 短さより理解のしやすさを優先する
コードは短さよりも理解しやすさを優先しましょう。読みやすく、意図が明確なコードが最も重要です。短いコードが必ずしも良いコードではなく、他の開発者が簡単に理解できるコードが最良です。
コード例
# 悪い例
def f(x): return x**2 + 2*x + 1
# 良い例
def calculate_quadratic(x):
return x**2 + 2*x + 1
2. 名前は短いコメントとして扱う
変数や関数の名前は、短いコメントとして扱うべきです。名前を見ただけで、その変数や関数が何をするのか、どんな役割を持っているのかが分かるようにしましょう。
コード例
# 悪い例
def calc(x): return x * 0.5
# 良い例
def calculate_discount(price): return price * 0.5
3. イテレータに関してはiなど意味のない文字でも構わない
ループのイテレータに関しては、iやjなどの短い名前を使うことが許容されます。
なぜなら、イテレータはそのループ内でのみ使用される変数だからです。
コード例
# ループのイテレータに対しては短い名前でも可
for i in range(10):
print(i)
4. 時間など単位があればそれを名前につける
変数や関数の名前に時間や単位を含めることで、何を表しているのかがより明確になります。
コード例
# 良い例
def calculate_hours_worked(start_time, end_time):
return (end_time - start_time).total_seconds() / 3600
5. 新規参入メンバーが見て分からない省略は使わない
新規参入メンバーが理解できない省略語や略語は避けるべきです。コードが他の開発者にとっても理解しやすいものであるべきです。
コード例
# 悪い例
def calc_sp_data(data):
# SalesPartnerの略称が含まれている
pass
# 良い例
def calculate_sales_partner_data(data):
# 読みやすく、略語なし
pass
6. 名前のフォーマット
アンダースコアが付いている名前はメンバ変数を示します。
コード例
class User:
def __init__(self, name, age):
self._name = name # メンバ変数
self._age = age # メンバ変数
7. 誤解されない名前にする
変数や関数の名前は、その役割や機能が明確であるべきです。filterのように広く使われる名前は、具体的な意図を伝える名前にすることが重要です。
コード例
# 悪い例
def filter(data):
# 何をフィルタリングしているのか不明瞭
pass
# 良い例
def filter_even_numbers(numbers):
# 具体的な意図が明確
return [num for num in numbers if num % 2 == 0]
8. ブール値はis, has, can, shouldを使う
ブール値の変数名や関数名は、is, has, can, shouldなどを使用して、その値が意味する状態を明確にすることが重要です。
コード例
# 良い例
def is_valid_user(user):
return user is not None and user.age > 18
def has_access(user):
return user.role == 'admin'
9. 否定形は紛らわしいので使わない
否定形の名前は誤解を招く可能性があるため、避けるべきです。肯定形の名前を使用することで、コードがより直感的になります。
コード例
# 悪い例
def is_not_active(user):
return not user.is_active
# 良い例
def is_inactive(user):
return not user.is_active
まとめ
今回はPythonコードを例にコーディングのお作法について紹介しました。
短さよりも理解のしやすさを優先し、明確な命名規則を守ることで、他の開発者にも理解しやすいコードを書くことができます。
またこれらをコーディング規約としてチームメンバー内で共有することでより高品質なコードを書くことにつながります。ぜひ実践してみてください。