[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 11:06 / Filesize : 125 KB / Number-of Response : 558
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ぱっと見て「ヘタだなぁ」と思うコード その5



1 名前:デフォルトの名無しさん [2006/08/12(土) 01:56:11 ]
禁止ネタ(超既出)
・長い関数
・深いネスト
・グローバル変数
・goto
・memset
・malloc - free
・局所ブロック
・サンプルコードのtypo
・記述スタイル
・関数・変数名

過去スレ
その4: pc8.2ch.net/test/read.cgi/tech/1153312202/
その3: pc8.2ch.net/test/read.cgi/tech/1149986051/
その2: pc8.2ch.net/test/read.cgi/tech/1142741989/
初代 : pc8.2ch.net/test/read.cgi/tech/1141867015/


2 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 02:00:16 ]
まだやんの?

3 名前:1 mailto:sage [2006/08/12(土) 02:01:37 ]
Cネタはもう枯渇気味なので、他言語ネタ求む。

4 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 02:27:23 ]
Perlとか、上手い下手以前に手馴れた奴が書いたコードは解読不能

5 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 02:38:17 ]
某スレより。
perl -e 'print $_[int(rand(@_ = <>))]' hoge.txt
たったこれだけで、吐き気がする。

6 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 02:39:42 ]
AAにしか見えないなw

7 名前:1 mailto:sage [2006/08/12(土) 02:45:27 ]
Perlの解読不能ネタはさんざん既出なんですが・・・

このスレ的には新しいので、どうぞお続けください。

8 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 02:53:35 ]
そうさせていただきます

9 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 03:09:29 ]
perlのrandってsrandしないでいいんだなぁ

10 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 04:18:23 ]
java で

// double-checked locking を使う

とか自信満々にコメントされたエセ singleton に遭遇した時。



11 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 06:48:16 ]
>>10
というか、そもそもdouble-checked lockingってJavaで上手く動かないから論外だよな。
www-06.ibm.com/jp/developerworks/java/020726/j_j-dcl.html

12 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 07:30:30 ]
前スレとはうって変わって、為になりそうな予感

13 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 07:59:14 ]
>>5
どうみても上手い下手の問題ではないので却下。
sedやawkで修行してくればPerlは天国に見えるよ

14 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 08:15:37 ]
VC++ で ExcelのタイプライブラリのC++ヘッダファイルを自動生成したら、ロクにビルドを通らないシロモノだった件。

15 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 09:47:10 ]
>>5
それ、intは無くてもいいな。
perl -e 'print $_[rand(@_=<>)]' hoge.txt

まあ、「不必要なものが付いてる」と、「可読性を考えずに削る」、
どちらが『ぱっと見ヘタ』かは判らないけど。

16 名前:デフォルトの名無しさん [2006/08/12(土) 10:43:24 BE:49923252-2BP(200)]
>>1 基本的なネタを延々とやることにこのスレの意義があるのに。。。

17 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 11:31:37 ]
>>14
それは、バグとか仕様不良の類なので、スレ違い。

18 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 12:02:45 ]
>>11
ぱっとみてアホレスですな。

10はdouble-checked lockingはダメ解法と踏まえた上でレスしてるのは明白なんだから
お前の「というか」とか意味不明すぎる。

何が"というか"だよ。
知識披露厨乙。

19 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 12:06:03 ]
> ・局所ブロック
局所ブロックって、if とか for とか while なしで、{ } でブロック作るやつのこと?

20 名前:まあ、釣られた俺もなぁ〜。(w mailto:sage [2006/08/12(土) 13:20:30 ]
お前が >>10 でないなら、「明白」なんてことは言えない。

お前が >>10 なら、double-checked locking はヘタとか言う
以前の話でスレ違い。

どちらにせよ、>>18 のレスは「ヘタな煽り」にしか見えない。



21 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 13:22:07 ]
結論:オレサマイガイ ミンナ ヘタクソ

22 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 13:25:19 ]
>>20
明白だってこともわからんアホですか。
しかもスレ違いと思ったけどレスしましたってアホですか。

ホントお前アホだなぁ…。

23 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 14:22:39 ]
明日でも昨日でもいいじゃんかよ!

24 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 14:46:53 ]
>>22
ププッ、顔真っ赤だぞ オ・マ・エ (w

25 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 14:52:06 ]
ここはいいモヒカン族の養殖場ですね

26 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 15:55:13 ]
>>24
アホの典型的負け犬の遠吠えレス乙
言い返せなくなるとソレだよな。

27 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 16:18:06 ]
int Gethoge {
  if(hoge=TRUE){return 1;}
  return 0;
}

28 名前:デフォルトの名無しさん [2006/08/12(土) 18:01:15 ]
変数宣言時にとりあえずnewしてるのは嫌いだ。


29 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 18:04:56 BE:359446098-2BP(201)]
ふつー宣言と同時にnew

30 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 18:09:15 ]
BEのキチガイがまたいるな・・・



