ふざけた変数名を使う奴

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2008/08/23(土) 21:45:16
var1、2、…とか、ふざけてるの?
2008/10/07(火) 22:59:14
>>219
俺一生この髪型かよ…。
2008/10/07(火) 23:21:51
「あれ?頭切ってきた?」
2008/10/08(水) 00:17:17
たぶんfoo, bar, baz....みたいなのりだと思うんだが、
abasi, hidebu, tawabaって変数名が使われてるコードを見たことがる。
2008/10/08(水) 08:16:04
DBのフィールド名は全部ふざけてる。
ローマ字が基本なんだが、そのまま使うと文字数が多くなりすぎるため
特別なルールで短縮する。
結果、フィールド名だけでは何が格納されているかわからなくなる。
これなら、単純にF1, F2, F3とかにしたほうがましだと思う。
2008/10/08(水) 11:58:26
そして台帳へ
2008/10/08(水) 12:28:43
>>223
正規化されてない横長テーブルばっかなんじゃないの?
2008/10/08(水) 23:58:19
家の会社にカウンタにijkを使う馬鹿がいる

足りなくなったらii,ij...って具合に増やしていく…

そんなソースの修正頼まれたらこんな時間になったよ!、死ねよ禿
2008/10/09(木) 00:15:28
>>226
ループカウンタとしてしか意味の無い変数だったらi,j,kがいいんじゃないか?
kまで必要になるくらいだったら、関数を分割するけど。

昔VBで
Global i
ってあって死にそうになったことがあったが、スレ違いだな。
2008/10/09(木) 00:24:38
VBにGlobalなんてキーワードないぞ
2008/10/09(木) 00:36:37
>>227
設計通り作ってあればそうかもしれないけど、実際全然設計と違うからどれがどのルーうカウンタか分からなくなるんだ…
しかもiijとjiiが同じような部分にあって頭が痛くなる

ただの愚痴だったんだ、ごめんよ
2008/10/09(木) 00:37:15
ダウト!!
2008/10/09(木) 00:44:57
>>228
「昔のバージョンにはあった」という考えは浮かばないの?
2008/10/09(木) 00:54:32
>>230
なにが?
2008/10/09(木) 01:54:21
>229の会社ではループカウンタまで設計書に書いてあるのか?
普通そのレベルはコード書く人の自由裁量だと思うけど。


ループカウンタにローマ数字使ってたのを見たときはある意味感心したな。
i、ii、iii、iv、v・・・
そんな大量のカウンタ使ってる関数の中身がどんな有様かは書くまでもないが。
2008/10/09(木) 02:13:33

俺は命名規則をまったく守っていない。
(守らないのがポリシー)

と同時にバグを99%出さないのもポリシー
2008/10/09(木) 02:25:23
>>234
100行に1つはバグがあるって最低
2008/10/09(木) 03:22:17
>234みたいなのがいるから、まともなプログラマの苦労が絶えないわけだな。

バグがあっても可読性の高いプログラムはデバッグも保守も楽。
バグがなくても可読性の低いプログラムは保守が地獄。

プログラムの品質をバグ密度だけで測るなよ。
2008/10/09(木) 05:54:17
>>226
ループカウンタ程度でデバックが停止するおまえは
この仕事に向いて無いからはやいところ転職を考えた方がいい

