7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

読みやすいコードを書くためのガイド - 名前の誤解を避ける方法

Last updated at Posted at 2024-08-20

名前の誤解を避ける方法

最近リーダブルコード(The Art of Readable Code)を読んでいます。この記事は、本の内容をしっかり頭に入れて、お浚いする為の読書ノートです。

今回は、第3章「Names That Can’t Be Misconstrued」について、まとめてみました。

1. 誤解されない名前の重要性

多くの英単語はプログラミングにおいて曖昧な意味を持ちます。例えば、filter、length、limit。

例: Filter():

results = Database.all_objects.filter("year <= 2011")

このresultsには何が含まれているでしょうか?

  • Objects whose year is <= 2011 ?
  • Objects whose year is not <= 2011 ?

問題は、英語のfilterがとても曖昧で、「取り出す」のか「取り除く」のかが不明確です。
「取り出す」の場合は、select()がより適しています。
「取り除く」の場合は、exclude()が適しています。
filterなどの名前は非常に誤解されやすいため、避けるのがベストです。

2. 上限値と下限値の名前付け

値の上限または下限を定義する場合、max_やmin_を使うと良いでしょう。
例えば、最大値を表す変数にはmax_value、最小値を表す変数にはmin_value。

// 上限・下限を示す場合
max_length = 100
min_price = 1000

3. 範囲を表す名前付け

範囲を表す際には、包含範囲にはfirstとlast、包含/排他的範囲にはbeginとendを使用するのが適しています。

// 包含範囲
first_index = 0
last_index = 10

// 包含/排他的範囲
begin_index = 0
end_index = 10  // 0から9までの要素を示す

4.ブール値の名前付け

ブール値の名前にはisやhasなどを使ってください。

// 良い例
is_valid = True
has_permission = False

また、否定形は理解しづらく、誤解の元になります。否定的な言葉(例:disable_ssl)は避けましょう。代わりに肯定的な表現を使用します。

// 良い例
use_ssl = True

// 悪い例
disable_ssl = False

5. 他の開発者の期待に注意

ややこしいですが、ある単語に対する期待にも注意すべきです。例えば、get()やsize()といったメソッドは軽量であることを期待されます。これらのメソッドが重い処理を伴う場合、誤解を招く可能性があります。

// 良い例
retrieve_user_data():
    // データベースから大量のデータを取得する処理

// 悪い例(重い処理を行っている)
get_user_data():
    // データベースから大量のデータを取得する処理

まとめ

これを参考にし、コードの可読性を高めるための名前付けを心がけましょう。他の開発者が意図した通りにコードを理解できるようになります。

7
2
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
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?