一文字変数を使うバカは人生の敗北者part1

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2013/03/30(土) 11:01:29.14
int i;←バカ意味わかんねーよ
2013/04/01(月) 23:47:56.25
2行にまとめろゴミ
2013/04/01(月) 23:51:53.03
一文字変数
使用禁止
159仕様書無しさん
垢版 |
2013/04/01(月) 23:54:14.57
ハムスターの話題と聞いて
2013/04/02(火) 00:16:24.55
>>157
は屑
2013/04/02(火) 00:58:20.95
>>152
ハンガリアンとはあるがハンガリーとはありませんね?
2013/04/02(火) 02:21:11.83
プログラマは人生の敗北者
2013/04/02(火) 02:39:01.34
何を今更
2013/04/02(火) 03:01:46.10
>>161
アメリカンとは書いてあるがアメリカ人とはありませんね。みたいなこと言うなよw
ハンガリアンで、ハンガリー人って意味なんだよ。
2013/04/02(火) 03:02:20.13
訂正

ハンガリアンで、「ハンガリー人」や「ハンガリーの」って意味なんだよ。
2013/04/02(火) 03:05:33.49
http://www.knonline.net/d/?date=20090515

> ハンガリー記法はマイクロソフトの技術者、チャールズ・シモニイが
> 考案し彼がハンガリー人だったのでこんな名前で呼ばれるようになりました。
>
> この人はWordなどの開発に携わった人で優れた実績を上げました。
>
>
>
> 彼が考えたハンガリー記法の本来意図は変数の種類・用途を示すことであって、
> 実は型を示すことではありませんでした。
>
> 種類というのの例をあげると、座業系などがあげられます。

> これが本来チャールズ・シモニイが意図したハンガリアン記法でした。
>
> 同じ型でも混同してはいけない変数の意味(種類)を変数名に与えるというアイデアです。
>
> これなら誰が見ても変数の意味が明確に分ります。
>
> 現在ではアプリケーションハンガリアンと呼ばれたりします。


読んでおくといいよ。
2013/04/02(火) 03:23:15.95
だめだこりゃ
2013/04/02(火) 03:24:35.22
なにがだめなの?
169おじゃばさま
垢版 |
2013/04/02(火) 08:19:35.91
型を変数名に入れる習慣は、レガシーCの業務プログラムのコーディング規約に多い。
その名残でC++のコーディング規約に入っている場合もあるが、基本的に無意味だ。
しかし無意味でもコーディング規約に入っていれば無視できない。
その場合はコーディング規約を変更する事だ。
理由と歴史を説明すれば大体変更になるが、変更出来なかった場合は、従うしかない。
まあ、普通の仕様書と同じだな。
問題があれば指摘し、それでも問題なしと判断されれば従う。
2013/04/02(火) 08:25:32.47
システムハンガリアンは最初から不要
phantom typeが使えればアプリケーションハンガリアンも不要かも
171おじゃばさま
垢版 |
2013/04/02(火) 08:40:14.61
一文字変数が禁止されている場合も、もし使いたいならコーディング規約を変更する必要がある。
しかし、現在は単語で区切に大文字を使う、理解しやすさ優先が主流なので、変更出来る可能性は低い。
禁止されていない場合は、ルール上は使用可能だ。
しかしその場合でも略号使って3文字程度にした方がいいだろう。
それ程冗長ならず、理解しやすさもそれなりに確保される。
2013/04/02(火) 09:13:37.69
ドカタとそれ以外で別々のコーディング規約を使えば
このスレの問題は解決する
2013/04/02(火) 11:30:52.99
>>172
ドカタとそれ以外が混在してるプロジェクトがほとんどなんだけど
174おじゃばさま
垢版 |
2013/04/02(火) 20:23:47.51
>>172
それでは、コーディング規約の意味がないな。