>>234
自分だけは大丈夫と言う奴のためにまじめに仕事してる人がどんどん潰されていく
過去の所業が己自身を殺す時がくるまで楽しみにしてろ
2008/10/09(木) 08:58:48
>>233
今の案件では俺たちはプログラムだけで詳細設計まで設計は相手の会社が全部やることになってる
入社してからずっとこんな感じだからこれが普通と思ってた
2008/10/09(木) 09:07:18
>>238
ループカウンタがどうとかいうレベルの詳細設計なんて有り得ないレベル。
2008/10/09(木) 14:04:50
一重のループはiが定番すぎてもはや思考の必要がないという理由でiを使うけど、
二重のループになると少し複雑になるんでx/yとかcol/rowみたいなのを使うこともあるな。
三重になるとまずメソッドの抽出から考えると思う。
2008/10/09(木) 14:30:29
ループカウンタはこんな感じで、文字列はこんな感じで、という
おおざっぱな規約はあるなあ@弊社
過去にとんでも変数で苦労したかららしい
2008/10/09(木) 17:06:25
kijcのどれかを使うな俺は…
2008/10/09(木) 18:49:47
i_idx1、i_idx2、i_idx3 ・・・にしろっていうprojがあったな
先頭のiはハンガリアン
(´A`)マンドクセ
2008/10/09(木) 22:34:14
ノイズが増えれば生産性は下がりバグは増えるというのにな。
2008/10/09(木) 23:26:40
で、ループカウンタの宣言はいちいちブロック内でせず
まとめて一箇所だけにしろってんでグローバル化・・・
2008/10/10(金) 00:11:38
それじゃノイズが減るどころか拡散してるじゃねえかw
2008/10/10(金) 01:09:04
>238
それは昔でいうとアレだぞ。
プログラマが紙に書いて持ってきたプログラムを受け取って
その通りにパンチカードに穴開けてるのと同質の作業だぞ。

俺だったら発狂するな。
2008/10/10(金) 01:28:09
コーダって死滅したと思ってたのに、まだ生き残ってたのか
2008/10/10(金) 17:29:33
>>245
言語は C++/Java とかかしらん。
なぜブロック内ダメっていうことになるの?
2008/10/10(金) 18:46:36
たぶん、
「それが見やすい」と思う人たちが居て、
そんな連中の声がでかいと、そうなる
2008/10/10(金) 21:20:23
>>250
ウチにもそういう人いるな。

その人が言うには、
・ソース内でどんな変数を使うのか、まとめて一箇所で分からないと読みにくい
・見やすさなんて時や人によって変わるもんだから決めの問題でしかない
ってことらしい。そしてその人は声がでかい。
2008/10/10(金) 21:27:29
旧世代のスタンダードだわな
2008/10/10(金) 21:32:25
なんかグローバルしかなかった時代の感じがする
2008/10/10(金) 22:22:56
>>251
COBOLerか…

花金花金
2008/10/11(土) 11:58:18
グローバルループカウンタって……
再帰的関数をマルチスレッドで動かすにはどうすればいいんだ?
2008/10/11(土) 16:02:52
ミューテックスロック
257仕様書無しさん
垢版 |
2008/10/11(土) 20:33:22
>>255
インターロックなら速いんじゃね?とか思いつく
で、パイプラインを止めまくる
2008/10/17(金) 13:15:15
Dim Ia
Dim IaIa
Dim Fungurui

何を召還する気だ。
2008/10/17(金) 13:39:52
名状し難きコードが生産されているようですね。
2008/10/17(金) 14:55:26
>>258
呼び戻すな(×召還)
呼び出せ(○召喚)
2008/10/17(金) 15:33:43
桶、ちょっと魔方陣書いてくる
2008/10/17(金) 15:34:22
Dim Mahoujin As String
2008/10/17(金) 15:39:36
そこはBitmapじゃね?
2008/10/17(金) 15:56:24
いや、書かんでいいから
2008/10/17(金) 16:30:40
Dim Mahoujin As Variant

'とりあえず、明示的にいろいろやれるようにしました
2008/10/17(金) 17:44:59
だから召喚するなt


ああ、窓に!窓に!!!
2008/10/17(金) 17:56:19
なんか意味分からんし、きもいんだけど。。。
2008/10/17(金) 19:00:21
コード上にAAで埋め込まれた魔方陣とか、
縦読みの呪文とかか?w
2008/10/17(金) 21:24:33
世の中には楽譜に音符でAA描く奴もいる
2008/10/17(金) 21:37:00
ダンディだったよなあれは
2008/10/18(土) 02:14:05
さあ、iocccに行こうか
2008/10/21(火) 15:19:32
int ikko,niko,sanko;


それで何に使ってるかといえばループカウンタ('A`)
2008/10/21(火) 21:59:28
みっつめがsankonだったら許した
2008/10/24(金) 10:10:54
class tmnetwork

int utu
int tk
int kine

void getwild(void)
void lovetrain(void)