31 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 18:18:21 ]
JavaやC++で関数定義の頭に宣言が固まってるコードは頭が悪いと思う。

32 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 18:31:46 ]
> 28
> 31
使う箇所で宣言すりゃ普通その場でnewじゃね?


33 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 18:36:36 ]
>>14
Officeのタイプライブラリなどを同時にインポートすればよいだけ。

ただたしかに、
「"xxx.h"をインクルードする前に"yyy.h"をインクルードする必要があります」
ということとと同じことだから、下手といえば下手。

34 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 18:41:49 BE:359446289-2BP(201)]
>>31
>>32
そうだよな。
使う直前に宣言して、その場でnew。

関数の先頭でまとめて宣言してるのが行儀いいって思ってるアホとかたまに見るな。

35 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 19:09:14 ]
>>26
何を言い返す必要があるんだろう…。

どうやら、>>11>>10 の唯一の自慢に触れてしまったみたいだな。(w

>>34
> 関数の先頭でまとめて宣言してるのが行儀いいって思ってるアホとか
> たまに見るな。

昔の流儀が抜けないだけだろ。

36 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 19:11:18 ]
今でも入門書にK&R勧めてるのを見かけたりするもんなー
正直、正気を疑うところだが

37 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 19:14:51 ]
>>32
気になるのは
Child c = new Child();
c = parents.getChild();
というような記述。

38 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 19:21:33 ]
使いまわしの話か?

39 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 19:31:38 ]
想像だけど。

使い回してるんじゃなくて、宣言時にアサインしたnew Child()は結局使っても
いないんだろう。ところが、ブロック開始時に宣言する習慣が抜けず、なおかつ
宣言したらその場で初期化すべし、という金科玉条を守るために使いもしないオ
ブジェクトを割り当ててる。

40 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 19:34:24 ]
それは下手どころか間違ってんじゃねーか
初学者とかならさておき、そんなコードを恒常的に書く奴いんのか?



41 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 19:54:46 ]
CやPascalみたいに使う変数が固まってくれてる方が個人的には読みやすい

Option Explicitがついてない上に、include先のグローバル変数、
それも「strPath」みたいなごく普通の名前のグルーバル変数が
縦横無尽に飛び交っている。そんなVBSが今まで読んだ中でも最凶のコード

42 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:02:40 BE:174730875-2BP(201)]
>>41
>CやPascalみたいに使う変数が固まってくれてる方が個人的には読みやすい 

COBOLみたいに、プログラムの先頭で全部宣言してあれば最強ってことか。

43 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:02:44 ]
>>40
間違ってるかどうかはともかく、問題が起きるとは限らないんだな。
だからブロック開始部分に限らず結構見かけるね。

44 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:20:04 ]
金科玉条を守るためなら
とりあえず null で初期化すれば良いような。

45 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:21:42 ]
最近どこかの質問スレで見かけたよ。
Class1 class1 = new Class1();
class1 = oldclass1;

Class1 class1 = oldclass1;
って何か違うんですか、どっち使うべきですか、って感じだった

46 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:27:54 ]
>>35
何にも言い返す必要が無い癖に

> ププッ、顔真っ赤だぞ オ・マ・エ (w

とレスしたのか?
口を開けば矛盾が出るな。どこまでアホなの?

47 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:28:18 ]
Class1のコンストラクタにある副作用が
必要なら上、そうでなければ下。

48 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:35:46 ]
>>47
そんな副作用が必要だったらそれはそれで下手だ

49 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 20:39:12 ]
18,22,24,26,35,46 をスルー。
キーワードはアホと行末の(wです。

50 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 21:43:55 ]
>>44
それにすら気づかないから、下手なコードなんだろう。



51 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 22:51:50 ]
>>46
どこが矛盾してるんだろうか…。

>>22 があまりにも必死に見えただけなんだけど。

もしかして日本語もあまり得意じゃないのかな? (w

52 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 23:16:19 ]
もうすぐお盆なんだからそんなことで煽りあってると
ご先祖様に叱られるぞ

53 名前:デフォルトの名無しさん mailto:sage [2006/08/12(土) 23:17:31 ]
腹抱えて笑ってるだろうな無様さを

54 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 00:39:17 ]
>>11
そういう趣旨だろ、>>10は。

55 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 00:41:55 ]
>>48
それこそ、下手というより間違ってるな、だな。

56 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 01:07:45 ]
>>45
つ *

57 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 01:12:57 ]
いや、君の肛門さしだされても……

58 名前:デフォルトの名無しさん mailto:sage [2006/08/13(日) 08:55:32 ]
僕の肛門も無限ループしそうです

59 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 09:05:58 ]
printf(hogestring);

こういうコードを見た時。脱力する

60 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 10:25:00 ]
>>59
勝手に脱力してろ、アホ



61 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 10:39:19 ]
俺は脱毛した。

62 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 10:40:10 ]
数日前、auの端末でそれ系のバグがあって話題になってたね。

