modest violet

modest violet

開発者としてのあれこれや、日々の雑記など

your future hasn't written yet. no one's has.
by Emmett Lathrop "Doc" Brown

命名規則が必要な理由

f:id:shin21sk:20200401223905p:plain

多種多様なプログラムが存在しますが、命名規則気にしていますか?
ベテランプログラマーと駆け出しプログラマーのコードを比べると顕著に違いが見受けられます。
この記事は命名規則の具体例は他の記事を参考にして頂くとして、何故必要なのか?ということにスポットをあてています。

命名規則の必要性

命名規則は大事というのが分かるけれど、どう書けばいいのか分からない!という駆け出しプログラマーさんは多いと思います。
まず始めに述べると、命名規則に正解はありません。
少し乱暴かもしれませんが、ベテランでも命名規則は悩みます。というか悩まなければいけないのです。 えっ?でもベテランさんはサクサクっと名前を付けているように見えるけど??という意見も多いと思います。それは、単にベテランさんには命名規則のパターンが染みついているからです。全く新しい概念のクラスとか出てきたとき、どういう名前がいいのかベテランさんも考えます。

何故、命名規則が必要なのか。
それは人がプログラムを作るからです。コンパイラアセンブリ命名規則なんて関係ありません。人がコードを読むために命名規則が必要なのです。
そして、可読性を良くする為に「こういう風に書きましょう」という規則を設けているに過ぎないのです。
ですので命名規則なく適当な名前でもプログラムは動きます。ですが、それは独りよがりの汚いコードです。それは数ヶ月、数年後に自分でも読めないコードに陥る可能性が非常に高いです。

未来の自分でもキチンと読めて、他の人にも読みやすいコードを、美しいコードと呼びます。
そんな美しいコードを意識する最初の一歩が、命名規則です。

悩みすぎは厳禁

命名規則が大事!という事により、何十分も悩み続ける人をたまに見かけます。はっきり言ってそれは無駄です。
クラスやメソッドの名前を付けるときに、数分かかっても悩む場合はそのクラスまたはメソッドの動きを把握できていないか、用途を理解出来ていないと判断できます。
そういう場合は、仮の名前を定めてTODOを残し、動きや用途を理解出来た段階でリファクタリングしましょう。

意外に、自分が書いたコードを説明できないという駆け出しプログラマーさんは多いです。
命名もしかりで、「何故この名前にしたの?」と尋ねてもはっきりした答えがない場合が多いです。
適切な名前を付けるには、対象となるコードを理解する。または、関連する動きの中での役割を理解する事が大事です。

大体3分悩んでもぴったりくる名前がつけられなかった場合は、後回しにするべきでしょう。

終わりに

たかが命名規則、されど命名規則。 転ばぬ先の命名規則
他人に言われなくても自然と命名規則を気にしたコーディングスタイルを身につけることができれば、開発者として一段高みに登ったといえるでしょう。