for(ge=1;〜;ge++){
for(gege=1;〜;gege++){
for(gegege=1;〜;gegegege++){
2008/10/24(金) 19:13:47
i,j,kを突破するほどの多重ループって時点で何かがおかしい。
2008/10/24(金) 21:26:23
i,j,kで足りなきゃii,iii,jj,jjj,kk,kkkもあるぜよ・・・
VB6で全部Publicで宣言されてるソースを見てびっくりしたことあるがな
2008/10/24(金) 21:33:07
四元数でも扱うつもりかよwww
2008/10/24(金) 23:06:42
kkkは危険だな
2008/10/25(土) 00:58:11
クー・クラッ…おや誰か来たようだ、こんな時間に
2008/10/25(土) 01:03:54
かっぺいこのやr
2008/10/25(土) 01:17:04
ってか三菱証券の案件で次みたいな変数名を使ったら何か文句を言われました。

Dim iCount as Integer
Dim strName as String
Dim bCheck as Boolean

変数名の頭に型の略称を使うのはこれまで普通だと思っていたのですが
この命名規則って不味いのでしょうか?

2008/10/25(土) 01:17:41
まずかないが積極的に使う理由に乏しい。
2008/10/25(土) 03:07:29
>>281
ハンガリアン記法とかいう奴?
賛美両論今でも好んで使う頭の古い人はいるが
最初に提唱したMSが、失敗だった禁止しろと今は言っている。
使って文句言われても文句言えない。

まだ知らないほど不勉強なコーダが
2chにこれるだけの知能があるとは驚いたよ。
2008/10/25(土) 03:46:20
普通に変数名つけてたら型なんかすぐに分かるけどな
2008/10/25(土) 04:41:23
システムハンガリアンだと思考にノイズが混じっちゃうんだよなあ。
極端な話こうなる。
count < max 'カウンタと最大値の比較
iCount < iMax 'iつまり整数型のカウンタとiつまり整数型の最大値の、双方とも整数型と確認した上でのカウンタと最大値の比較
訓練次第である程度上に近づけるが、最初から上使った方が楽だし確実。
2008/10/25(土) 05:22:33
それは頭が変だろ
2008/10/25(土) 06:00:21
極端すぎたか。
慣れてくるとこんな感じだろうか。
iCount < iMax 'iとiで同じ。整数。カウンタと最大値の比較
2008/10/25(土) 08:17:27
本来のハンガリアン記法は、

fooCount < fooMax 'fooのカウンタとfooの最大値の比較

barCount < fooMax 'barのカウンタとfooの最大値の比較しているから間違いだと思われ

って感じの使い方だったっけ?

オブジェクト指向言語の場合とか、名前空間がある場合とかだと
こういう記法の必要性も少なくなるのではないかと。
2008/10/25(土) 09:35:35
>>283
多分そんな感じだと思う。
>>285
の説明を読んだけどやっぱり俺には、型名+名称 をつけた変数の方がしくり来ます。

DataTableについて名前をつけると俺の場合
dtEmploy


みんな俺の命名規則に合わせてくれ。じゃないと読み辛い。
2008/10/25(土) 09:41:03
その環境の標準ライブラリに合わせとくのが無難だろうな。
iCount < strName.Length
なんてなったら意味なくなるし。
2008/10/25(土) 10:29:45
>>289
名称が動詞(Employ)って事は、そのテーブルはエンティティじゃなくて
関連を表すテーブルなんじゃね?
それが「データテーブル」だって言うのはおかしくね?
2008/10/25(土) 10:43:22
まだハンガリアンなんて生き残ってるんだね。。。
デメリットばかりで、まともにプログラム書いてれば今の時代メリットは何もないんじゃないかね。
アプリケーションハンガリアンも含めて。
2008/10/25(土) 11:43:32
長大な関数の先頭で大量に宣言された変数を覚えきれない場合でも
使用するその場で型が確認できるというメリットがあります。
2008/10/25(土) 11:49:17
ハンガリアンを捨てれば長大な関数を作りづらくなるというメリットがあります。
2008/10/25(土) 11:50:17
長大な関数な時点で敗北。
2008/10/25(土) 14:35:33
ただ脈絡の無い処理が100個ぐらい
ただある場合があるんだよなあ
2008/10/25(土) 17:20:45
dtなんて中途半端な省略プレフィックスならつけるだけ無駄

DataTable, DateTime, ...
2008/10/25(土) 18:26:58
>>292
何もないは言いすぎ。
システムハンガリアンは有用な場面も少しはあるよ。
例えば旧VBとかドトネトのフォーム上のGUI部品のように使うクラスが限られている場合、
システムハンガリアンを使うことによって

(1) 名前の簡素化
(2) 同じかあるいは関連する機能をもつ別のGUI部品との名前のバッティングの解消

という利点がある。

あと、ドトネトだとなぜか中途半端にインターフェイスにだけIをプリフィクスする
規約になっているけど、本来はクラスや構造体やenumにもプリフィクスを付けた方が
コードは読みやすいし、書き方の自由度が上がる。(プリフィクスをとったそのままを
フィールドやプロパティの名前にできる)
2008/10/25(土) 21:19:40
>>298

>GUI部品のように使うクラスが限られている場合
「GUI部品だけはハンガリアンで」って規則にするの?

変数名が短くなる程度なら、略称を使う弊害の方が大きいな。

> プリフィクスをとったそのままをフィールドやプロパティの名前にできる
これはよく分からんのだが。
と思ったけど、VBは大文字小文字を区別されないんだったっけ?

なんにせよ、仕様的に不自由な言語の場合の苦肉の策だと思う。
2008/10/25(土) 21:27:11
グローバル変数のg_やスタティック変数のs_はプレフィックスつける以外にどう区別すればいいのか
2008/10/25(土) 22:05:00
必要ならプレフィックスつけりゃいいじゃないか。

そもそもプレフィックスなんてただの楽するための技法なんだから
つけるもつけないも楽なほうを選べばいいし, 選べないなら諦めろと。
2008/10/25(土) 22:13:24
>>300
区別がつかなくなるようなコードにしなければいいんじゃない?
2008/10/25(土) 22:45:11
>>298
VBプログラマだからそれ凄く分かる。
大文字小文字が区別できたらどんなに楽なことか。
よし今度からクラスとかにはプレフィックス付けるようにするか。
2008/10/25(土) 22:55:40
VBって、宣言の大文字小文字を変えると
使っているところが一斉に変わる変な言語でそ
2008/10/25(土) 23:00:54
作業進めるうちにプレフィックスルール自体が個人個人で違ってくるんだもんなぁ・・・
2008/10/25(土) 23:04:17
>>299
>変数名が短くなる程度なら、略称を使う弊害の方が大きいな。
そんな事はない。
俺も可読性を考えず意味なく省略に走った(昔ながらの)命名法は糞だと思ってる人間ではあるが、
意味の明示度が同じなら名前は短い方が好ましいのも事実だから。

GUI部品は(1)少数のクラスを、(2)頻繁に使う分野だからbtnHogeとかtxtHoge
といった命名法が実際適合的だ。

>仕様的に不自由な言語の場合の苦肉の策
言語仕様はあまり関係ないよ。
ドトネトのようにクラス名もプロパティ名もパスカル形式にする規約だと、
例えばプロパティーの名前と、そのプロパティーの返す値の型の名前が同じだと
(割とありがちなケースだと思うけど)やっぱり混乱して分かりにくいコードになる。

やっぱりクラスや構造体もCListとかSPointみたいにプリフィクスする規約の方が
ただ一貫性があるだけじゃなくて上記の混乱が防げてよかったと思う。
2008/10/25(土) 23:04:41
どうも変数名はロジックには関係無い、

という持論の元適当に名前を付けて

コードを書き終えた後にリファクタリングを使用してあまりにも酷い変数名の場合にのみ

修正をしています。こんなスタンスの奴って多いでしょ?
2008/10/25(土) 23:24:39
GUIコントロールはサフィックスにしたな。
その方が自然に読めるし、1語目はやっぱ重要だし、拡張子みたいなもんだし。
2008/10/26(日) 00:55:18
>>306
>例えばプロパティーの名前と、そのプロパティーの返す値の型の名前が同じだと
よく分からないな。なにか例はないの?
多分VB特有のものなんだと思うけど。
2008/10/26(日) 01:27:03
>>306
>意味の明示度が同じなら名前は短い方が好ましいのも事実だから。
簡潔にするのはよいけども、略称にしてしまうというのは話が別だと思うがな。

ttp://support.microsoft.com/kb/173738/ja
をみると
・略称から元の意味が分かりにくい。
・重複する
・2、3文字減る程度のものが多い

グローバル変数や長い関数ばりばりで、変数名の長さ制限や大文字小文字区別なし。
そんな時代の遺物じゃないのかねえ。
2008/10/26(日) 01:38:55
>>310
だからどっからVBが出てくるんだよw
例って言われてもその説明で理解できないのなら多分どう言い換えても
理解できないんだと思うよ。
まあいいや。

例えばドトネトのControl.Fontが上記のような場合の一例。

ただ、言ってることが矛盾するように聞こえるかもしれないけど
こういう、クラスライブラリの使う頻度が高いクラスの使う頻度が高いプロパティとかなら
それほど混乱しないとは思う。

だが、自分で書いたFooクラスのHogeInfo型を返すプロパティの名前がHogeInfoだったりすると、
Fooクラスの内部のコードは場合によっては非常に混乱するコードになる。
特にHogeInfoが静的なメンバをもっていたりするとね。

>>309
話がかみ合わんお方だな。
プログラマ(なんでしょ)なら論理的に考えたまえよ。

>略称から元の意味が分かりにくい。(からシステムハンガリアンは禁止すべき)
これが正しいのは俺も認めている。
そしてこれが正しいのなら、この対偶も自動的に正しい。

つまり略称から元の意味十分に読み取れる限定的な場面であれば、
システムハンガリアンを忌避しなくてよい。
2008/10/26(日) 01:56:51
いつも思うんだが、お前らよくそこまで熱くなれるな。こんな糞みたいなネタで。
2008/10/26(日) 02:18:22
>>311
> 例って言われてもその説明で理解できないのなら多分どう言い換えても
> 理解できないんだと思うよ。
お前は相手が.netをあまり知らないかもとか考えてないのな。

プロパティの話は、結局クラス名もプロパティ名もパスカルケースっていう規約が問題であって、それを忌避するためのバッドノウハウだと思うよ。

> つまり略称から元の意味十分に読み取れる限定的な場面であれば、
そんな前提なんてのは割と簡単に破られてしまう、という考えはプログラマとしては大事よ。

それにそんな限定されたところだけ、例外的な命名にするってやだな。
formはfrm、frameは重複しちゃったからfraね、というのもダメっぽい。
2008/10/26(日) 02:43:23
HogeInfo型のインスタンスを返すプロパティの名前がHogeInfoだと
そのプロパティを持つクラスの中でHogeInfo.Method()みたいなのがあった場合、
それがクラスメソッドなのかインスタンスメソッドなのか一目で分からないって話?
2008/10/26(日) 07:19:10
アンカーと引用はあるけど実は見えない敵と戦ってる、て話でしょ
別に真っ向から対立することを言ってる訳じゃないのに無理矢理対立するように解釈してる気がする
316311
垢版 |
2008/10/26(日) 13:29:06
>>315
残念ならが俺もそのように感じる。
俺も基本ハンガリアンなんて使うな、って立場でその上でしかし
馬鹿の一つ覚えはどうか、と言ってるつもりなんだけど
そこを理解してもらえないみたいだね。

実際問題Windows Form上のコントロール名の命名をハンガリアンでやることの
有用性っていうのはやってみればほとんどのプログラマが納得することだと
思うんだけど。

txtFileName
fileNameTextBox

mnuEnterFileName
menuItemToEnterFileName

まあでも教条主義的に「馬鹿の一つ覚え」で食わず嫌いな奴もいるからなあ実際。

>>314
それもそうだし、やっぱり同じ名前の違うものが混在するコードというのは混乱を招く。
にもかかわらず、しばしば(Control.Fontのように)型名と同じ名前のプロパティを
作りたい場面がある。

だったらやっぱり型名をCなりSなりEなりでプリフィクスすべきだろう。
プロパティをキャメルにすることがよいアイデアとは思えない。

あと、ドトネドだと型がクラスなのか構造体なのかを強く意識する必要があるわけで、
その役にも立つ。
2008/10/26(日) 16:54:30
.netはよく知らんのだが、まあ、つけた方がいいんならつけたらいいんだろう。
そういう開発環境なんだろうね。
2008/10/26(日) 16:56:50
.NETに限らず、Webアプリのid属性とかでも同様だと思いますが。
2008/10/26(日) 18:45:25
つけたきゃつけろよ
つけたくなけりゃつけるなよ
どちらかが気に入らないならコーディングルールで縛れよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況