アカウント名:
パスワード:
IDEで開発することでハンガリアン記法を捨てさせれば多少短くできるってケースも結構ありそう。クセになってんのか何も考えてないのか、IDEでハンガリアン記法使う意味って何もないのに結構見かけるんだよね、未だに。使ってる人に聞くと「最初(10年以上前)にこうしろって教わった。」とか「わかりやすい」とか。意味わかんない。※そのくせ、"strData"とか変数に命名してるのを見ると「ああ、こいつバカだ」と思ったり。
ハンガリアン記法は悪ってよく言われるよね。その延長で変数にプレフィクス付けるのも叩かれる事がある。でもさ、ハンガリアン記法の排除を強制するのって、ハンガリアン記法を強制するのと同じ愚を冒してる気がするんだよね。
例えば、最大値を入れるstringオブジェクトがあるとして、「sMax」とつける、これを良くないという人がいる。プレフィクスはとにかく悪だと思ってるわけだけど、この変数は「maxの文字列」を入れるためのものだから、変数名は「maxString」にしても別におかしくない。無意味なint変数を「foo」とせず「i」とするのと同じ。型名を省けば別の型のma
>変数名は「maxString」にしても別におかしくない。おかしくないですか?maxStringって何が入ってるんですか?まさか文字列"MAX"とか入れてるわけじゃないですよね。さすがにそれはないとして、次に浮かぶのは何かの値の最大値をStringで持っているのだと思いますが、その場合はその何かの値のMAXって名前を付ければいいのでは?たとえば身長だったらtallMaxとかmaxTallとか。
>型名を省けば別の型のmaxと同居しなきゃならない時に悩む事もある。というのはわからないでもないですが、同じスコープの中で同じ名前で違う型の変数が必要になるのがダメな気がします。なので、StrとかStringとかsとかの接頭語、接尾語はいりません。
横からですが。
さすがにそれはないとして、次に浮かぶのは何かの値の最大値をStringで持っているのだと思いますが、 その場合はその何かの値のMAXって名前を付ければいいのでは? たとえば身長だったらtallMaxとかmaxTallとか。
入力が文字列で、それをチェックして数値に変換するような場合ってどうしてます? 例えばウェブでフォームから最大値を入力してもらうとしたら、自分なら
String sMax = request.getParameter("max");if(sMaxが妥当な値かチェック)){ //異常値ならエラー処理}int max = Integer.parseInt(sMax);...
みたいに書いちゃいますが、NGですかね?
数値が最終形なら文字列いらない。RangeCheckedInteger MaxFoo = RangeCheckedInteger::FromString((request.getParameter("max"));
ハンガリアン記法をするならご自由に。
つうか、そんなところで裸のparseIntは止めなされ
1つの問題は#2131434氏の状況で、まさにこのシチュエーションを想定してコメントを書いていました。別の理由もあって、例えばintの派生型としてtall型を定義している状況の場合、「tallMax」は、プレフィクスを付けているように見られてしまうという事です。型がtallなら変数名はmaxでいいと言われるのでしょうが、まあ状況によりけりで、tallMaxの方がコードが読み易い場合でも、妙な縛りが掛かってしまうのはおかしいだろうという事で。
これはとあるTaskクラスを作っていた時に感じたことで、変数名に「task」を入れないと、重要な情報の抜けている変数名になっていまい、何だかなあと思ったもので。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
IDEで開発するならハンガリアン記法捨てようぜ (スコア:-1)
IDEで開発することでハンガリアン記法を捨てさせれば多少短くできるってケースも結構ありそう。
クセになってんのか何も考えてないのか、IDEでハンガリアン記法使う意味って何もないのに結構見かけるんだよね、未だに。
使ってる人に聞くと「最初(10年以上前)にこうしろって教わった。」とか「わかりやすい」とか。意味わかんない。
※そのくせ、"strData"とか変数に命名してるのを見ると「ああ、こいつバカだ」と思ったり。
Re: (スコア:0)
ハンガリアン記法は悪ってよく言われるよね。その延長で変数にプレフィクス付けるのも叩かれる事がある。
でもさ、ハンガリアン記法の排除を強制するのって、ハンガリアン記法を強制するのと同じ愚を冒してる気がするんだよね。
例えば、最大値を入れるstringオブジェクトがあるとして、「sMax」とつける、これを良くないという人がいる。
プレフィクスはとにかく悪だと思ってるわけだけど、この変数は「maxの文字列」を入れるためのものだから、
変数名は「maxString」にしても別におかしくない。無意味なint変数を「foo」とせず「i」とするのと同じ。
型名を省けば別の型のma
Re:IDEで開発するならハンガリアン記法捨てようぜ (スコア:0)
>変数名は「maxString」にしても別におかしくない。
おかしくないですか?
maxStringって何が入ってるんですか?
まさか文字列"MAX"とか入れてるわけじゃないですよね。
さすがにそれはないとして、次に浮かぶのは何かの値の最大値をStringで持っているのだと思いますが、
その場合はその何かの値のMAXって名前を付ければいいのでは?
たとえば身長だったらtallMaxとかmaxTallとか。
>型名を省けば別の型のmaxと同居しなきゃならない時に悩む事もある。
というのはわからないでもないですが、同じスコープの中で同じ名前で違う型の変数が必要になるのがダメな気がします。
なので、StrとかStringとかsとかの接頭語、接尾語はいりません。
Re: (スコア:0)
横からですが。
さすがにそれはないとして、次に浮かぶのは何かの値の最大値をStringで持っているのだと思いますが、
その場合はその何かの値のMAXって名前を付ければいいのでは?
たとえば身長だったらtallMaxとかmaxTallとか。
入力が文字列で、それをチェックして数値に変換するような場合ってどうしてます?
例えばウェブでフォームから最大値を入力してもらうとしたら、自分なら
みたいに書いちゃいますが、NGですかね?
Re: (スコア:0)
数値が最終形なら文字列いらない。
RangeCheckedInteger MaxFoo = RangeCheckedInteger::FromString((request.getParameter("max"));
ハンガリアン記法をするならご自由に。
Re: (スコア:0)
つうか、そんなところで裸のparseIntは止めなされ
Re: (スコア:0)
1つの問題は#2131434氏の状況で、まさにこのシチュエーションを想定してコメントを書いていました。
別の理由もあって、例えばintの派生型としてtall型を定義している状況の場合、
「tallMax」は、プレフィクスを付けているように見られてしまうという事です。
型がtallなら変数名はmaxでいいと言われるのでしょうが、まあ状況によりけりで、
tallMaxの方がコードが読み易い場合でも、妙な縛りが掛かってしまうのはおかしいだろうという事で。
これはとあるTaskクラスを作っていた時に感じたことで、変数名に「task」を入れないと、
重要な情報の抜けている変数名になっていまい、何だかなあと思ったもので。