63 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 11:39:26 ]
単発コメントはゴミ以下。プログラム全体を奏でる壮大なシンフォニーであってほしい。

64 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 12:40:14 ]
do_something(foo);
do_something(foo); // 何故か二回呼ばないと駄目

65 名前:デフォルトの名無しさん [2006/08/17(木) 16:41:55 ]
int kesuna[4000];
↑このkesunaは何処からも参照されてないのに
消したら本当に実行時エラーが発生して噴いた。
そんなヘタなコード。(実話)
何でだ?

66 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 16:51:06 ]
おそらく、ローカルに作った配列で範囲はみ出してスタック書きつぶしてるんだろ。
kesunaがあるとそこを書きつぶすので実害にならない。

67 名前:デフォルトの名無しさん [2006/08/17(木) 16:55:39 ]
なるほど〜

68 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 16:59:31 ]
感心している場合じゃないぞw
こわいコードだな。

69 名前:デフォルトの名無しさん [2006/08/17(木) 17:01:38 ]
>>65
それってあれだよね。
VCとかだったらデバッガモードでは動いてたけど
リリースモードにしたら動かなくなったみたいなパターンだね。


70 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 17:44:27 BE:99846645-2BP(201)]
決まったタイミングで実行時エラーが出るなら、潰しやすいバグだと思うが。



71 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 17:55:42 ]
下手とバグは分けましょう。

72 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:33:28 ]
retrun answer + 1;   // なぜか1少ないので1足して戻す

73 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:35:45 ]
// 100未満のときに、なぜか1少ないということがわかったので、そのときだけ1足して戻す
if (answer < 100) {
  return answer + 1;
} else {
  return answer;
}

74 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:37:23 ]
// 100〜1000のときだけ、正しい値になることがわかったので、
// それ以外は1足してもどす
if (answer >= 100 && answer <= 1000) {
  return answer;
} else {
  return answer + 1;
}

75 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:37:58 ]
// テストの結果、10,000以上のときも・・・

泥縄

76 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:43:11 ]
>>72
あるある。

77 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:44:55 ]
// free(p);   // ここでfreeすると何故だか落ちるのでコメントアウト

78 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:46:03 ]
「なぜか」「なぜだか」がキーワードですなw

79 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 21:38:38 ]
>>72-78
>>71

80 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 21:51:07 ]
いや、バグ対処の仕方が激しく間違ってるんだろ。



81 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 22:29:37 ]
ヘタなデバッグのやり方を披露するスレじゃないだろ。

82 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 22:31:16 ]
ネタ切れなんだから、なんでもいいじゃn

83 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 23:45:29 ]
普通に考えたら、上手に書けてんのにバグってるなんて珍妙な事態は無いはずだしなー。
そう思うと結構難しいな、このスレ。

84 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 23:56:27 BE:209677076-2BP(201)]
ネットでちょっと探したら、ゴロゴロころがってるけど。 > へたなコード

85 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 23:59:08 ]
じゃ見つけて貼ってくれよ

86 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 23:59:35 BE:124808055-2BP(201)]
こんなのとか。

www.tcp-ip.or.jp/~ikken/cpp/txt/r10.C.txt

>/* [参考] 推奨する方法
>class Foo {           
>    int i ;                   
>...
>    const int& get2() { return i ; }    リタ−ンで返す場合


87 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:02:45 ]
>>86
どこがどう下手なのか書きましょう。

88 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:04:44 BE:89862236-2BP(201)]
>>87
ぱっとみて分かるようになりましょう。

89 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:06:07 ]
>>86
最初につっこむのはむしろここじゃね?
>#include<iostream.h>
>....
>void main()


90 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:07:29 ]
>>86
つか、そのサイト、古いしむちゃくちゃなので、いまさら感がある



91 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:08:08 ]
関係ないが/* */うぜー

92 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:15:25 ]
>>88
ぱっとみても分かりません。説明してください。

93 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:26:30 ]
突込みどころがいろいろあるだけに、まずどこに対して突っ込むのが正解かわからないな。

94 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:28:38 ]
intの参照を返すって辺りか

95 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:34:53 ]
constの参照返しといて自分がconst関数じゃないあたりとかもか

96 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:47:05 BE:89862236-2BP(201)]
>>94
あと、クラス内部への参照を外に渡してるってのも。

97 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:52:25 ]
>クラス内部への参照を外に渡してる

いつでも許される類のもんじゃ無いにせよ、それ自体は別に有りだろ。
一応const憑いてるしな。

98 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 03:39:11 ]
このサイト、1999年だか2000年だかに作られた古いページだから。
当時このページ見つけたとき、その時でもなんじゃこりゃ感はあったw

内容が書き換わってるのか書き換わってないのか知らないけど、
一番の「下手」は、作成日時と更新日時を各ページに載せてないとこだな。

99 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 03:46:13 ]
思ってたより新しいな。

100 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 10:19:15 BE:49923825-2BP(201)]
〉97
いや、ほとんどの場合、無しだろ。
const付きでも。








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<125KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef