skillup

技術ブログ

プログラミング全般

命名規則について

投稿日:2016年6月28日 更新日:

リーダブルコードシリーズ第2段、名称について。

コードにおいては名称がとても大切で、正しい命名づけなどはなかなか難しいです。

以下に大事で重要だと思ったポイントを。

具体的でわかりやすい名前を付ける

変数の名称ですが、汎用的すぎるもの(data,tmp,res)などは指している対象があいまいなため、名前をみただけでは何か判断できないことが多々あります。なるべく具体的な名称にしましょう。

また一貫性も大事で、データを取得する場合は、get+~、保存する場合はsave+~などに決めておきましょう。

名前の規則はスコープにも依存する

tmp(あるいはこのような汎用的な名称)は変数名に適していないと書きましたが、これらが必要な場合もあります。本当に一時的で変数の残存期間が数行ならtmpでも問題ないでしょう。

このように名称をどのように決めるかは変数の影響範囲であるスコープに大きな影響を与えます。スコープが大きい場合はできるだけ具体的な名称にすべきですし、そうでない場合はある程度、短い変数をつかってもよいでしょう。

長くなりすぎることを避ける

これ私の悪い癖なんですけど、変数名が長くなりすぎてしまうんですよね。その場合の対処法としてもリーダブルコードは下記のようなことをあげています。

短縮形を使う

短縮しても問題ない情報を短縮します。その場合、プロジェクト全体で短縮のルールなどが共有されている必要はありますが。あとは接頭語や接尾語などを付けるなども短縮化に一役買います。

不要な単語を避ける

名詞だけでつないでもOKな場合は動詞を削ってしまうなど、とにかく削れる単語がないかのチェックです。doみたいな動詞は汎用的すぎるのでいらないことが多いでしょうし、ConvertToStringはtoStringでもいいでしょう。

フォーマットを決める

これはあまりなかったです。例を挙げるとクラス変数ならアンスコをつけて、ローカル変数ならなにもつけない、といったルールを使えば簡単にクラス変数とローカル変数を区別することができます。

参考リンク

関数名によく使われる英単語(動詞)の意味とニュアンス

-プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

サロゲートキーと主キーに関して

今までも何度か触れたサロゲートキーと主キーに関して。 今までの参考リンク 論理設計のグレーノウハウ サロゲートキー サロゲートキーに関して 主にシステム設計的な考察が多かったので、今回はユースケースか …

no image

OSコマンドインジェクション

Contents1 OSコマンドインジェクションとは?2 被害3 対策4 参考リンク OSコマンドインジェクションとは? OSに対する命令文を不正に紛れ込ませて攻撃させる手法。 被害 サーバー内のファ …

no image

トランザクション、ロールバックに関する考察

今までトランザクションの単位は基本的に処理の開始から終了までを範囲にすることが多かったのですが(ループがある場合はループ全体ではなく、1ループをトランザクションとみなします)、複数の処理が絡む場合、不 …

no image

短いコードを書く

私が普段コードを書くときに考えていることは常にいかに短くかけるか、ということといかにバグを生み出さないかということです。 基本的にはできるだけ、短くシンプルに書くようにしています。 そうすることであと …

no image

調査スキルについて

本日は実務でとても大切な不具合の発見方法について 通常のプログラマとして仕事をしておりますと、通常の実装よりは不具合時の調査のほうが難しいことが多々あります。 もちろんものによるんですが、経験のある人 …