- 1 名前:仕様書無しさん mailto:sage [2007/07/06(金) 14:42:11 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#16 pc11.2ch.net/test/read.cgi/prog/1175485506/
- 112 名前:仕様書無しさん mailto:sage [2007/07/08(日) 23:33:09 ]
- >>110
死ね
- 113 名前:仕様書無しさん mailto:sage [2007/07/08(日) 23:38:52 ]
- >109
何、どの辺りが適当なわけ?
- 114 名前:仕様書無しさん mailto:sage [2007/07/08(日) 23:39:54 ]
- 書かなくとも解るコメントって本当に邪魔だよな
そんな時に限って重要なコメント(目的とか制限とか)が記述されていない
- 115 名前:仕様書無しさん mailto:sage [2007/07/09(月) 06:19:47 ]
- 「コメントは全行に書け」という規則があったので、コーディング用紙の右側に全部
/* */ を書いた奴を大量コピーして使用。そのままパンチに出したから、隙間の所も全て 空のコメント行になってた。しかも肝心のコメント文はカタコト(w
- 116 名前:仕様書無しさん [2007/07/09(月) 14:21:50 ]
- >そのままパンチに出したから、
50年くらい前かな?
- 117 名前:仕様書無しさん mailto:sage [2007/07/09(月) 16:21:34 ]
- >>116
おいおい、25年くらい前まではあったぞ。
- 118 名前:仕様書無しさん mailto:sage [2007/07/09(月) 17:26:27 ]
- 確かに、紙カードを最後に使ったのは、25年前だなぁ
- 119 名前:仕様書無しさん [2007/07/09(月) 17:43:30 ]
- ちょwwww
お前らいったい何歳なんだ? 俺29なんだが・・・ ps.別スレに誤爆して欝なおいら
- 120 名前:仕様書無しさん mailto:sage [2007/07/09(月) 18:39:25 ]
- そんないい歳こいたオッサンが昼間から2chかいいご身分ですな。
しかし、五十路ニートってしゃれにならんなw
- 121 名前:仕様書無しさん mailto:sage [2007/07/09(月) 19:06:56 ]
- マ板で昼間からとか
- 122 名前:118 mailto:sage [2007/07/09(月) 19:11:01 ]
- いや、もう引退しているから。
暇で暇で仕方がないんです。 いいご身分でしょorz
- 123 名前:仕様書無しさん [2007/07/09(月) 19:30:43 ]
- >>122
それはそれで、先派内がうらやましい気がする
- 124 名前:仕様書無しさん [2007/07/09(月) 20:15:17 ]
- >>123
長くても20年短ければ明日だもんな
- 125 名前:117 mailto:sage [2007/07/09(月) 21:20:37 ]
- 悪ぃ、俺職場から書いてる。
- 126 名前:仕様書無しさん mailto:sage [2007/07/10(火) 01:42:34 ]
- >>122
なんかおもろいソフトつくってよ
- 127 名前:仕様書無しさん mailto:sage [2007/07/10(火) 05:42:04 ]
- ベタだけど、フィボナッチ数列の一般項を求めるプログラムで再帰で書く奴はどうかと思った。その子は情報系。あ、大学での話ね。
- 128 名前:仕様書無しさん mailto:sage [2007/07/10(火) 06:14:22 ]
- >>74 >>111 そんなバカなことがあるもんか。
- 129 名前:仕様書無しさん mailto:sage [2007/07/10(火) 07:00:49 ]
- >128
それが実際いるんだな。 「各処理が何をしているのか分かるよう、コメントを書くべき」 ということだけ知ってて 実際何を書くべきなのか全く分かっていない奴 コードを直訳しろとは誰も言ってないだろっちゅーに…
- 130 名前:仕様書無しさん mailto:sage [2007/07/10(火) 07:08:23 ]
- ' 結果をRetに格納
Ret = MsgBox(ry ' もしRetが6なら If Ret = 6 Then ' Aに1を格納 A = 1 VBじゃもはや見飽きたコメントだな。 せめて【Retが「はい」なら】と書け… って言うかそれ以前に定数使えよと思うけど。 しかもAに1を入れる意味が何なのか書いてない。
- 131 名前:仕様書無しさん mailto:sage [2007/07/10(火) 07:23:12 ]
- ようはアレだろ、コメントはコードを日本語化したものを書くのじゃなく、そのコードはどういう意図なのかを書けってことだろ。
コメントは他の人にも分かるよう、コードの意味を書くのですよとか言うのを言葉どおりに受け取ってるんじゃない?
- 132 名前:115 mailto:sage [2007/07/10(火) 08:49:54 ]
- >>115が30年ぐらい前だったかな。 俺は今59だけどクミコで現役です。
小ぶりのシステム新築お任せがよく来ます。
- 133 名前:仕様書無しさん mailto:sage [2007/07/10(火) 10:19:08 ]
- まあ入門書丸覚えが精一杯、てなレベルの人々が多いんだろう。
入門書に書いてある、コードの直訳としてのコメントしか 見たことが無いから、『コメントとはそーゆーモンである』と 身につけてしまうのであろう。 そうなってしまわない奴こそがまっとうなプログラマーになれるわけだが...
- 134 名前:仕様書無しさん mailto:sage [2007/07/10(火) 11:54:48 ]
- 久美子さん(59歳)まだまだ現役です。
- 135 名前:仕様書無しさん mailto:sage [2007/07/10(火) 11:55:37 ]
- ワロタww
- 136 名前:仕様書無しさん mailto:sage [2007/07/10(火) 11:59:10 ]
- ホットドックで楽しようと考えた管理者が大杉た
- 137 名前:仕様書無しさん [2007/07/10(火) 12:02:25 ]
- >>134
どういう意味で現役なのかwwww
- 138 名前:仕様書無しさん mailto:sage [2007/07/10(火) 13:05:33 ]
- えっ、そっち?うわー
- 139 名前:仕様書無しさん mailto:sage [2007/07/10(火) 13:26:38 ]
- >>127
再帰の練習課題なのに 一般項の公式つかって得意になってる奴?
- 140 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:20:46 ]
- >>139は無類の再帰好き
- 141 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:32:54 ]
- フィボナッチ数列ぐらいの単純なものなら再帰より一般項を直接求めたほうが速いかも知れんけど、どっちでもいいよ
- 142 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:37:03 ]
- >一般校を直接求め
どうやって?
- 143 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:38:03 ]
- >>139
いや、そうじゃなくて線形で書けってこと。 オーダーが全然違う
- 144 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:38:49 ]
- 例えば
(define (fib n)
- 145 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:42:26 ]
- 線形?反復の間違いだろ
- 146 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:50:41 ]
- そもそも数列自体が再帰的に定義されてるから、再帰的にプログラミングすることは別に自然だと思うけどな。
- 147 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:57:23 ]
- 言ってる意味がよくわからんが
return fib(n - 1) + fib(n - 2); じゃなくて int tmp = fib(n - 2); return tmp + n - 1 + tmp; と書けってことか?
- 148 名前:仕様書無しさん mailto:sage [2007/07/10(火) 14:58:54 ]
- ただ、フィボナッチのプログラムを書けなら再帰で全然OK
時間のオーダーをなるたけ小さくしろなら、再帰で書く奴はゴミ虫
- 149 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:03:24 ]
- >>147
それ両方再帰じゃない? 再帰: (define (fib n) (if (<= n 2) 1 (+ (fib (- n 1)) (fib (- n 2))))) 反復: (define (fib n) (define (iter rersult a count) (if (=> count n) result (iter (+ result a) result (+ count 1)))) (iter 1 1 1))
- 150 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:12:05 ]
- フィボナッチ数の一般項ならWikipediaにも載ってるよ
- 151 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:13:42 ]
- ただ、無理数のn乗が入ってるから余程nが大きくない限り普通に足し算したほうが速い気がするw
- 152 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:15:33 ]
- >>142
・・・(^ω^;) 高校で習うから安心していいよ
- 153 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:22:07 ]
- 寿司食いたい
- 154 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:24:23 ]
- >>146
自然ていやぁ自然かも知らんが、末尾再帰を再帰で書くのは阿呆。
- 155 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:35:22 ]
- ちょっとおもしろそうだから、再帰・反復・一般項でそれぞれ実行時間計ってみた。
再帰; 35項まで求めて9.3秒 40項は1分たっても反応無いので中止 反復; 10000項まで求めて0.14秒 一般項: 10000項は無理数の10000乗が無理だった
- 156 名前:仕様書無しさん mailto:sage [2007/07/10(火) 15:36:01 ]
- プログラムの頭に処理内容がフローチャートで書いてあるソース群を
渡されたのだが... 変更したら上に書いてあるフローチャートも直すのか? つーかもうあってねぇよ
- 157 名前:仕様書無しさん mailto:sage [2007/07/10(火) 16:01:06 ]
- イイハナシダナー
- 158 名前:仕様書無しさん mailto:sage [2007/07/10(火) 16:33:58 ]
- >156
直してあげなさい 後の人のために それか、チャートをDELしてあげなさい
- 159 名前:仕様書無しさん mailto:sage [2007/07/10(火) 16:51:39 ]
- Schemeの場合
末尾再帰は最適化でループに書き換えられなければならない という事が仕様で明示されてるから末尾再帰ならOK 末尾再帰と認められない書き方したらダメだが
- 160 名前:仕様書無しさん mailto:sage [2007/07/10(火) 16:53:23 ]
- >155
実際そこまで違うものなのかー
- 161 名前:仕様書無しさん mailto:sage [2007/07/10(火) 17:03:40 ]
- >>160
全く嘘はついていないぜ TUTSchemeで実装&時間計測
- 162 名前:仕様書無しさん mailto:sage [2007/07/10(火) 17:19:01 ]
- >>155
>10000項は無理数の10000乗が無理だった その前に、64bit double で計算してると n=71 あたりで誤差が出始めるし そもそもほぼ O(1) なんだから 10000 までやっても意味ない気が。
- 163 名前:仕様書無しさん mailto:sage [2007/07/10(火) 17:33:12 ]
- ですよねー
- 164 名前:仕様書無しさん mailto:sage [2007/07/10(火) 17:59:32 ]
- >>162
まぁね オーダーはexpt使ってるからlogNくらいかも。まぁ係数がかなり小さいだろうが。
- 165 名前:仕様書無しさん mailto:sage [2007/07/10(火) 18:32:45 ]
- n=70ぐらいでいいのなら、map が最速じゃね?
- 166 名前:仕様書無しさん mailto:sage [2007/07/10(火) 18:50:03 ]
- 普通に反復でも0秒だけどね、70くらいなら
- 167 名前:仕様書無しさん mailto:sage [2007/07/10(火) 19:11:23 ]
- ここはスレ違いへの許容があるスレですね
このぐらいのほうが話題が膨らんで楽しい
- 168 名前:仕様書無しさん mailto:sage [2007/07/10(火) 21:46:22 ]
- >>159
Cでもイマドキのコンパイラなら、最適化してくれるよ。
- 169 名前:仕様書無しさん mailto:sage [2007/07/10(火) 22:36:11 ]
- こんなソースがありました。
Dim iIndex As Integer For iIndex = 1 to 3 Select Case iIndex Case 1 処理1 Case 2 処理2 Case 3 処理3 End Select Next これって・・・ 処理1 処理2 処理3 でいいだろ...orz
- 170 名前:仕様書無しさん mailto:sage [2007/07/10(火) 22:39:26 ]
- >>169
そういうパターンって意外に多いみたいだな。 なぜそういう却って難しい書き方をしてしまうのか、理解できない。
- 171 名前:仕様書無しさん [2007/07/10(火) 22:40:02 ]
- >>169
ばっかwww きっと増える可能性を考慮して頑張って考えたんだよwwww そのあと増えることは実はないのにwwwww End Select Next の間に共通の処理があるならいいとおもうけどさ・・・・
- 172 名前:仕様書無しさん [2007/07/10(火) 23:19:17 ]
- >>169
テストコードじゃないの?
- 173 名前:仕様書無しさん [2007/07/10(火) 23:28:08 ]
- ステップ数で金額が決まるんじゃね?
どうせコボラだろ。
- 174 名前:仕様書無しさん mailto:sage [2007/07/11(水) 00:00:39 ]
- >>173
そんな事言ってると、 大勢のコボラーにピンセットで全身の皮膚を摘まれるぞ。
- 175 名前:仕様書無しさん mailto:sage [2007/07/11(水) 01:43:49 ]
- >>174
このルールを適用しよう pc11.2ch.net/test/read.cgi/prog/1179927770/247-253
- 176 名前:仕様書無しさん mailto:sage [2007/07/11(水) 03:17:01 ]
- >>171
増える可能性を考慮すると、余計に 単に並べた方が良くね?
- 177 名前:仕様書無しさん [2007/07/11(水) 12:53:19 ]
- >>176
無理やり解釈したが結構無理があったようだ
- 178 名前:仕様書無しさん mailto:sage [2007/07/11(水) 13:56:19 ]
- 寿司食いたい
- 179 名前:仕様書無しさん mailto:sage [2007/07/11(水) 14:04:32 ]
- ( ゚д゚)ガリでも食ってろ
- 180 名前:仕様書無しさん mailto:sage [2007/07/11(水) 14:31:07 ]
- char *hoge(char *inbuf, char *outbuf);
コメントには入力専用と書いてあるが、 inbuf を変更されるのか気になって夜も眠れない。
- 181 名前:仕様書無しさん mailto:sage [2007/07/11(水) 14:43:29 ]
- while(1) printf("寿司食いたい\n");
- 182 名前:仕様書無しさん mailto:sage [2007/07/11(水) 15:11:08 ]
- ちょっとリアルで寿司食いにいってくるわ
- 183 名前:仕様書無しさん mailto:sage [2007/07/11(水) 15:17:13 ]
- while(1) printf("ウニ軍艦\n");
- 184 名前:仕様書無しさん [2007/07/11(水) 16:20:13 ]
- 寿司.Dispose
- 185 名前:仕様書無しさん mailto:sage [2007/07/11(水) 18:06:44 ]
-
while(1) printf("かんぴょう巻\n"); printf("大トロ\n"); printf("シマアジ\n"); printf("あわび\n"); printf("ウニ\n"); printf("ぷりん\n");
- 186 名前:仕様書無しさん mailto:sage [2007/07/11(水) 18:11:16 ]
- /(^o^)\
- 187 名前:仕様書無しさん mailto:sage [2007/07/11(水) 19:03:13 ]
- 先生、かんぴょう巻きがオーバーフローしました
- 188 名前:仕様書無しさん mailto:sage [2007/07/11(水) 20:08:40 ]
- >>185を改善してpythonに移植。
while hara!=full: print "かんぴょう巻き" if hara!=full: print "大トロ" print "エビ" print "トラフグ" print "ウナギ"
- 189 名前:仕様書無しさん [2007/07/11(水) 20:31:00 ]
- >>188
行:7ParalysisExceptionが発生しました!! こら!! ふぐ使うときはちゃんとキャッチしないと大ごとになるぞ?
- 190 名前:仕様書無しさん [2007/07/11(水) 20:33:35 ]
- スレッドでグローバル静的変数が最強。
- 191 名前:仕様書無しさん mailto:sage [2007/07/11(水) 21:27:31 ]
- std::vectorの中身を書き換えるのがその次くらいに最強ですよ。
- 192 名前:仕様書無しさん [2007/07/11(水) 22:23:57 ]
- ちょっと前に見かけたやつ
resultset = statement.executeQuery("select a.id id1,b.id id2,a.namae namae,b.denwa denwa from tbl1 a,tbl2 b where a.id=" + param); while (resultset.next()) { if (resultset.getString("id1").equals(resultset.getString("id2"))) { namae = resultset.getString("namae"); denwa = resultset.getString("denwa"); } }
- 193 名前:仕様書無しさん [2007/07/11(水) 22:28:43 ]
- >>192
C丼かjavaかよくわからんが、とにもかくにもSQLを見直せという事か・・・。
- 194 名前:仕様書無しさん mailto:sage [2007/07/11(水) 22:58:19 ]
- >>192
ループでいちいちIDチェックするくらいならJOINしろと。>>193の言いたいことはそういうことだよね? あと、SQLインジェクション対策をしていないのも問題かな。
- 195 名前:仕様書無しさん mailto:sage [2007/07/11(水) 23:04:51 ]
- しかし、こういうSQLとロジックを思いつく方が逆に凄いと思うんだが。
COBOLerでもこんなコードは思いつかんだろう。 と思いたい。
- 196 名前:仕様書無しさん mailto:sage [2007/07/11(水) 23:22:00 ]
- >>195
同感
- 197 名前:仕様書無しさん mailto:sage [2007/07/12(木) 03:24:35 ]
- >170
意図的に Case 2 の部分だけを動作させたいとき(デバッグの時とか)に For 文を直すだけで良い とか?
- 198 名前:仕様書無しさん mailto:sage [2007/07/12(木) 04:24:42 ]
- >>195
コボラはそもそも SELECT * FROM テーブル名 しか知らないからなw
- 199 名前:仕様書無しさん mailto:sage [2007/07/12(木) 09:51:02 ]
- >>192
社保庁の名寄せか?w
- 200 名前:仕様書無しさん mailto:sage [2007/07/12(木) 10:10:57 ]
- テーブルの設計がヘンで>>192みたいな事になったことはある。
当然使いものにならなくて、最終的には全部作り直しになったらしい。
- 201 名前:仕様書無しさん mailto:sage [2007/07/12(木) 15:53:24 ]
- >>195
見よう見まねで内部結合しようとしたら、なんかいっぱい返ってきたから チェックするようにしました、みたいな。 ヴビ厨が得意。
- 202 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:19:41 ]
- データベースを使ったデータ操作関連プログラムは、テーブルの設計がしっかり
していれば糞ソースになりにくい。
- 203 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:32:42 ]
- いや、なるでしょ。
テーブルの設計と、プログラマが書くコードは別問題。
- 204 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:33:09 ]
- >>202
ダメな奴は、正規化すればするほど >>201 みたいなことに陥りやすい件。
- 205 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:41:12 ]
- テーブル設計がしっかりとしたものになるかどうかは、
6割の努力と4割の運任せだよって、かあさんが言ってた。
- 206 名前:仕様書無しさん mailto:sage [2007/07/12(木) 16:51:42 ]
- >>205
それはブイヤベースの間違いじゃないかい?
- 207 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:05:48 ]
- 運任せってのはわかるな。
初期設計の時は見落としていた活用の道が出てきて、転用しようとしたら設計が悪くて、再構築になることがある。 再構築しなくてよいテータベースがあると、その設計に感嘆する。 センスの差なのかもしれんね。
- 208 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:05:59 ]
- 結局、最前線に配置されている兵隊が駄目だと、どんなに
すばらしい作戦も失敗すると。
- 209 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:07:35 ]
- >>207
>再構築しなくてよいテータベースがあると、その設計に感嘆する。 ER図がぱっと頭の中に浮かぶんだな。
- 210 名前:仕様書無しさん mailto:sage [2007/07/12(木) 17:22:05 ]
- >>207
発展型の転用と、思いつきの転用の差だと思う。 ユーザーがぶれてないだけで、設計の良し悪しはあまり関係ない気がする。
- 211 名前:仕様書無しさん mailto:sage [2007/07/12(木) 18:45:01 ]
- テータベースに萌えた
- 212 名前:仕様書無しさん mailto:sage [2007/07/12(木) 21:47:11 ]
- >再構築しなくてよいテータベースがあると、その設計に感嘆する。
本来はそうなるように最初から設計しておくものだが・・・。 Excelしか触ったことなかったり、Accessが256以上のカラムが使えないから困るとか 言う人には夢の話なのかもしれんが。
|

|