- - PR -
変数名に変数の型のプレフィックスを付けることに関しての質問および投票です
1|2|3|4
次のページへ»
投票結果総投票数:128 | |||
---|---|---|---|
賛成 | 23票 | 17.97% | |
反対 | 84票 | 65.62% | |
機能限定なら賛成 | 17票 | 13.28% | |
その他 | 4票 | 3.12% | |
|
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-08 12:37
変数名に変数の型のプレフィックスを付けることに関しての質問および投票です。
例) Integer型→iHoge String型→sHoge .Netになりプレフィックスを付ける事は推奨されなくなりましたが、 プレフィックスを付けることを規約により強制されることも多々あります。 皆様は変数名に変数の型のプレフィックスを付けることに関し、どのように考えていますか? ※変数はローカル変数、インスタンス変数、クラス変数、パラメータ等全て含みます。 賛成意見 一目で変数の型がわかるのでコードが理解しやすい。 反対意見 型変更する際に面倒。 プレフィックスを使うメリットがない。 たくさんあるクラスのプレフィックスを決めることは出来ない。 機能限定意見 値型の変数とよく使うクラスなどはプレフィックスを使う。 投票およびメリット、デメリットなども記載していただけると嬉しいです。 よろしくお願いいたします。 間違って投票が1つしかないものを送信してしまいました。 かるあ様が投票していただいているのに気が付かず削除してしまいました。 申し訳ありません。 [ メッセージ編集済み 編集者: 未記入 編集日時 2008-02-08 12:40 ] | ||||||||||||
|
投稿日時: 2008-02-08 12:41
型に依存したプレフィックスは特にいらないと思う。
意味に依存したプレフィックスは必要だと思う。 Joel on Software http://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B Wikipedia ハンガリアン記法 http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95 #投票なのに一個しかない。。。 #デブサミ行きたい _________________ かるあ のメモ と スニペット [ メッセージ編集済み 編集者: かるあ 編集日時 2008-02-08 12:42 ] | ||||||||||||
|
投稿日時: 2008-02-08 12:44
古い、安定した話題なので、ちなみにキーワードは「ハンガリアン」だと思いますので、過去の記事やネットでの検索でもある程度の情報は得られるかもしれません。 最近は、やはり付けないのがはやりだと思いますが、基本型以外にいわゆるクラスの名前にまで話を広げると、ちょっと迷います。 たとえば、Hoge というクラスが合った場合、
や
のようなことをしたくなります。 プレフィックスというよりは、クラスの名前をそのままインスタンスの名前に含める、という感じです。 ただ、これも本当はしないほうが良いのかもしれないかな、と思います。要は IDE が賢くなればそれで済むことですから。 ハンガリアン記法みたいに、一律に強制、みたいなのは堅苦しくて、とても耐えられないとは思います。 | ||||||||||||
|
投稿日時: 2008-02-08 14:02
ローカル変数のプリフィクスについてはもう見慣れたので、どっちでも良いと思うようになりました。
ハンガリー記法 (ハンガリアン記法) は、そもそも構造化ができていて、かつ似て非なる型が多くある言語 (C++、SDK、MFC) 以外では必要ないと考えます。 でもあっても別に困らないのでどちらでも良いです。 変数名を直すのが手間という問題についてですが、型の変更がしばしばあることは私の経験では少ないですし、今の IDE なら簡単に一括置換できます。 それよりもそこ以外の命名の方が大切ですね。 '何' をするものかが書いていない変数の方が万人に害です。(メソッド名と重複する呼称は省略しても構わない = GetxxxMoney メソッドに value という変数名があっても問題ない) メソッドの切り分け単位を大切にすれば、おのずの命名は自明です。 特にローカル変数は、メソッドが小さいほどすぐ読めるので型が書いてあってもなくても何でも良いと思います。 そういう意味では変数名よりメソッド名の方が大切だと思います。 なので、メソッドに妙なプリフィクス (g<lobal> とか f<unc> とか s<ub> とか) を付ける人は許しません。 先頭は動詞にして欲しいですね。 ローカル変数以外の広域な変数はガイドラインに従って欲しいですね。 その方がハッピーになれます。 私の経験上では Java 屋さんは結構まとまっているような気がしますが、
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2008-02-08 22:31
VC6.0を使ってたころはハンガリアン記法で書いていましたが、C#やVB.NETの場合特に何も付けないですね。
コード書くときはVS.NETのインテリセンスでそれらしく補完出来ますし、マウスポインタ当てれば型の情報など表示されるので、変数名で判別することが少なくなりました。 でもなぜかわかりませんが、ローカル変数や、引数のstringの場合だけstrXxxみたいな変数付けちゃうときがあります。 | ||||||||||||
|
投稿日時: 2008-02-08 22:40
特にVB6→VB.NETへの移行組が以前まで使ってたネーミングルールをそのまま持ってくるっていうのをよく目にします。 私は、 基本はつけないけど下記みたいな状況ではつけるときもあるかも string strId = "123"; int iId = int.Parse(strId); データの意味は変わらないけど型を変換する場合。 それにプリフィックスないと変数名かぶっちゃいますし・・・。 | ||||||||||||
|
投稿日時: 2008-02-08 22:46
Joel on Softwareを見た時は、なるほどそういうことだったのか、と感心したのですが。
でも、よく考えたら、そこまでするんだったらクラス定義したほうがいいと思いました。コンパイラの方がミスが少ないですし。 | ||||||||||||
|
投稿日時: 2008-02-09 00:08
型のプレフィクスは付けないですが、スコープのプレフィクスは付けます。
VBではプレフィクス付けないとプロパティとかぶるし。 |
1|2|3|4
次のページへ»