ところで一文字変数の利点は何だ?
本人が見やすいだけか?
2013/04/02(火) 20:30:30.22
どうせドカタの書いたコードなんて汎用性のかけらも無くて
書いたドカタ本人しか読まないんだから
好きにしたら良いんだよ
2013/04/02(火) 20:54:10.89
ループカウンタ程度なら i, j, k でもいいだろ
それとも TheLoopCounter0, TheLoopCounter1, TheLoopCounter2 とかを使ってるのか?
2013/04/02(火) 21:14:23.97
文系のやつらって数式でもx, y, zとか使わずに
単語使って書くじゃん?それと同じことだよ
2013/04/02(火) 21:28:54.93
プログラミング"言語"なんだから文系の書き方のほうが適切じゃね?
2013/04/02(火) 21:30:10.04
"プログラミング"言語なんだから文系の書き方のほうが適切じゃね?
2013/04/02(火) 21:38:32.19
プログラミングは数学である
2013/04/02(火) 22:22:13.47
んなこたーない
2013/04/02(火) 22:31:23.49
「言語を用いるのだからプログラミングは文系分野である」という主張が真なら、
「量子論の論文は言語を用いて書くのだから物理学は文系分野である」ということになる
183おじゃばさま
垢版 |
2013/04/02(火) 22:42:03.09
>>176
だから、それではi、jと変わらないだろう。
何のループか分かるような変数名をつけるんだよ。
1 payment = price[containerNo] * quantity;
読取れないか?
2013/04/02(火) 22:49:00.93
>>183
ループカウンタなんだから、priceという配列なりvectorなりの要素を総なめるんだろ?
その場合は i でいいんじゃね?

for (int i = 0; i < price.size(); ++i) {
 payment = price[i] * quantity;
 doSomething(payment);
}

たまたまpriceの添字がcontainerNoと一致するような仕様だったとしても、
ここでその意義を強調する必要性は薄いんじゃね?
2013/04/02(火) 23:12:18.94
理屈を言語で記述したりルールや命名規則を策定するなんてまさに文系の お仕事 じゃないか!
プログラミングなんてめんどくさい作業は文系にやらせて俺ら理系はもっとまともなことしようぜ。
理系技術者ばっかり迫害されるのなんてもうこりごりだ!
2013/04/02(火) 23:40:08.85
Stay Hungary,
Stay Foolish.
187おじゃばさま
垢版 |
2013/04/02(火) 23:54:58.29
>>184
確かに配列1つをなめるのならそれでもいいかもしれない。
しかしサンプルはprice以外にも配列があり、コンテナ数分回す想定だ。
188おじゃばさま
垢版 |
2013/04/02(火) 23:58:54.74
>>185
理系とか文系とかは学生の発想だな。
PG5年もやればそんな区別は無意味だと気が付くだろう。
2013/04/03(水) 00:57:03.05
アイム ハングリー。
2013/04/03(水) 01:03:53.06
>>176
一文字禁止に反論するときなぜいつもすごく長い変数名にするのか
なんだよ、Theってw
2013/04/03(水) 02:08:07.52
>>190
TheLoopCounter0、LoopCounter1、LoopCounter2 とかなら使ってるのか?
2013/04/03(水) 02:22:40.80
>>191
なんか残念な読解力だね
2013/04/03(水) 03:33:28.75
一文字変数名が出てきて困る場合、一文字変数名よりもそのメソッドの実装がそもそもうんkって事が多い
もちろん、中身が明確でない場合の一文字変数名なんかは糞だがな

つか、よほど頭が悪すぎる奴でもない限り、
ループカウンタや狭いスコープ内での一文字変数名が原因でコードが複雑化してるって思う奴は居ない
2013/04/03(水) 07:40:23.83
でもFizzBuzzレベルですら書けないアホも居るからなぁ
このスレの一文字変数禁止派は多分書けないし
195おじゃばさま
垢版 |
2013/04/03(水) 08:05:46.29
>>194
変数名を長く書ける人は、短くも書けるし、短く書く人は、長くも書ける。
スキルは関係ないだろう。
2013/04/03(水) 08:52:24.80
>>194
こういう、議論で勝ち目がないからって必死にレッテル貼りしてるのって
恥ずかしくないのかね?
2013/04/03(水) 09:23:15.68
能書きはいいからFizzBuzz書いてみろ
2013/04/03(水) 09:38:34.76
おらよ
i=1;main(){for(;i<31;++i){((i%3?0:printf("Fizz"))|(i%5?0:printf("Buzz")))?0:printf("%d",i);puts("");}}
2013/04/03(水) 10:43:34.81
>>198
| の右辺と左辺の評価順に依存してる
2013/04/03(水) 12:54:34.07
>>183
> 1 payment = price[containerNo] * quantity;
なんだこれ、恥ずかしくないのか。
説明してみろ。
2013/04/03(水) 13:01:05.28
>>199
C の仕様に依存していることを指摘して何の意味があるんだ?
2013/04/03(水) 13:38:56.30
Cの仕様で「未規定」の動作に依存していることが指摘されているんだが。
2013/04/03(水) 13:42:45.76
だからそれを指摘したところで意味がないだろ?
2013/04/03(水) 14:03:39.60
バグを指摘することに意味がない?
バグだらけのアプリを使い続けることに何の苦痛も感じない変な人か?
2013/04/03(水) 14:52:47.73
そもそも未規定ではないし
2013/04/03(水) 15:13:50.92
JIS X 3010-1993 より
6.3 式
(略)
構文で示されているか(注35),又は(関数呼出し演算子 (),&&,||,? : 及びコンマ演算子に
対して)後で規定する場合を除いて,部分式の評価順序及び副作用が生じる順序は
未規定とする。
(以下略)
2013/04/03(水) 15:16:06.45
そこ全然違う話
2013/04/03(水) 16:15:02.86
じゃあ、| の右辺と左辺の評価順が規定されているという証拠を出せよ。
2013/04/03(水) 17:20:52.18
言語仕様自体は未規定でも各コンパイラが決めてるだろ
2013/04/03(水) 19:32:48.03
コンパイラが決めてる(決めなきゃならない)のは、規格で「処理系定義」となっていること。
「未規定」の事項は、例えばこの例なら左右のどちらが先かランダムであっても、規格上は問題ない。
2013/04/03(水) 19:47:53.10
はいはい
じゃあそのランダムな処理系の具体例を出して
2013/04/03(水) 19:57:38.01
だから未規定じゃないってば
2013/04/03(水) 20:36:38.57
>>211
バージョンアップで非公開仕様が変わって嵌ったことがない幸せな人なんだねw

>>212
| と || を混同してない?
2013/04/03(水) 20:54:09.01
しつこいなぁ
キミが信じようが信じまいが、どんなコンパイラでも同じ解釈なんだよ
2013/04/03(水) 20:59:18.64
>>213
非公開仕様じゃないし
2013/04/03(水) 21:08:58.53
じゃあ | の左右の評価順序を、コンパイラの仕様としてドキュメンテーションされてる例があるなら出してみろよ。
どっかの言語設計者みたいにソースコードが仕様とか言うなよw
2013/04/03(水) 21:12:40.88
なんでもかんでもドキュメンテーションされている世界、いいよね。
2013/04/03(水) 21:13:51.85
>>216
>>211
2013/04/03(水) 21:16:03.22
規格とdefacto standardどっちが強い的な話?
2013/04/03(水) 21:22:03.64
ランダムであっても問題はない それはわかる
だが動きがランダムになるコンパイラはないだろ
あるなら持って来いよ
可哀想だからバージョンアップで変わった例でも容認してやる
さっさと持って来い
221おじゃばさま
垢版 |
2013/04/03(水) 21:35:00.81
>>200
実際に使われるのは配列をなめるパターンが多いが、
ループは必ず1つの配列をなめるために使われるとは限らない。
そのため、配列とは無関係な名前をカウンタに使った。
カウンタには配列が分かる名前でなく、ループが分かる名前にすべきと言いたかった。
もし1つの配列をなめる処理ならは、cntでもいいと思う。
2013/04/03(水) 21:38:57.71
>>221
cnt?countryの略か?なんで国が回るんだ?
223おじゃばさま
垢版 |
2013/04/03(水) 21:45:23.62
>>222
カウンタだよ、iとおなじ。
俺はiじゃなくて、cntつかう。
2013/04/03(水) 21:48:38.61
>>223
だったらcounterだろ。何cntって。countinueだかcountryだか
わからんじゃん。バカ?
2013/04/03(水) 21:51:38.19
cntならだいぶ市民権を得ていると思うが、
自分勝手に単語略すのはやめてほしいよな。
2013/04/03(水) 21:58:55.46
cntがcountryだとwバカだこいつw
227おじゃばさま
垢版 |
2013/04/03(水) 22:08:02.35
>>220
俺が昔調べた限りでは、評価順は左から右だった。
調べたのは、gcc/Linux、cc/Solaris、aCC/HP-UX、VC/Windows。
不定要素で違いがあったのは、関数引数の実行順ぐらいだったな。
2013/04/03(水) 22:12:42.58
「非公開仕様じゃないし」ていうから「公開されてる仕様ある」んだろ?
229おじゃばさま
垢版 |
2013/04/03(水) 22:18:23.04
結局、一文字変数の利点は、本人が見やすいだけか?
2013/04/03(水) 22:34:15.41
昔からの慣例なんだから、別に問題ない

