skillup

技術ブログ

プログラミング全般

命名規則について

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

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

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

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

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

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

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

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

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

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

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

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

短縮形を使う

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

不要な単語を避ける

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

フォーマットを決める

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

参考リンク

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

-プログラミング全般
-

執筆者:


comment

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

関連記事

no image

クラスメソッドとインスタンスメソッド

以前staticメソッドを定義したときに、記法がインスタンスメソッドの呼び方でも呼べてしまうことがあったので、これを機にインスタンス・クラス×変数・メソッドちょっと調べてみました。 言葉で書くよりコー …

no image

PCクラッシュ時に備えて

先日、ずっとメインで使っていた会社のノートPCがクラッシュし、再起不能になりました。ファイルなんかはクラウドで管理していたものが多かったので実害はあまりなかったんですが、当然ゼロではありませんでした。 …

no image

コードレビュー時のポイント

コードレビュー(仕様的な点ではなくて規約的なところのチェック)などで気をつけることなど。 ポイントとしては検知ツールで確認するコストを減らすことが一番大事(カスタマイズの方法について調べておく)、ある …

no image

型の意識について(ValueObjectの活用など)

現在の現場でコードレビューをしてもらう機会が増え、自分が弱かった型の意識について。 現在ではPHPでも型を記述してコーディングすることが一般的なため、静的言語と同じように型を意識することが増えてきたか …

no image

エラーレポーティングサービス Sentryについて

リリースした後、運用段階に入ると定期的にバグ報告が上がってきます。 本来はリリース前に検収テストをすべきなんですが、そんな余裕ないことも多い(汗) で、そんな時に大事なのが エラーを気づけること 対処 …

アーカイブ