0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

コーディングのお作法

0
Last updated at Posted at 2024-08-07

はじめに

コーディングにおいては、コードの理解しやすさと保守性を重視することが重要です。

今回はコードの品質を高めるための基本的なコーディングのお作法を説明します。

以下のポイントに従うことで、他の開発者や新規参入メンバーにも分かりやすいコードを書くことができます。

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コードを例にコーディングのお作法について紹介しました。

短さよりも理解のしやすさを優先し、明確な命名規則を守ることで、他の開発者にも理解しやすいコードを書くことができます。

またこれらをコーディング規約としてチームメンバー内で共有することでより高品質なコードを書くことにつながります。ぜひ実践してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?