トップページ⇒tech
67コメント17KB

命名の法則

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
どっちの単語がいいんだろ
形容詞つけたほうがいいかな
これで意味通じるかな

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

3グッド!
0004デフォルトの名無しさんNGNG
もうなにもみえぬ もうなにもきこえぬ

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

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

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












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

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

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

0018外国人とチームを組むとアウチだな。NGNG
>>17
同姓同名がいたらアウチだ。

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

砂糖のソース
char v12345678901_2003_1210_0136_22;

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

日本人Aのソース
char jp0987654321_2003_1211_0116_22;
韓国人Bのソース
char kr5678901234_2003_1211_0117_22;
0022デフォルトの名無しさんNGNG
#include <iostream>

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

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

L1:

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

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

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

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

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

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

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

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

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

Get/Set
Get/Put
Get/Release

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

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

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

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

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

getchやfscanfが自動的に画面に文字を表示しちゃうようなもんだと。
005547NGNG
↑まちがえた、俺は47です。42ごめん。
0056デフォルトの名無しさんNGNG
>>54
なら、
>「名は体を表す」ように徹底しろ。
ではなく、
>機能を分割しろ。
と主張するべきだったのではないの?

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

>>61
ぐぐったけどその単語無かったです
0064デフォルトの名無しさんNGNG
>>63
ConsiderCaseキモイ

普通に考えて、IgnoreCaseをはずしちゃだめなの?
0065デフォルトの名無しさんNGNG
RespectCase
0066デフォルトの名無しさんNGNG
RegardCase
0067デフォルトの名無しさんNGNG
KaneCase
■ このスレッドは過去ログ倉庫に格納されています