none
プリフィックスなど、ネーミング方法について RRS feed

  • 質問

  •  

    VB2005、2008で開発しています。

     

    今まではVB6.0で開発していまして、
    プリフィックスを以下のように3文字で付けていました。
    String  → str
    Integer → int
    Textbox → txt

     

    VB2005以降になっても同様に3文字のプリフィックスを付けようかと
    考えていたのですが、
    コントロールやデータ型が増えて3文字では
    被ってしまったりして、不都合を感じております。
    プリフィックスを付けないというのも1つの手かなとも考えております。

     

    そこで質問なのですが、
    皆様はどのように変数やコントロールに名前を付けていますか?
    参考にしたいと思っておりますので、
    もしよろしければ教えて下さい。

     

    ぜひよろしくお願い致します。

    2008年7月3日 14:38

回答

  •  コンドル さんからの引用

    String  → str
    Integer → int
    Textbox → txt

    いわゆるシステムハンガリアンであり、今はあまり推奨されていません。.NETでも推奨されていません。

    なぜなら、コーディングの途中で型が変わったりすることはよくあることですし、その度に変数名を直すのはコストの割りに得られるものがほとんどないからです。また、.NETはコンパイラが型チェックをきっちりと行いますので、システムハンガリアンから得られるものはあまりありません。

     

    ただ、Textbox → txtはアプリケーションハンガリアンに近いものがあると思いますので、このようなプリフィックスを私は付けています。Textboxという種類を明確にしたいからです。

    よくサンプルにMyTextBoxというのが出てきますが、この名前もTextBoxという種類を明確に表しています。

    システムハンガリアンとアプリケーションハンガリアンの違いでよく言われることですが、変数名で型がわかるようにするのではなく、変数の種類がわかるようにすることが大事だと思います。型のチェックはコンパイラがしてくれますが、種類のチェックはコンパイラにはできません。したがって、変数の種類を明確にわかるようにしておくことで、バグを生みにくくすることができます。

    2008年7月3日 15:33
    モデレータ
  •  コンドル さんからの引用

    そこで質問なのですが、
    皆様はどのように変数やコントロールに名前を付けていますか?

    コントロール等のUI部品のように、その型であることを強調するような場合はMainFormのように型の名前を後ろにつけたりします。

    変数名とかプロパティ名とかには型を示唆する単語・略語はつけていません。

     

    型を表す略語をつけるくらいであれば、長くなってもその変数が示唆する意味を表す単語を付け加えます。

     

    よく言われていますが、IntelliSenseで入力が補完されるし、変数名にカーソルを合わせればツールヒントで型名等出てきますし、型を意味する略語をつける意味がないかなーと。

     

    他、検索で色々とサイトが引っかかるので命名規則を定める・改訂する参考にして見てください。

     

    -----

    Googleで検索「プレフィックス 命名 変数 C#」

     

    .NETの命名規則

    http://dobon.net/vb/dotnet/beginner/namingrules.html

     

    投票:変数名に変数の型のプレフィックスを付けることに関しての質問および投票です

    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43470&forum=7

    2008年7月3日 15:22
    モデレータ
  • 変数は以下のガイドラインに従ってプリフィックスはつけていません。

    http://msdn.microsoft.com/ja-jp/library/ms229042(VS.80).aspx

     

    ただ、コントロールはプリフィックスがないと不便(あると画面上のどの部分か想起しやすい)ためTextbox→txtなどとプリフィックスをつけています。
    2008年7月3日 15:28

すべての返信

  •  コンドル さんからの引用

    そこで質問なのですが、
    皆様はどのように変数やコントロールに名前を付けていますか?

    コントロール等のUI部品のように、その型であることを強調するような場合はMainFormのように型の名前を後ろにつけたりします。

    変数名とかプロパティ名とかには型を示唆する単語・略語はつけていません。

     

    型を表す略語をつけるくらいであれば、長くなってもその変数が示唆する意味を表す単語を付け加えます。

     

    よく言われていますが、IntelliSenseで入力が補完されるし、変数名にカーソルを合わせればツールヒントで型名等出てきますし、型を意味する略語をつける意味がないかなーと。

     

    他、検索で色々とサイトが引っかかるので命名規則を定める・改訂する参考にして見てください。

     

    -----

    Googleで検索「プレフィックス 命名 変数 C#」

     

    .NETの命名規則

    http://dobon.net/vb/dotnet/beginner/namingrules.html

     

    投票:変数名に変数の型のプレフィックスを付けることに関しての質問および投票です

    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43470&forum=7

    2008年7月3日 15:22
    モデレータ
  • 変数は以下のガイドラインに従ってプリフィックスはつけていません。

    http://msdn.microsoft.com/ja-jp/library/ms229042(VS.80).aspx

     

    ただ、コントロールはプリフィックスがないと不便(あると画面上のどの部分か想起しやすい)ためTextbox→txtなどとプリフィックスをつけています。
    2008年7月3日 15:28
  •  コンドル さんからの引用

    String  → str
    Integer → int
    Textbox → txt

    いわゆるシステムハンガリアンであり、今はあまり推奨されていません。.NETでも推奨されていません。

    なぜなら、コーディングの途中で型が変わったりすることはよくあることですし、その度に変数名を直すのはコストの割りに得られるものがほとんどないからです。また、.NETはコンパイラが型チェックをきっちりと行いますので、システムハンガリアンから得られるものはあまりありません。

     

    ただ、Textbox → txtはアプリケーションハンガリアンに近いものがあると思いますので、このようなプリフィックスを私は付けています。Textboxという種類を明確にしたいからです。

    よくサンプルにMyTextBoxというのが出てきますが、この名前もTextBoxという種類を明確に表しています。

    システムハンガリアンとアプリケーションハンガリアンの違いでよく言われることですが、変数名で型がわかるようにするのではなく、変数の種類がわかるようにすることが大事だと思います。型のチェックはコンパイラがしてくれますが、種類のチェックはコンパイラにはできません。したがって、変数の種類を明確にわかるようにしておくことで、バグを生みにくくすることができます。

    2008年7月3日 15:33
    モデレータ
  • 皆さま、ご回答ありがとうございます。

     

    プリフィックスは付けないのが主流なのですね。
    ハンガリアン記法など、今まで知らずにおりましたが、
    これを機に勉強させて頂き、とても勉強になりました。

     

    また変数名で変数の種類がわかるようにするべきだという
    ご意見がとても勉強になりました。

    ありがとうございます。

     

    今後のプログラミングでは、
    プリフィックスなしで慣れていこうと思います。

     

    2008年7月4日 10:11