命名の工夫

Name

こんにちは。システム開発三部 開発推進グループ長の竹中です。

私事ですが、最近子犬をお迎えしました。よく喋る子(寝言もすごい)でかわいいの極みです。
柴犬ということもあり、和風な名前をつけました。

名付けといえば、変数や処理名の付け方にも設計者・実装者のセンスが出ると思います。もちろん、命名規則やコーディング規約は守った上でですが、最終的にどんな名前にするのかは悩むところではないでしょうか。社内でも、どんな名前がいいだろうかと相談するチャットが飛んだりしています。

一目で用途がわかるものもあれば、苦肉の策でなんとか名付けたようなものもあり、なかなかおもしろいです。これは上手いなと感じたものや考え方を紹介します。

動詞から始める

なにかを登録する処理であれば"registerFooBar"。これはよくあると思います。

特によいなと感じたのが、boolean型で、利用可能な状態を表すときに"isEnabled"と名付けたり、送信待ちな状態を表すときに"isReadyToBeSent"と名付ける方法です。条件分岐も読みやすいです。if (isReadyToBeSent) then ......

わざわざ"soshinMachiFlag"(送信待ちフラグ)などとして0(false)だから送っちゃダメだ。1(true)だから送ろう。と脳内変換かけるより楽ですね。

無理に省略しない

よく目にするのが、アカウント(account)を"act"としたり、金額(amount)を"amt"としたり。
その省略、本当に必要でしょうか?一時期、英語圏の地域に常駐してシステム開発に従事していたころ、もはや文章じゃないかという長さのメソッド名もありましたが、可読性はかえって向上していたようにも思います。省略するとかえって分かりづらくなるかも、と立ち止まって考えたいです。

数値項目の命名ルールをしっかり定義する

その数値がただの通し番号なら"number"を使う。
その数値そのものが意味を持つなら"code"を使う。
その数値がなにかを識別するためのものなら"id"を使う。

といったように、しっかり定義しているプロジェクトがありました。他のプロジェクトやシステムでこれらが入った名前を見たときに、どう使われているかな?と度々思い起こしています。

おわりに

名前の付け方ひとつでも、可読性・保守性に影響し、不具合を作り込むか、品質を作り込むかの分かれ目になると感じています。少しの意識や工夫であっても大事にしたいですね。