命名の法則

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
どっちの単語がいいんだろ
形容詞つけたほうがいいかな
これで意味通じるかな

識別子に名前付けるのだけは今でも時間かかりまくり
なんかいい方法ないかな
2デフォルトの名無しさん:03/09/20 04:23
2get
ゲットゲットゲットゲットゲットゲットゲットゲットゲット
ゲットゲットゲットゲットゲットゲットゲットゲットゲット
ゲットゲットゲットゲットゲットゲットグッドゲットゲット
グッドゲットグッドゲットグッドグッドグッドグッドグッド
グッドグッドグッドグッドグッドグッドグッドグッドグッド
グッドグッドグッドグッドグッドグッドグッドグッドグッド

3グッド!
もうなにもみえぬ もうなにもきこえぬ

http://pc2.2ch.net/test/read.cgi/tech/1058213523/l50
5名無し@沢村:03/09/20 06:24
命名の法則
基本法則
omanko kintama sunzuriの3つ
派生法則
int型にはi_を、long型にはl_を、bool型にはb_をつける。
例:i_kintama、b_omanko
応用法則
変数が増えてきたら123とつける
例:i__omanko1、i__omanko2、i__omanko3

以上3つの法則を使えばどんなに変数名が増えても完全に管理できる。以上
6デフォルトの名無しさん:03/09/20 09:06
日本語でつければ無問題!

データのチェックをする関数なら
kannsuu_thekku()
で( - _ - )イイ!
ケインスゥ スィーックゥ?
すまんが日本語わかりますか?
意味がわからなくなるほど略すな。
短くて意味のわからない識別子より
長くなっても意味のわかる識別子のほうがよい。
9デフォルトの名無しさん:03/09/21 01:09
変数は全てiです
一個目の変数
i001
2個目
i002
10個目
i00A
iijima_i
katoh_i
takkyu_shojo_i












え?処女?ハァハァ
メンデルスゾーンの法則
12デフォルトの名無しさん:03/12/09 22:44
ハンガリアン記法
使わせてもらってます
variable の v と定義日時で命名する。
v200312092331 定義した時間が分かっちゃう大技。
14デフォルトの名無しさん:03/12/10 00:02
↑部品ロットナンバーのようだ・・・
15デフォルトの名無しさん:03/12/10 00:20
>>13
そのやり方いただき
変数名に悩むことがなくなるね

int v2003_1209_0019_50, v2003_1209_0019_55;
double v2003_1209_0020_03;
>>15
きちんと時計を合せておかないとチーム開発したときに変数名が衝突するぞ。
17デフォルトの名無しさん:03/12/10 01:37
>>16
自分の名前をつけよう

佐藤のソース
char sato2003_1210_0136_22;
鈴木のソース
char suzuki2003_1210_0136_22;

>>17
同姓同名がいたらアウチだ。

住民基本台帳カードの住民票コードをつけよう。

砂糖のソース
char v12345678901_2003_1210_0136_22;

鱸のソース
char v98765432109_2003_1210_0136_22;
うちは中国に外注してるんだけど、どうしたらいいですか?
名前欄、見てなかった。Σ(゚д゚lll)ガーン
v の代わりに国別のドメイン使うべ。
国籍も分かるし誰なのかも分かる。勿論定義時刻も分かっちゃう。

日本人Aのソース
char jp0987654321_2003_1211_0116_22;
韓国人Bのソース
char kr5678901234_2003_1211_0117_22;
#include <iostream>

int main()
{
char jp114534256_2003_1211_2035_33[] = "Hello World";

std::cout << jp114534256_2003_1211_2035_33 << std::endl;
return 0;
}
23デフォルトの名無しさん:03/12/16 12:04
おぉ、なかなか使えそうな意見でてるじゃなん。
って使えねーよ!なげーよ、間違うし、絶対間違うし!
24何かが違う・・・:03/12/16 12:56
>>23
時刻の値から求めたハッシュを変数名にすればいいよ。
コメント欄にハッシュと時刻の対応表を書いておけば間違いにくいしね。
ネタだとわかってはいるが、バリバリのアセンブラ経験があると笑えないんだよね。
GUID を生成して変数名にすれば…
27デフォルトの名無しさん:03/12/16 14:50
乱数で変数名を決定ってのはどう?
シードと生成回数を指定すれば毎回同じ値が出るしね
>>23
いいねその突っ込み
ボケ続いてたからね
確かにアセンブラだと

L1:

なんて命名するなぁ。。。
30デフォルトの名無しさん:03/12/16 19:33
というわけで、専用のエディタを作ろう。
最初にユーザーデータを登録して(国籍、名前)
Ctrl+iで変数を宣言してくれる。
31デフォルトの名無しさん:03/12/16 23:01
>>30
その専用エディタ上では変数にマウスポインタを当てると
詳しい説明が出るようにして置いてくださいね・・・
32デフォルトの名無しさん:03/12/16 23:09
MACアドレスをつけよう。絶対コンフリクトしない。
00-90-CC-00-21-F3_v200312162309
個人のDNAを採取してそれを使おうよ。
>>33
ATGCの塩基配列かぁ
配列変数限定か?

あなたの変数名は何文字必要なの?
いまどき変数名の長さに制限のある処理系なんか使ってる香具師はDQN
ソースファイルが恐ろしいサイズになりそうだ。
いまどきソースのファイルサイズを気にしてる香具師はDQN
>>32
だったらIPv6にして直接変数名に割り当てるとか
>>32
開発途中で NIC 壊れたら大変だな。
jp_co_marubatsusangyo_head_yamadataro_tokyo_minatoku_shibaura_1_2_345
>>40
jp_co_marubatsusangyo_head_yamadataro_105_0023_2_345
郵便番号を使って短縮するとか。
42デフォルトの名無しさん:04/05/16 13:09
命名スレが消滅してしまったようなのでこちらで。

