一文字変数を使うバカは人生の敗北者part1
■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
2013/03/30(土) 11:01:29.14 int i;←バカ意味わかんねーよ
159仕様書無しさん
2013/04/01(月) 23:54:14.57 ハムスターの話題と聞いて
162仕様書無しさん
2013/04/02(火) 02:21:11.83 プログラマは人生の敗北者
163仕様書無しさん
2013/04/02(火) 02:39:01.34 何を今更
164仕様書無しさん
2013/04/02(火) 03:01:46.10165仕様書無しさん
2013/04/02(火) 03:02:20.13 訂正
ハンガリアンで、「ハンガリー人」や「ハンガリーの」って意味なんだよ。
ハンガリアンで、「ハンガリー人」や「ハンガリーの」って意味なんだよ。
166仕様書無しさん
2013/04/02(火) 03:05:33.49 http://www.knonline.net/d/?date=20090515
> ハンガリー記法はマイクロソフトの技術者、チャールズ・シモニイが
> 考案し彼がハンガリー人だったのでこんな名前で呼ばれるようになりました。
>
> この人はWordなどの開発に携わった人で優れた実績を上げました。
>
>
>
> 彼が考えたハンガリー記法の本来意図は変数の種類・用途を示すことであって、
> 実は型を示すことではありませんでした。
>
> 種類というのの例をあげると、座業系などがあげられます。
> これが本来チャールズ・シモニイが意図したハンガリアン記法でした。
>
> 同じ型でも混同してはいけない変数の意味(種類)を変数名に与えるというアイデアです。
>
> これなら誰が見ても変数の意味が明確に分ります。
>
> 現在ではアプリケーションハンガリアンと呼ばれたりします。
読んでおくといいよ。
> ハンガリー記法はマイクロソフトの技術者、チャールズ・シモニイが
> 考案し彼がハンガリー人だったのでこんな名前で呼ばれるようになりました。
>
> この人はWordなどの開発に携わった人で優れた実績を上げました。
>
>
>
> 彼が考えたハンガリー記法の本来意図は変数の種類・用途を示すことであって、
> 実は型を示すことではありませんでした。
>
> 種類というのの例をあげると、座業系などがあげられます。
> これが本来チャールズ・シモニイが意図したハンガリアン記法でした。
>
> 同じ型でも混同してはいけない変数の意味(種類)を変数名に与えるというアイデアです。
>
> これなら誰が見ても変数の意味が明確に分ります。
>
> 現在ではアプリケーションハンガリアンと呼ばれたりします。
読んでおくといいよ。
167仕様書無しさん
2013/04/02(火) 03:23:15.95 だめだこりゃ
168仕様書無しさん
2013/04/02(火) 03:24:35.22 なにがだめなの?
169おじゃばさま
2013/04/02(火) 08:19:35.91 型を変数名に入れる習慣は、レガシーCの業務プログラムのコーディング規約に多い。
その名残でC++のコーディング規約に入っている場合もあるが、基本的に無意味だ。
しかし無意味でもコーディング規約に入っていれば無視できない。
その場合はコーディング規約を変更する事だ。
理由と歴史を説明すれば大体変更になるが、変更出来なかった場合は、従うしかない。
まあ、普通の仕様書と同じだな。
問題があれば指摘し、それでも問題なしと判断されれば従う。
その名残でC++のコーディング規約に入っている場合もあるが、基本的に無意味だ。
しかし無意味でもコーディング規約に入っていれば無視できない。
その場合はコーディング規約を変更する事だ。
理由と歴史を説明すれば大体変更になるが、変更出来なかった場合は、従うしかない。
まあ、普通の仕様書と同じだな。
問題があれば指摘し、それでも問題なしと判断されれば従う。
170仕様書無しさん
2013/04/02(火) 08:25:32.47 システムハンガリアンは最初から不要
phantom typeが使えればアプリケーションハンガリアンも不要かも
phantom typeが使えればアプリケーションハンガリアンも不要かも
171おじゃばさま
2013/04/02(火) 08:40:14.61 一文字変数が禁止されている場合も、もし使いたいならコーディング規約を変更する必要がある。
しかし、現在は単語で区切に大文字を使う、理解しやすさ優先が主流なので、変更出来る可能性は低い。
禁止されていない場合は、ルール上は使用可能だ。
しかしその場合でも略号使って3文字程度にした方がいいだろう。
それ程冗長ならず、理解しやすさもそれなりに確保される。
しかし、現在は単語で区切に大文字を使う、理解しやすさ優先が主流なので、変更出来る可能性は低い。
禁止されていない場合は、ルール上は使用可能だ。
しかしその場合でも略号使って3文字程度にした方がいいだろう。
それ程冗長ならず、理解しやすさもそれなりに確保される。
172仕様書無しさん
2013/04/02(火) 09:13:37.69 ドカタとそれ以外で別々のコーディング規約を使えば
このスレの問題は解決する
このスレの問題は解決する
174おじゃばさま
2013/04/02(火) 20:23:47.51175仕様書無しさん
2013/04/02(火) 20:30:30.22 どうせドカタの書いたコードなんて汎用性のかけらも無くて
書いたドカタ本人しか読まないんだから
好きにしたら良いんだよ
書いたドカタ本人しか読まないんだから
好きにしたら良いんだよ
176仕様書無しさん
2013/04/02(火) 20:54:10.89 ループカウンタ程度なら i, j, k でもいいだろ
それとも TheLoopCounter0, TheLoopCounter1, TheLoopCounter2 とかを使ってるのか?
それとも TheLoopCounter0, TheLoopCounter1, TheLoopCounter2 とかを使ってるのか?
177仕様書無しさん
2013/04/02(火) 21:14:23.97 文系のやつらって数式でもx, y, zとか使わずに
単語使って書くじゃん?それと同じことだよ
単語使って書くじゃん?それと同じことだよ
178仕様書無しさん
2013/04/02(火) 21:28:54.93 プログラミング"言語"なんだから文系の書き方のほうが適切じゃね?
179仕様書無しさん
2013/04/02(火) 21:30:10.04 "プログラミング"言語なんだから文系の書き方のほうが適切じゃね?
180仕様書無しさん
2013/04/02(火) 21:38:32.19 プログラミングは数学である
181仕様書無しさん
2013/04/02(火) 22:22:13.47 んなこたーない
182仕様書無しさん
2013/04/02(火) 22:31:23.49 「言語を用いるのだからプログラミングは文系分野である」という主張が真なら、
「量子論の論文は言語を用いて書くのだから物理学は文系分野である」ということになる
「量子論の論文は言語を用いて書くのだから物理学は文系分野である」ということになる
183おじゃばさま
2013/04/02(火) 22:42:03.09 >>176
だから、それではi、jと変わらないだろう。
何のループか分かるような変数名をつけるんだよ。
1 payment = price[containerNo] * quantity;
読取れないか?
だから、それではi、jと変わらないだろう。
何のループか分かるような変数名をつけるんだよ。
1 payment = price[containerNo] * quantity;
読取れないか?
184仕様書無しさん
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と一致するような仕様だったとしても、
ここでその意義を強調する必要性は薄いんじゃね?
ループカウンタなんだから、priceという配列なりvectorなりの要素を総なめるんだろ?
その場合は i でいいんじゃね?
for (int i = 0; i < price.size(); ++i) {
payment = price[i] * quantity;
doSomething(payment);
}
たまたまpriceの添字がcontainerNoと一致するような仕様だったとしても、
ここでその意義を強調する必要性は薄いんじゃね?
185仕様書無しさん
2013/04/02(火) 23:12:18.94 理屈を言語で記述したりルールや命名規則を策定するなんてまさに文系の お仕事 じゃないか!
プログラミングなんてめんどくさい作業は文系にやらせて俺ら理系はもっとまともなことしようぜ。
理系技術者ばっかり迫害されるのなんてもうこりごりだ!
プログラミングなんてめんどくさい作業は文系にやらせて俺ら理系はもっとまともなことしようぜ。
理系技術者ばっかり迫害されるのなんてもうこりごりだ!
186仕様書無しさん
2013/04/02(火) 23:40:08.85 Stay Hungary,
Stay Foolish.
Stay Foolish.
187おじゃばさま
2013/04/02(火) 23:54:58.29188おじゃばさま
2013/04/02(火) 23:58:54.74189仕様書無しさん
2013/04/03(水) 00:57:03.05 アイム ハングリー。
193仕様書無しさん
2013/04/03(水) 03:33:28.75 一文字変数名が出てきて困る場合、一文字変数名よりもそのメソッドの実装がそもそもうんkって事が多い
もちろん、中身が明確でない場合の一文字変数名なんかは糞だがな
つか、よほど頭が悪すぎる奴でもない限り、
ループカウンタや狭いスコープ内での一文字変数名が原因でコードが複雑化してるって思う奴は居ない
もちろん、中身が明確でない場合の一文字変数名なんかは糞だがな
つか、よほど頭が悪すぎる奴でもない限り、
ループカウンタや狭いスコープ内での一文字変数名が原因でコードが複雑化してるって思う奴は居ない
194仕様書無しさん
2013/04/03(水) 07:40:23.83 でもFizzBuzzレベルですら書けないアホも居るからなぁ
このスレの一文字変数禁止派は多分書けないし
このスレの一文字変数禁止派は多分書けないし
195おじゃばさま
2013/04/03(水) 08:05:46.29197仕様書無しさん
2013/04/03(水) 09:23:15.68 能書きはいいからFizzBuzz書いてみろ
198仕様書無しさん
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("");}}
i=1;main(){for(;i<31;++i){((i%3?0:printf("Fizz"))|(i%5?0:printf("Buzz")))?0:printf("%d",i);puts("");}}
200仕様書無しさん
2013/04/03(水) 12:54:34.07202仕様書無しさん
2013/04/03(水) 13:38:56.30 Cの仕様で「未規定」の動作に依存していることが指摘されているんだが。
203仕様書無しさん
2013/04/03(水) 13:42:45.76 だからそれを指摘したところで意味がないだろ?
204仕様書無しさん
2013/04/03(水) 14:03:39.60 バグを指摘することに意味がない?
バグだらけのアプリを使い続けることに何の苦痛も感じない変な人か?
バグだらけのアプリを使い続けることに何の苦痛も感じない変な人か?
205仕様書無しさん
2013/04/03(水) 14:52:47.73 そもそも未規定ではないし
206仕様書無しさん
2013/04/03(水) 15:13:50.92 JIS X 3010-1993 より
6.3 式
(略)
構文で示されているか(注35),又は(関数呼出し演算子 (),&&,||,? : 及びコンマ演算子に
対して)後で規定する場合を除いて,部分式の評価順序及び副作用が生じる順序は
未規定とする。
(以下略)
6.3 式
(略)
構文で示されているか(注35),又は(関数呼出し演算子 (),&&,||,? : 及びコンマ演算子に
対して)後で規定する場合を除いて,部分式の評価順序及び副作用が生じる順序は
未規定とする。
(以下略)
207仕様書無しさん
2013/04/03(水) 15:16:06.45 そこ全然違う話
208仕様書無しさん
2013/04/03(水) 16:15:02.86 じゃあ、| の右辺と左辺の評価順が規定されているという証拠を出せよ。
209仕様書無しさん
2013/04/03(水) 17:20:52.18 言語仕様自体は未規定でも各コンパイラが決めてるだろ
210仕様書無しさん
2013/04/03(水) 19:32:48.03 コンパイラが決めてる(決めなきゃならない)のは、規格で「処理系定義」となっていること。
「未規定」の事項は、例えばこの例なら左右のどちらが先かランダムであっても、規格上は問題ない。
「未規定」の事項は、例えばこの例なら左右のどちらが先かランダムであっても、規格上は問題ない。
211仕様書無しさん
2013/04/03(水) 19:47:53.10 はいはい
じゃあそのランダムな処理系の具体例を出して
じゃあそのランダムな処理系の具体例を出して
212仕様書無しさん
2013/04/03(水) 19:57:38.01 だから未規定じゃないってば
213仕様書無しさん
2013/04/03(水) 20:36:38.57214仕様書無しさん
2013/04/03(水) 20:54:09.01 しつこいなぁ
キミが信じようが信じまいが、どんなコンパイラでも同じ解釈なんだよ
キミが信じようが信じまいが、どんなコンパイラでも同じ解釈なんだよ
216仕様書無しさん
2013/04/03(水) 21:08:58.53 じゃあ | の左右の評価順序を、コンパイラの仕様としてドキュメンテーションされてる例があるなら出してみろよ。
どっかの言語設計者みたいにソースコードが仕様とか言うなよw
どっかの言語設計者みたいにソースコードが仕様とか言うなよw
217仕様書無しさん
2013/04/03(水) 21:12:40.88 なんでもかんでもドキュメンテーションされている世界、いいよね。
219仕様書無しさん
2013/04/03(水) 21:16:03.22 規格とdefacto standardどっちが強い的な話?
220仕様書無しさん
2013/04/03(水) 21:22:03.64 ランダムであっても問題はない それはわかる
だが動きがランダムになるコンパイラはないだろ
あるなら持って来いよ
可哀想だからバージョンアップで変わった例でも容認してやる
さっさと持って来い
だが動きがランダムになるコンパイラはないだろ
あるなら持って来いよ
可哀想だからバージョンアップで変わった例でも容認してやる
さっさと持って来い
221おじゃばさま
2013/04/03(水) 21:35:00.81 >>200
実際に使われるのは配列をなめるパターンが多いが、
ループは必ず1つの配列をなめるために使われるとは限らない。
そのため、配列とは無関係な名前をカウンタに使った。
カウンタには配列が分かる名前でなく、ループが分かる名前にすべきと言いたかった。
もし1つの配列をなめる処理ならは、cntでもいいと思う。
実際に使われるのは配列をなめるパターンが多いが、
ループは必ず1つの配列をなめるために使われるとは限らない。
そのため、配列とは無関係な名前をカウンタに使った。
カウンタには配列が分かる名前でなく、ループが分かる名前にすべきと言いたかった。
もし1つの配列をなめる処理ならは、cntでもいいと思う。
223おじゃばさま
2013/04/03(水) 21:45:23.62225仕様書無しさん
2013/04/03(水) 21:51:38.19 cntならだいぶ市民権を得ていると思うが、
自分勝手に単語略すのはやめてほしいよな。
自分勝手に単語略すのはやめてほしいよな。
226仕様書無しさん
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。
不定要素で違いがあったのは、関数引数の実行順ぐらいだったな。
俺が昔調べた限りでは、評価順は左から右だった。
調べたのは、gcc/Linux、cc/Solaris、aCC/HP-UX、VC/Windows。
不定要素で違いがあったのは、関数引数の実行順ぐらいだったな。
228仕様書無しさん
2013/04/03(水) 22:12:42.58 「非公開仕様じゃないし」ていうから「公開されてる仕様ある」んだろ?
229おじゃばさま
2013/04/03(水) 22:18:23.04 結局、一文字変数の利点は、本人が見やすいだけか?
230仕様書無しさん
2013/04/03(水) 22:34:15.41 昔からの慣例なんだから、別に問題ない
それを否定する目新しい事のほぼ100%は、すたれて行く
それを否定する目新しい事のほぼ100%は、すたれて行く
231仕様書無しさん
2013/04/03(水) 22:34:55.85 他人も見やすい
232仕様書無しさん
2013/04/03(水) 22:36:02.99 昔からの慣例とか、せめて100年は続いてから言ってくれよ。
現状慣例でも何でもなく、そういうのが読みやすい奇特な人が
いて、奇特な人の信者がいるというだけのこと。
現状慣例でも何でもなく、そういうのが読みやすい奇特な人が
いて、奇特な人の信者がいるというだけのこと。
233仕様書無しさん
2013/04/03(水) 22:47:45.29 AND/ORの評価順はUNIXシェルが左からって規定されてるからそれで一般的なんじゃないの
235仕様書無しさん
2013/04/03(水) 23:54:03.39 何でもかんでも1文字を否定する人は鳥頭なん?
つか、寿命の短いローカル変数に冗長な名前を付ける事は、
手を抜いて短い名前にするメリットに勝るほどの利点なくね。
つか、寿命の短いローカル変数に冗長な名前を付ける事は、
手を抜いて短い名前にするメリットに勝るほどの利点なくね。
236仕様書無しさん
2013/04/04(木) 01:37:16.77 偏るのイクナイ
237仕様書無しさん
2013/04/04(木) 01:46:50.59 行数の少ないループカウンターでのみ一文字はありって話しだったのに
他の変数まで一文字にするって話なら俺は乗れんわ
他の変数まで一文字にするって話なら俺は乗れんわ
238仕様書無しさん
2013/04/04(木) 07:48:28.64 分かりやすいって話なら、日本語使えよ
239おじゃばさま
2013/04/04(木) 08:17:54.57 >>235
よく分からんが、一文字変数の方がコーディングしやすいって事かな。
よく分からんが、一文字変数の方がコーディングしやすいって事かな。
241おじゃばさま
2013/04/04(木) 20:26:27.34242仕様書無しさん
2013/04/04(木) 21:51:45.39 ネストしたループで配列の添え字に i と j を使うのは禁止。
ii 、jj ならまだタイポを見つけられるがそれでも同時に使うのは控える事。
ii 、jj ならまだタイポを見つけられるがそれでも同時に使うのは控える事。
243仕様書無しさん
2013/04/05(金) 01:33:28.22 3D座標系以外のネストしたループは大抵別の方法がある
244仕様書無しさん
2013/04/05(金) 10:57:04.37 int count;
for(count=0;count<10;count++)
var = array[count];
めちゃくちゃコード効率悪いね
i,j,kは添字の基本ルールだよ
for(count=0;count<10;count++)
var = array[count];
めちゃくちゃコード効率悪いね
i,j,kは添字の基本ルールだよ
245仕様書無しさん
2013/04/05(金) 12:36:01.52 プログラミングは数学なんだから、慣習も数学に則ったものが多いのだよ
i, j, kの使用は集合論からの慣習
ほんと、馬鹿な文系は迷惑だ
i, j, kの使用は集合論からの慣習
ほんと、馬鹿な文系は迷惑だ
246仕様書無しさん
2013/04/05(金) 14:23:44.91 自分とわかるやつだけわかればいい
コミュ力のない理系の考えそうなことだ
コミュ力のない理系の考えそうなことだ
247仕様書無しさん
2013/04/05(金) 14:38:39.38 コミュ力とか言って逃げる奴が来ましたーw
248仕様書無しさん
2013/04/05(金) 15:40:39.09 最後にiは勝つ
249おじゃばさま
2013/04/05(金) 19:59:31.67250おじゃばさま
2013/04/05(金) 20:04:49.97 PGには理系の能力も文系の能力も必要だから、両方やれよ。
いつまでも学生みたいな事、言ってるなよ。
いつまでも学生みたいな事、言ってるなよ。
251仕様書無しさん
2013/04/05(金) 22:25:54.12 >>249
C言語はそういう書き方はできない。
最近の言語ではそういう省略された書き方ができる。
その省略されてもいいようなものに、
ちゃんとした名前をつけろと言っているわけだ。
ここからもループ変数の名前は
適当でいいことがわかる。
C言語はそういう書き方はできない。
最近の言語ではそういう省略された書き方ができる。
その省略されてもいいようなものに、
ちゃんとした名前をつけろと言っているわけだ。
ここからもループ変数の名前は
適当でいいことがわかる。
252おじゃばさま
2013/04/05(金) 22:48:23.67253仕様書無しさん
2013/04/05(金) 22:50:38.52 その通りだな
ループ変数は単独で用いられるものではなく、配列等とセットで意味をなすもの
array[i] で意味が分かれば十分
ループ変数は単独で用いられるものではなく、配列等とセットで意味をなすもの
array[i] で意味が分かれば十分
254おじゃばさま
2013/04/05(金) 23:01:54.94255仕様書無しさん
2013/04/05(金) 23:23:19.45 i はよく見るが cnt なんて見たことないな
256仕様書無しさん
2013/04/05(金) 23:37:15.70 cntって二文字しか節約できてないのだが
予約語回避なのか?w
予約語回避なのか?w
257仕様書無しさん
2013/04/05(金) 23:55:08.23 最近のC++はforeach使えるよ
258おじゃばさま
2013/04/06(土) 07:20:38.48259仕様書無しさん
2013/04/06(土) 08:44:30.44 ぶっちゃけ3文字略馬鹿のほうが一文字変数よりうざいな
cntとかflgとかtmpとか使ってる奴のコードは大抵解析が面倒なコードになってるイメージある
なんていうか、そういう名前を好んで使う奴って、
何のカウンタなのか、何のフラグなのかをコードで表現してないコード書きまくるから、解析に手間かかるんだよな
cntとかflgとかtmpとか使ってる奴のコードは大抵解析が面倒なコードになってるイメージある
なんていうか、そういう名前を好んで使う奴って、
何のカウンタなのか、何のフラグなのかをコードで表現してないコード書きまくるから、解析に手間かかるんだよな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【高市首相】「日本人が日本各地を旅行するのも大切」 中国からの渡航自粛巡り [ぐれ★]
- 【野球】WBC、録画放送含め地上波中継なし (ネットフリックス) ★3 [阿弥陀ヶ峰★]
- 【東京・赤坂の“個室サウナ店夫婦死亡火災” 】妻を守るため…夫が妻に覆いかぶさって倒れる [ぐれ★]
- 町山智浩「日本のパンダ経済効果は308億円」…「…いらない」と言ってる人達は、パンダで暮らす人々の損害補填してくれるのか…と問う★4 [少考さん★]
- 【東京・赤坂の“個室サウナ店夫婦死亡火災”】 タオルがサウナストーンに触れたことで発火したか 警視庁 [ぐれ★]
- 日中関係改善は「下手をすると10年かかる」 トランプを全面信頼できない高市官邸の苦悩★6 [ぐれ★]
