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

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2013/03/30(土) 11:01:29.14
int i;←バカ意味わかんねーよ
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
2013/04/05(金) 23:55:08.23
最近のC++はforeach使えるよ
258おじゃばさま
垢版 |
2013/04/06(土) 07:20:38.48
>>256
これは個人的な趣味だが、
countはフィールド変数や、メソッドの一部に使い、cntは自動変数に使っている。
2013/04/06(土) 08:44:30.44
ぶっちゃけ3文字略馬鹿のほうが一文字変数よりうざいな
cntとかflgとかtmpとか使ってる奴のコードは大抵解析が面倒なコードになってるイメージある

なんていうか、そういう名前を好んで使う奴って、
何のカウンタなのか、何のフラグなのかをコードで表現してないコード書きまくるから、解析に手間かかるんだよな
260仕様書無しさん
垢版 |
2013/04/06(土) 08:55:34.32
for で i を使うのを玄人っぽくないからって理由で否定してる人から滲み出るにわかっぽさ感じる

実際問題、一文字変数名にしても俺々略字にしても、それ自体は問題じゃない
なにが格納されててどう使われてるのかが、すぐに読み解ければローカル変数名なんて何でも構わん

重要なのは、後から前情報なしでコードを見て脳内で仕様に戻す作業がどれくらいやりやすいかってとこだろ

昨今の開発環境じゃ、メモリ確保とか開放なんかはきっちり意識する必要少ないし、
メソッド分けて呼びまくったりもパフォーマンスに大きな差なんて出ない

省略された変数名が把握しづらくてコードの見通しが悪いようなら、
まずは変数名を変更するよりスコープの狭いメソッドに処理を分割するほうが、リファクタリングとしては正解
261おじゃばさま
垢版 |
2013/04/06(土) 10:44:44.67
>>260
コードが長くなったら、メソッドに分割しろって言ってる?
2013/04/06(土) 10:55:55.45
for(int OneTimeLoopCounter=0;OneTimeLoopCounter<100;OneTimeLoopCounter++){

}

String u; // ログインユーザID
2013/04/06(土) 12:28:05.84
極端な例だけで考えるのは否定派の頭悪いのと同レベル
2013/04/06(土) 15:32:35.31
コーディング規約なんて飾りです
265おじゃばさま
垢版 |
2013/04/06(土) 20:38:28.46
チームで新規のプロジェクトをやる時は、誰かが最初にサンプルプログラムを作る。
そのサンプルはコーディング規約をクリアし、新人にも理解しやすい物ではなくてはならない。
当然、ヘッダと各種コメントも記載するし、代表的な処理の部分を作る。
これをベースに皆がコーディングするので重要だ。
266仕様書無しさん
垢版 |
2013/04/06(土) 20:38:35.95
i,j,kをループ変数として使うのは、デフォです。
cntも偶に使うな。
俺は[]の中にLoopなんて使いたくないな。
何処を指しているかが掴みづらくなる。
267おじゃばさま
垢版 |
2013/04/06(土) 21:03:04.66
>>266
Loopって変数名か?
268おじゃばさま
垢版 |
2013/04/06(土) 21:38:38.90
じゃ、単純なループのカウンタにi、jは許容で、それ以外は一文字変数は非許容という事で。
2013/04/06(土) 21:44:37.53
一文字変数名で分からなくなるよう糞コードだったら、そのコード自体がウンコードってだけだろ
見通しが格段に悪くなる使い方なら何文字だろうが糞だし、見通しがよければどんな略でも構わん
ループだけOKとかそういう変な視点でアホな事言ってる奴等はいったいどういう頭してるんだ
2013/04/06(土) 21:46:11.36
こんな議論を延々やってるくらい、時間に無頓着な連中が、
一文字変数を全否定している。

クソ下らんことをさも画期的な方法論みたいに騒ぎ立てて、
みっともないったらありゃしない。

どうせしばらくしたら、また違う方法論を声高に叫んでるに
違いない。
2013/04/06(土) 21:50:52.01
<こんな議論を延々やってるくらい、時間に無頓着な連中が、
<一文字変数を全否定している。

どちらかというと肯定派のほうが熱弁を振るっているように見えますが
2013/04/06(土) 22:01:33.95
>>269
一文字なら普通にわかんなくなるだろ
どんだけ簡単なプログラムばっか書いてんだよ
2013/04/06(土) 22:04:08.45
>>270
スレが伸びるのは意見が均衡してるってことだよ
熱くなってるのは両方ともだろ
「否定派は時間に無頓着、肯定派は時間の使い方が上手い」にはならんだろ
2013/04/06(土) 22:05:23.57
>>272
複雑な問題を簡単に理解出来るところまで細分化する事がソフトウェアの設計だ
275仕様書無しさん
垢版 |
2013/04/06(土) 22:24:24.59
>>267
予約語になっている言語もあれば、変数名として使える言語もあるだろ。
俺は、[]の中に5文字以上の変数は使いたくない
2013/04/06(土) 22:25:57.96
>>268
元々はそこすら認められないアホがたてたスレなんだが?
議論してるのは「単純なループのカウンタにi、jは許容」できるかできないかってこと
だからおまえはズレてると言ってるんだよ
さっさと巣へ帰れ
2013/04/06(土) 22:25:59.95
>>272
使ってる言語や開発環境にもよるが、OOPが一般的になった以降に出た言語使ってるなら、
よほど冗長なメソッド作ってる馬鹿じゃない限り、複雑で読み解けない処理なんて書く機会ないだろ。

スキルのない初心者とか、使えないオッサンは、そんな感じの多機能メソッドみたいな糞コード書いてたりするけど、
あんたは別にそういうコード書いてるわけじゃないんだろ?
それとも組み込み業界だったり、制限きついハード向けの、パフォーマンス要求の高いゲームとか作ってる系の人?
278仕様書無しさん
垢版 |
2013/04/06(土) 22:29:04.87
配列自体あんまり使わないっていうか、使う場合はニッチな処理くらいだから、
大抵スコープ狭いし凝った変数名をindexの変数名として使う機会ないな
集合データを扱うならコレクション使うし
279仕様書無しさん
垢版 |
2013/04/06(土) 22:32:17.85
ループのカウンタに5文字以上宛てるって、
ただの繰り返しに意味なんて殆どないだろ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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