- - PR -
変数名をつける時に何を気をつけますか?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-01-20 13:50
少しご意見を聞きたくて、こちらに投稿してみます。
参照元URLとして、武史氏のスレッドを拝借させていただきます。 参照元URLで、ハンガリアンが〜…という投稿を読んでいくにしたがい、 良い変数名のつけ方ってなんだろうか?と改めて悩みます。 私は、以下2点には気をつけています。 ・あとから自分がみて見やすいもの。 ・ルールが統一されているもの。 そこで、 Shared Function → SFnc_XXX Function → Fnc_XXX Private → PrXXX ローカル変数の場合のみ(ローカルのL+型+名前) dim LDbl_xxx as double dim LStr_xxx as string ※プロジェクトなどで名称ルールが存在しないことを前提としています。 皆さんが変数名、関数名などを作る場合には、 どのようなルールの下でされていますでしょうか? (アバウトな質問なので言語は問いません) 誤字脱字修正 [ メッセージ編集済み 編集者: にゃー 編集日時 2009-01-20 14:17 ] | ||||||||||||
|
投稿日時: 2009-01-20 14:48
こんにちは。
参照先のスレッドはちらっとしか覗いていないのですが… 「システムハンガリアン」はMicrosoftが間違った解釈を元に作った古いルールで、 今はMicrosoftも、そして参照先で投稿していらっしゃる皆さんも「システムハンガリアン」はできるだけ避けましょうね という共通認識なのでは?
変数のみならず関数にまで、システムハンガリアンをつけるなんて・・ 申し訳ないですが、 もし私がこんなソースに出くわしたら、イラッとし嫌悪感を抱きます。 (いや、実際にこんなソースはよくお目にかかるのですが… こんなソースに限って、センスのない意味の分かりにくいネーミングが多い。 コード自体にもセンスのカケラも感じられないことが多い。) | ||||||||||||
|
投稿日時: 2009-01-20 14:56
私の場合以下の2点を注意しています。
変数を見ただけで内容が解りやすく他の変数と見分けが付き易い。 ループ等カウントする際は単純な文字を付ける(iやii等) | ||||||||||||
|
投稿日時: 2009-01-20 15:21
C#, VB.NET で開発をしていますが、基本的には↓にあるコーディング標準を意識して名前をつけています。
http://www.objectclub.jp/community/codingstandard/ ただ、いくつか異なることもやっています。 ・ローカル変数と区別する目的で、private なフィールドの先頭に _ (アンダースコア)をつける ・画面上にある固定的なラベルなど、処理と関係ないオブジェクトで、label1 や label2 など自動で付けられる名前をそのまま使う ・使い捨てのローカル変数に tmp や str, msg, work などの短い名前をつける public なものは気を遣って名前をつけてほしいと思いますが、private なものはあまり気にしません。例えば、画面クラス名が FrmMain だとちょっとしょんぼりしますが、ローカル変数に bResult とついてても、特に気にはなりません。 | ||||||||||||
|
投稿日時: 2009-01-20 15:30
アンケートのスレッドだという認識で回答します。 私は、どうせ気をつける・気を使うならば、むしろ XXX や xxx のほうをどんな名前にするかにこだわったほうが良いと思います。 追記します。(2009/1/20 17:14:30) この回答は、変数名の付けかたに工数を割く際に、工数の比率は SFnc, Fnc, Pr, LDbl, LStr よりも XXX, xxx のほうを大きくしたほうが良い、という意図でおこないました。 [ メッセージ編集済み 編集者: unibon 編集日時 2009-01-20 17:14 ] | ||||||||||||
|
投稿日時: 2009-01-20 15:46
激しく同意です。 私はもっぱらJava ですが、
みたいな変数名に何の利点があるのか理解しがたいです。 あと、
これも、よく見かけますが、個人的にはあまり好きではありません。 アンダースコアは見づらいし、入力しづらいので。 そもそも、ローカル変数とprivate 変数を、区別しなければならないはめにあまり 陥ったことがないですが、そんなにありますかね? | ||||||||||||
|
投稿日時: 2009-01-20 16:07
個人で簡単なゲームを作るときなど、
私は、変数名を気にしたことはありませんでした。 しかし、自分以外がコードをみる可能性があるものの場合、 ほかの人が見たときに、すぐにわかるものである必要があるかと思い、 ぱっと見て何処で宣言したものなのかを区別したいと思いました。 >ローカル変数とprivate 変数を、区別しなければならないはめにあまり >陥ったことがないですが、そんなにありますかね? 改めて言われると確かに・・・と思う反面、区別してなかった場合に読みやすいか? といわれると疑問に思ったりもします。 Privateやローカル変数名、関数名の接頭、接尾に決まりごとを付けない派のひとは、 ・エディターの力で検索できる ・カーソルを持っていくと型が表示される といったことなのですかね? xxxxはダメ。という意見も大変ありがたいのですが、 否定だけでなくxxxxという形で実装してますよっていう場となればと思います。 [ メッセージ編集済み 編集者: にゃー 編集日時 2009-01-20 16:09 ] | ||||||||||||
|
投稿日時: 2009-01-20 16:41
そもそも区別しなければならないようなコーディングにしない、ということです。
いえ、たとえば、userID という変数名であれば、それを見ただけで、 文字型なのか、数値型なのかがわかるようにする、ということです。 どうやってわかるようにするのかは、いろいろあるでしょうが。 例外的に、メソッドの引数だけは、先頭に a か、an を付けてます。 |