良いコードの命名規則
良いコードの命名規則
良いコードの命名規則を守ることは、コードの理解性やメンテナンス性を向上させるために非常に重要です。適切な命名規則を使用することで、コードを書いた人やその後の開発者がコードを理解しやすくなります。以下では、良いコードの命名規則について説明します。
1. 分かりやすい名前を使用する
変数名や関数名などの命名において、分かりやすい名前を使用することが重要です。名前が分かりにくい場合は、コードの理解が困難になり、メンテナンス性が低下する可能性があります。
例えば、以下のようなコードがある場合を考えてみましょう。
a = 5
b = 10
c = a + b
この場合、変数名が a、b、c というように分かりにくいため、このコードを読んだ人が意図する動作や意味を理解するのは難しいでしょう。より良い命名方法としては、以下のように変数名を付けることが考えられます。
num1 = 5
num2 = 10
sum_num = num1 + num2
このように、意味のある名前を使用することで、コードの理解が容易になります。
明確な単語を選ぶ(リーダブルコード)
2. 一貫性を保つ
命名規則は一貫性を持っている必要があります。同じ種類の要素に対して同じ命名規則を使用し、それに従って名前を付けるようにしましょう。
例えば、以下のように変数名を命名するとします。
first_name = "John"
last_name = "Doe"
age = 30
この場合、名前を付ける方法がバラバラであり、一貫性がありません。より良い命名方法としては、以下のように一貫した命名規則を使用することが考えられます。
first_name = "John"
last_name = "Doe"
age_years = 30
このように、同じ種類の要素に対して同じ命名規則を使用することで、コード全体の一貫性を保つことができます。
大文字やアンダースコアに意味を含める(リーダブルコード)
3. 意味のある名前を使用する
命名にあたっては、変数や関数が何を表しているかを明確に示すようにしましょう。名前から何を表しているかが明確であれば、コードの理解が容易になります。
例えば、以下のようなコードがある場合を考えてみましょう。
def calc(a, b):
return a + b
この場合、関数名が calc というように意味を表していないため、この関数が何を行っているかが分かりにくいでしょう。より良い命名方法としては、以下のように意味のある関数名を付けることが考えられます。
def calc_sum(a, b):
return a + b
このように、意味のある名前を使用することで、コードの理解が容易になります。
汎用的な名前は、理由を用意しよう(リーダブルコード)
具体的な名前をつくあって、物事を詳細に説明する(リーダブルコード)
4. 不要な省略をしない
命名において、不必要な省略をすることは避けましょう。命名規則においては、わかりやすく明確な名前を使用することが重要です。
例えば、以下のようなコードがある場合を考えてみましょう。
def calc(x, y):
return x * y
この場合、関数名が calc と省略されているため、この関数が何を行っているかが分かりにくいでしょう。より良い命名方法としては、以下のようにわかりやすい関数名を付けることが考えられます。
def calc_prod(x, y):
return x * y
このように、不必要な省略を避け、わかりやすく明確な名前を使用することで、コードの理解が容易になります。
スコープの大きな変数には長い名前をつける(リーダブルコード)
5. 汎用的な命名規則を使用する
命名においては、汎用的な命名規則を使用することが重要です。特定の技術や言語に依存しない命名規則を使用することで、コードの移植性や再利用性を向上させることができます。
例えば、以下のようなコードがある場合を考えてみましょう。
first_name = "John"
last_name = "Doe"
この場合、名前を格納するための変数名が first_name、last_name となっています。これは、英語圏で一般的な命名規則ですが、他の言語圏では適切な命名規則でないことがあります。より汎用的な命名方法としては、以下のようになります。
given_name = "John"
family_name = "Doe"
このように、汎用的な命名規則を使用することで、コードの移植性や再利用性を向上させることができます。
変数名に大切な方法を追加する(リーダブルコード)
汎用的な名前を避ける(リーダブルコード)
まとめ
良いコードの命名規則には、分かりやすい名前を使用する、一貫性を保つ、意味のある名前を使用する、不要な省略をしない、汎用的な命名規則を使用するといったポイントがあります。これらのポイントを意識して、適切な命名規則を使用することで、コードの理解性やメンテナンス性を向上させることができます。命名については、コードを書く上で最も基本的な要素の1つであるため、しっかりとした命名規則を定めることは、良いコードを書くために不可欠な要素です。
Discussion
素朴な質問なのですが、first_numberやsecond_numberとはなんですか?
そもそもそれらの変数に数値が代入されている時点でnumberであることは自明ですし、その他の情報としてはただの序数しか分からないのですが…
また、firstとかsecondとかのアルファベットの羅列よりも1や2の方がパッと見て分かるのに、なぜ前者を使うのでしょうか。もしfirst_numberとしたいならnum1の方が情報量は同じで読みやすいと感じてしまいます。
意味ない変数名や意味のわからないほど短い変数名はもちろん読みにくいですが、
calculate_sum(x, y) → calc_sum(x, y), sum(x, y)
calculate_product_of_numbers(x, y) → calc_prod(x, y), prod(x, y)
でも十分伝わると思います。むしろ無理にcalculateやnumbersなどの自明の単語をつけて長くする必要はあまり無いのではないでしょうか。
あくまでこれらのことは、記事に書いてくださったことが身についていることを前提として、より読みやすくするための応用と言うことでしたら分かるのですが、あまり名が長いと無駄に労力がかかり、初心者も敬遠してしまいそうです。
Masamune_903さん
丁寧なご指摘ありがとうございます。全くもってご指摘のとおりです。修正させていただきました。
私自身勉強中の身でして、かなり冗長でわかりにくい命名をしていたと思います。
良いコードを教える記事のくせして、悪いコードを教えるなんて、、、今後とも精進させていただきます。
これからも、こちらの記事を読んで、初心者の人たちも勉強が捗るような記事を書いて行きたく思います。
不備が多いかもしれませんが、今後とも、疑問点等ございましたら遠慮なくご指摘ください。
より良い記事になるよう修正させていただきます。この度はご指摘ありがとうございました。