トップ(最新)

nDiki : 命名規則

命名規則 - naming convention, naming rules

コンピュータでの識別子の形式的な命名規則としては、先頭を大文字にした単語を連結する CamelCase や、アンダースコアで単語を連結する方法がある。

CamelCase

Java

Java言語コーディング規約では

CamelCase を指定している。

アンダースコア派

GNU Coding Standards

GNU Coding Standardsでは iCantReadThis と(CamelCase は読みづらいと)述べ、アンダースコアで連結する方法を推奨している。

CamelCase よりもアンダースコアで連結する形式の方が(特に英語がネイティブでない人にとって)読み易いとしている。 また、全て大文字である単語であってもアンダースコアで連結する方法は首尾一貫している事を述べている。

Perl

Perl style guide では、アンダースコアで単語を連結する方法を採用している(パッケージ名を除く)。

プライベートな名前

Java

Code Conventions For The Java Programming Language では特に決まりなし。

ちなみにアンダースコアで始まる変数名は 「9. Naming Conventions」 で禁止している。

Perl

Perl style guide ではアンダースコアで始まる変数や関数はパッケージ内で使用するものとすることを推奨している。 Private モジュールを使用すると、実行時にこれらを隠すことができる。

スポンサード リンク

Related term

2000年11月6日 (月)

計算機の名前を選ぶには…… このエントリーを含むはてなブックマーク

スポンサード リンク

新しくコンピュータを手にいれて Linuxインストールする中で、時間がかかる作業は、

  • ハードディスクのフォーマット
  • ハードディスクのパーティション分割の計画
  • ホスト名の決定

だ。少なくとも私の場合。 結局一旦決めたら変えない事が多いので、やはり最初かなり悩む。 まあ、へなちょこな名前で落ちつく事の方が多いのだが。

そんなときには、ちょっと古いけど RFC1178。 先週他の RFC 調べていた時に日本語訳が目についたのでチェック。

読んでも名前は決められないけれど、少なくとも悪い名前は避けやすくなるだろう。

@ 追記

RFC2100 'The Naming of Hosts' というのもあり。

2001年7月2日追記。 中里 武志氏による邦訳の URLhttp://www.nn.iij4u.or.jp/... から、http://www.goto.info.kanagawa-u.ac.jp/... に変更。


[ 命名規則 ]

■ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。

Google Buzz はよろしければ Naney の Google プロフィールからどうぞ。


[ 11月6日全て ]

2005年10月10日 (月)

[ WiKicker ] WRI まわりの整理 このエントリーを含むはてなブックマーク

WRIに関して、private method、protected method がごちゃごちゃしてわかりにくくなってきたので整理。

今まではプライベートメソッドも、プロテクトメソッドも

 _private_method

のようにアンダースコアをつけていたのだがこれだと区別しにくい。 プライベートメソッドについては、

 __private_method

のように、__ を前置するようにした。 区別は容易になるが、コードが繁雑になるのが問題。


[ 命名規則 ]


[ 10月10日全て ]

2009年8月20日 (木)

アクセサは foo と set_foo にしたい このエントリーを含むはてなブックマーク

オブジェクト指向プログラミングではほとんどの場合に必要となるアクセサについては命名規則にいくつかのパターンがある。

  1. 属性名に対して getter に get (get_)、setter に set (set_) をプレフィックスとしてつける。
  2. getter も setter も同じ名前とし属性名にする。
  3. setter のみ set (set_) を属性名にプレフィックスとしてつける。

1 番目は Java プログラミングでよく使われる。 またそれ以外でも広く使われている形式だ。 get と set 命名規則的に対になっていて規則的には美しい。 getter と setter を別々に検索するのも用意だし、プログラミング時にも誤解を招きにくい。

ただし例えば x、y、z のような短い名前の属性の取得の場合 obj->get_x などと、うるさい感じになってしまう。また obj->get_foo->get_var なども obj->foo->var などに比べてすっきり感がない。

2 番目は Perl でよく使われる。C# のプロパティへのアクセサは getter と setter が同じ名前になる。 呼び出し側ではコードが短くなりすっきりする。

ただし Perl の場合は引数の数を動的にチェックするために効率が若干犠牲になるのと、setter の機能が無いアクセサに引数を渡してもエラーにならないため見逃しやすいバグが潜んでしまう可能性があるなどの問題もある。Perl ベストプラクティスではこの形式ではなく1番目の形式を勧めている。

3 番目はあまり多くないかな。 getter に get がついていると個人的には重い印象を感じる。 getter を属性名だけにすることですっきりするとともに、setter は set_ と動詞がつくことでオブジェクトに働きかけるという印象を残すことができる。

命名規則が非対称なのでちょっと気持ち悪いといえば気持ち悪い。

Google C++ スタイルガイドではこの形式を採用している。

個人的には3番目がコードの見た感じにもすっきりしていて読みやすく、また getter と setter の区別も(1番目ほどではないにせよ)つきやすいので良いのではないかと思う。 2番目もよく使っていたのだが、しばらく3番目にしてみようかと思った今日このごろ。


[ 8月20日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.024714s / load averages: 0.11, 0.09, 0.08
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)