- PR -

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

投票結果総投票数:128
賛成 23 17.97%
反対 84 65.62%
機能限定なら賛成 17 13.28%
その他 4 3.12%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-02-10 02:50
VisualStudioは殆ど触った事ないですが、
引用:

賛成意見
一目で変数の型がわかるのでコードが理解しやすい。


逆にaでもbでも、IDEで型が一発で分かりますよね?
動機付けがとても弱い気がします。

ソースコードを印刷して、マーカーで色つけてみたり、
テキストエディタで机上デバッグなんてやらないですよね?


今まで一番ウザかったのが、ループカウンタでもハンガリアン記法を要求されたときです。
コード:
For intCount = 1 To 100
    ...処理
Next


iでいいだろ・・・と。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2008-02-10 16:44
引用:

かつのりさんの書き込み (2008-02-10 02:50) より:
VisualStudioは殆ど触った事ないですが、
ソースコードを印刷して、マーカーで色つけてみたり、
テキストエディタで机上デバッグなんてやらないですよね?



やるときあります。画面だと一部しか見えないのがつらい
ソースコードにマーキングもできないし
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2008-02-11 13:01
「反対」に投票しました。

意図がハンガリアン記法の賛否だと判断しましたので…

(ハンガリアン記法)「反対」の理由は、
まず、なぜ、読みやすいのか直感的に分からないからです。

いくら、説明されても「szXXX」が文字列だと分かるのは、
単なる「慣れ」なのではないかという気がしてなりません。

直感的でも感覚的でも本能的でもないので、
どこかでストレスが溜まってしまいそうです。

アジャイル開発では何度となくソースコードを見ることになるので、
たとえローカル変数であろうと、ハンガリアン記法使用には反対です。


また、命名は、「型」ではなく「意味」をもとに考えるべきだと思います。

意味のある名前をつけることと、ハンガリアン記法を使わないことは、
別の問題ではありますが、こんな経験がありました。

あるとき、後輩から、
「意味のある名前にハンガリアン記法を付けるのならいいか」と聞かれて、

「ダメだ」と答えましたが、

彼は、それを無視して、ハンガリアンなコードを大量生産していました。

それはいいのですが、問題は「意味のある名前」になっていなかったことです。

どうも、型を意識すると、意味のある名前を思いつき難いのかと…


ハンガリアン記法でなくても「str」など型をもとにした変数名は
よく見かけますが、

ハンガリアン記法を好む人が、「意味のある名前」を付けない傾向が
あるとすれば、それも「反対」の理由ですね。


基本的に、クラス名にせよメソッド名にせよ変数名にせよ、
意味を表すのは必須ですが、型を表すのは必須でないと考えています。
未記入
大ベテラン
会議室デビュー日: 2006/05/19
投稿数: 125
投稿日時: 2008-02-11 17:49
引用:

ハンガリアン記法を好む人が、「意味のある名前」を付けない傾向が
あるとすれば、それも「反対」の理由ですね。



偏見かもしれませんが、同意です。
dtDateとか、strWorkとかよく見かけます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-02-12 09:30
引用:

jamaさんの書き込み (2008-02-09 00:08) より:

型のプレフィクスは付けないですが、スコープのプレフィクスは付けます。
VBではプレフィクス付けないとプロパティとかぶるし。


プロパティ変数は慣例的にはアンダーバーをつけることになっていますね。(今回は '型' に限った話ですので、ここに関して異論はないと見ていますが念のため...)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-02-12 09:36
引用:

未記入さんの書き込み (2008-02-11 17:49) より:

偏見かもしれませんが、同意です。
dtDateとか、strWorkとかよく見かけます。


先にも書いたとおり、メソッド名から自明であれば特に問題ないと思います。 個人的にはそういった場合は単に value などと統一するか (プロパティと同じですね) とにかく意味を含めるようにするかどちらかにして欲しいとは思っています。

# 私の偏見ですが、ワーク変数と称して work や wk を使う方の多くが...(ry

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
大ベテラン
会議室デビュー日: 2006/05/19
投稿数: 125
投稿日時: 2008-02-12 09:56
プロパティはアンダーバーを付けることに異論はありません。
ですが、アンダーバー+プレフィックス+変数名となります。

ハンガリアン記法を好まれる方は、どうぞiでもsでもお好きなプレフィックスを
お付け頂いて結構だと思います。
ただ開発規約で強制されるのは、開発者にとってすごくストレスに感じませんか?
会社によりStringのプレフィックスがstrだったり、sだったり・・・
いちいちプレフィックス一覧からプレフィックスを探して・・・面倒ですよね!?


甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2008-02-12 10:31
型を示すプレフィックスをつけるのは、近代においては非現実的。

C++/CLIなんかを使っていると文字列を示す型だけで10種類近い。全部の型をプレフィックスで区別できるようにしようとすると、軽く百種類近くになる。これに構造体や共用体、クラスを含めると、あっという間に管理不能になりますよね。私も一時期は簡易的に文字列方は全部strとしてたけど、それってプレフィックスをつけた当初の目的を見失ってますよね。

スキルアップ/キャリアアップ(JOB@IT)