それを否定する目新しい事のほぼ100%は、すたれて行く
2013/04/03(水) 22:34:55.85
他人も見やすい
2013/04/03(水) 22:36:02.99
昔からの慣例とか、せめて100年は続いてから言ってくれよ。
現状慣例でも何でもなく、そういうのが読みやすい奇特な人が
いて、奇特な人の信者がいるというだけのこと。
2013/04/03(水) 22:47:45.29
AND/ORの評価順はUNIXシェルが左からって規定されてるからそれで一般的なんじゃないの
2013/04/03(水) 23:08:46.92
>>232
ドッグイヤー換算なら十分じゃね?
2013/04/03(水) 23:54:03.39
何でもかんでも1文字を否定する人は鳥頭なん?
つか、寿命の短いローカル変数に冗長な名前を付ける事は、
手を抜いて短い名前にするメリットに勝るほどの利点なくね。
2013/04/04(木) 01:37:16.77
偏るのイクナイ
2013/04/04(木) 01:46:50.59
行数の少ないループカウンターでのみ一文字はありって話しだったのに
他の変数まで一文字にするって話なら俺は乗れんわ
2013/04/04(木) 07:48:28.64
分かりやすいって話なら、日本語使えよ
239おじゃばさま
垢版 |
2013/04/04(木) 08:17:54.57
>>235
よく分からんが、一文字変数の方がコーディングしやすいって事かな。
2013/04/04(木) 08:39:07.85
>>111
有識者がコードレビューする事で
イレギュラーに関しては確実に潰せるよ

ルールに従えないなら製造工程から外すしか無い
241おじゃばさま
垢版 |
2013/04/04(木) 20:26:27.34
>>240
警告してもコーディング規約に従わない人は、
時間外で修正させれば良い。
俺も昔やらされた。
2013/04/04(木) 21:51:45.39
ネストしたループで配列の添え字に i と j を使うのは禁止。
ii 、jj ならまだタイポを見つけられるがそれでも同時に使うのは控える事。
2013/04/05(金) 01:33:28.22
3D座標系以外のネストしたループは大抵別の方法がある
2013/04/05(金) 10:57:04.37
int count;
for(count=0;count<10;count++)
var = array[count];

めちゃくちゃコード効率悪いね
i,j,kは添字の基本ルールだよ
2013/04/05(金) 12:36:01.52
プログラミングは数学なんだから、慣習も数学に則ったものが多いのだよ
i, j, kの使用は集合論からの慣習
ほんと、馬鹿な文系は迷惑だ
2013/04/05(金) 14:23:44.91
自分とわかるやつだけわかればいい
コミュ力のない理系の考えそうなことだ
2013/04/05(金) 14:38:39.38
コミュ力とか言って逃げる奴が来ましたーw
248仕様書無しさん
垢版 |
2013/04/05(金) 15:40:39.09
最後にiは勝つ
249おじゃばさま
垢版 |
2013/04/05(金) 19:59:31.67
>>244
今はそんな使い方はしないな。
foreach(var in array)

逆に言うとカウンタを使う時は、
単純なループではないから、
分かる名前を付けた方がいいだろう。
250おじゃばさま
垢版 |
2013/04/05(金) 20:04:49.97
PGには理系の能力も文系の能力も必要だから、両方やれよ。
いつまでも学生みたいな事、言ってるなよ。
2013/04/05(金) 22:25:54.12
>>249
C言語はそういう書き方はできない。

最近の言語ではそういう省略された書き方ができる。
その省略されてもいいようなものに、
ちゃんとした名前をつけろと言っているわけだ。

ここからもループ変数の名前は
適当でいいことがわかる。
252おじゃばさま
垢版 |
2013/04/05(金) 22:48:23.67
>>251
俺も配列をなめるだけのカウンタなら、cntでいいと思う。

ちなみに、
C#やC++はC言語に入らないのか?
2013/04/05(金) 22:50:38.52
その通りだな
ループ変数は単独で用いられるものではなく、配列等とセットで意味をなすもの
array[i] で意味が分かれば十分
254おじゃばさま
垢版 |
2013/04/05(金) 23:01:54.94
>>253
でもiは使わないな。
入門C言語で勉強した新人っぽい。
2013/04/05(金) 23:23:19.45
i はよく見るが cnt なんて見たことないな
2013/04/05(金) 23:37:15.70
cntって二文字しか節約できてないのだが
予約語回避なのか?w
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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