Windowsのアプリケーションのフルパスが
"C:\MyProg\MyApp.exe"
の時、
foo("ini") -> "C:\MyProg\MyApp.ini"
foo("log") -> "C:\MyProg\MyApp.log"
を返すような関数名って何にすればいいですか?
getPath
C:\MyProg\MyAppを定数AppPathにして
AppPath+".ini"
AppPath+".log"
>>42
ChangeExtension
ReplaceSuffix
とかどうですか
漏れは
GetBaseName
AppendSuffix
を用意して分けちゃうな。
よく「意味のある名前を付けろ」というが、ちゃんと分かってない奴が多い。
記号じゃなくて単語にさえすれば何でもいいわけじゃない。

・関数にその名前以外の動作をさせるな
 GetHogeという関数で画面に表示するところまで書く奴多数。
 Hogeを取得したいだけなのにもれなく表示が付いてくる。最悪。
 「名は体を表す」ように徹底しろ。

・名前に対象や動作を複数入れるな
 GetDispHogeとかいう名前にして取得と表示を合体させる奴多数。
 中身がGetHogeとDispHogeをコールしているだけならまだ許せるが
 取得はインラインコードでその最後にDispHoge()とか書いてあったりすることも。
 あとGetHogeFooBarとか作るな。俺はFooだけが欲しいんだ。

 Fooの取得にHogeが必要だからそうしただと?だったらHoge=GetHoge()→
 GetFoo(Hoge)とすればいいだろ。Hogeをどうやって取得しているのか
 知らないが、それ以外の手段でHogeを取得したときのことを考えてるか?

>>42
まず"MyApp.*"はどんな目的のファイルか考えた。とは言っても
目的なんてそれぞれ違うわけだが、少なくとも"MyApp.exe"に関連した、
それを補佐するファイルであるわけだ。目的というか性質になるのか?
とにかく>>42さんの脳内で「○○なファイル」という総称がなにか
あるはず。すると関数名は
Get○○FileNameみたいなのがいいと思います。
GetAppDataFileNameとか。
引数は文字列のほかに「設定ファイル」「ログファイル」みたいな
列挙型を受け取ると決まった拡張子を付けるようにオーバーロード
すると、目的や意味がはっきりしてよいかも。

そういった意味を与えたくない、単に「拡張子を替えたファイル名」という
ならば、>>45みたいな名前に賛成(俺ならReplaceExtention(ファイル名)かな)。
>>47
>GetHogeという関数で画面に表示するところまで書く奴多数。
>Hogeを取得したいだけなのにもれなく表示が付いてくる。最悪。
>「名は体を表す」ように徹底しろ。

英語では get は幅広い意味を持つ。
"get" は必ず "取得する" という意味だと解釈する方がおかしい。
>>49
小学生ですか?
>>50
まあまあ。俺はちょっとは言わんとするところは分かるな。

Get/Set
Get/Put
Get/Release

とかね。でもほとんどGet/Setで取得と設定以外の処理させないだな。
なんか不毛という意味でマ板向きのネタだな
例えば何冊か英和辞典で get を引いてみると分かるが、
その意味の一つとして

「(計算などで)結果を得る、出す」

等と書いてある。
ここで、「得る」事と「出す」事が併記されている事に注目すれば、
>>49 で指摘されている

>Hogeを取得したいだけなのにもれなく表示が付いてくる。

というような用法は、強ち間違った命名だとは言えないのでは?。
5442:04/05/17 00:16
getに取得以外の意味もあるというのはそりゃそうなんですが本質はそこじゃなくて。
問題は取得と表示を1関数内に不可分に書いてしまうと言うところで
(このHogeは取得して表示しない用途もあとで出てくるのに)
こういう人たちは「Hoge取得」「Hoge取り込み」「ReadHogeFromDisk」
みたいな名前にさせたとしても、表示の処理を不可分に書き込んでしまいます。
逆にDispHogeという名前で取得処理を不可分に書き込んだり。
頭の中で処理の切り分けとかモジュール化とかせず適当に書くから、
独立させるべき複数の処理を単一の処理だと思って一緒にしてるわけ。
だから「名前に対象や動作を複数入れる」と根は同じです。

getchやfscanfが自動的に画面に文字を表示しちゃうようなもんだと。
5547:04/05/17 00:17
↑まちがえた、俺は47です。42ごめん。
>>54
なら、
>「名は体を表す」ように徹底しろ。
ではなく、
>機能を分割しろ。
と主張するべきだったのではないの?

>頭の中で処理の切り分けとかモジュール化とかせず適当に書くから、
>独立させるべき複数の処理を単一の処理だと思って一緒にしてるわけ。
>だから「名前に対象や動作を複数入れる」と根は同じです。
サピア・ウォーフでつか?
57デフォルトの名無しさん:04/06/12 14:44
Javaで、String#equalsIgnoreCase()ってあるじゃないですか。
この IgnoreCase と似たようなので、「Caseを無視しない」って意味をつけるとしたらどうしましょう?
CaseSensitive
CaseSensitive
>>58-59
それだとなんか IgnoreCase と語順が逆になってるじゃないですか。
対になるのは無いんですか?
InignoreCase
>>60
CaseInsensitive
>>62
Ignore の反対でお願いします。

>>61
ぐぐったけどその単語無かったです
>>63
ConsiderCaseキモイ

普通に考えて、IgnoreCaseをはずしちゃだめなの?
RespectCase
RegardCase
KaneCase