1 名前:仕様書無しさん [2007/08/14(火) 23:48:45 ] この会社辞めようと思ったソースコード。 プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#17 pc11.2ch.net/test/read.cgi/prog/1183700531/
244 名前:仕様書無しさん mailto:sage [2007/08/29(水) 17:49:23 ] 異常なソース管理するとうんざりだなw
245 名前:仕様書無しさん mailto:sage [2007/08/29(水) 19:01:27 ] 異常な「ソース管理」? 「異常なソース」管理?
246 名前:仕様書無しさん mailto:sage [2007/08/29(水) 19:59:57 ] 修正箇所は「修正begin/end」のコメントで囲む。 元のソースはコメントとして残す。 diffも残す。 なんて管理があったな。 svn使っているのにヽ(`Д´)ノ
247 名前:仕様書無しさん mailto:sage [2007/08/29(水) 21:28:35 ] マイクロソフトにもメンテあきらめたコードがなかったっけ? Java関係のIEモジュールかなんかで。 第一人者の大学教授に開発してもらったけど、他のプログラマがメンテできないコードなので、 サポート終了することにしたって話。
248 名前:仕様書無しさん mailto:sage [2007/08/29(水) 22:20:19 ] それがどうした?
249 名前:仕様書無しさん mailto:sage [2007/08/29(水) 22:32:33 ] 過去ソースの復旧作業で納期前の1週間を潰した俺が通りますね
250 名前:仕様書無しさん mailto:sage [2007/08/29(水) 23:21:44 ] Hoge val; val = new Hoge(); if(hogeDict.TryGetValue("a", out val)) { val = HogeDict["a"]; ... }
251 名前:仕様書無しさん mailto:sage [2007/08/30(木) 21:45:59 ] だってvalが好きなんだもん!ほっといてくれよ!
252 名前:仕様書無しさん mailto:sage [2007/08/30(木) 23:21:36 ] >>250 何言語か分からんけど、察するに、 アウトパラメータなのに、直前にインスタンスをわざわざ作ってる。 ってあたりが嫌なのだと見た。 そして成功したら多分、valには既に HogeDict["a"]が入っているので、 if内 val = HogeDict["a"]が不要。 憶測ですがあってる?
253 名前:仕様書無しさん mailto:sage [2007/08/30(木) 23:32:09 ] bufなアナタはC/C++派。 tmpなアナタはVB派。 foo/barなアナタはPerl派。 ローマ字なアナタはCOBOL派。
254 名前:仕様書無しさん mailto:sage [2007/08/31(金) 10:51:54 ] >>253 ローマ字以外当てはまる私は何派でしょう?
255 名前:仕様書無しさん mailto:sage [2007/08/31(金) 12:01:46 ] ごった煮派
256 名前:仕様書無しさん mailto:sage [2007/08/31(金) 13:07:48 ] カオス派
257 名前:仕様書無しさん mailto:sage [2007/08/31(金) 13:21:29 ] ファンタジーと呼ばれるものをするよ派
258 名前:仕様書無しさん mailto:sage [2007/08/31(金) 13:48:10 ] ビューティを紡ぎ奏でるよ派
259 名前:仕様書無しさん mailto:sage [2007/08/31(金) 20:36:27 ] >>257-258 狼へ帰れw
260 名前:仕様書無しさん [2007/08/31(金) 23:41:31 ] 懐かしいなw で、結局するの?
261 名前:仕様書無しさん mailto:sage [2007/08/31(金) 23:54:04 ] $url="doc_root"; $url="doc_root"."img/game"; $url="doc_root"."img/game"."/m"; $url="index.php"; header(Location : $url);
262 名前:仕様書無しさん mailto:sage [2007/09/01(土) 00:13:34 ] まて下から2行目は書き損じじゃないんだな? 本当にこの通りなんだな?
263 名前:仕様書無しさん mailto:sage [2007/09/01(土) 02:51:55 ] >>246 「だって印刷したときに履歴が追えないじゃないか。」 (cvsやsvn=ソース共有ツールという認識っぽい) 中には、納品物が揃って初めてコミットなんてプロジェクトも… そうしないとCVSのリビジョン番号が揃わないからだってさ。
264 名前:仕様書無しさん mailto:sage [2007/09/01(土) 03:20:27 ] >>263 うちはもっと緩いから良いのかも知れないけど、 時々CVSとかにコメント無しでコミットする人を見ると 粉炉したくなる... と言うか、氏ね と思わないこともない。 実行もしないし、思わないんだけどね!
265 名前:仕様書無しさん mailto:sage [2007/09/01(土) 03:47:51 ] >>263 なるほどリビジョンをタグがわりに使うわけか。 新しい。
266 名前:仕様書無しさん mailto:sage [2007/09/01(土) 04:08:48 ] あーでも次のリリースは どうせリビジョンそろわないじゃん。
267 名前:仕様書無しさん mailto:sage [2007/09/01(土) 10:49:24 ] どっかにスペースでも入れて、本質的に変わらんモンをcommitしなおしたりすんじゃねーの?
268 名前:仕様書無しさん mailto:sage [2007/09/01(土) 11:36:05 ] インデント調整とか本質は変わらんでも、意味がある修正もあるがな
269 名前:仕様書無しさん mailto:sage [2007/09/01(土) 12:29:01 ] リビジョンが1つ上がることに、空行のスペースが1個ずつ増えるんだよ
270 名前:仕様書無しさん mailto:sage [2007/09/01(土) 13:44:05 ] >>269 どっかのメールソフトみたいだな。 「 Re:Re:Re:Re:Re:Re:」
271 名前:仕様書無しさん mailto:sage [2007/09/01(土) 20:04:09 ] 「印刷したとき」のために プログラムとして必要なく、可読性を下げるコードを残すのか┐(´・∀・`;)┌
272 名前:仕様書無しさん mailto:sage [2007/09/04(火) 02:41:20 ] 関数のヘッダーコメントに 「関数内で呼び出してる関数(標準関数とかは除く)の名前と機能を書け」 って指示がプログラム完成後に出た。 俺以外の人が書いたソースは1関数500行以上とかなんで それぐらいたいしたことないね、みたいな感じなんだけど ある程度真面目に関数分割した俺はすごくガッカリ 俺だけ量多すぎて手伝ってもらうことになったんだけど 「なんでこんな手間のかかる書き方するんだよ。 センスないんじゃないの?」 って言われた。手伝ってもらってる手前、反論もできなかった まさか自分が書いたソースコードがきっかけで会社辞めようと思うことなるとは
273 名前:仕様書無しさん mailto:sage [2007/09/04(火) 02:58:15 ] かわいそす
274 名前:仕様書無しさん mailto:sage [2007/09/04(火) 03:00:10 ] >>272 >1関数500行 これ後で読む人もかわうそす
275 名前:仕様書無しさん mailto:sage [2007/09/04(火) 05:50:13 ] >>272 その指示の意図が全く解らん 上司も1関数500行タイプで嫌がらせされたとしか...
276 名前:仕様書無しさん mailto:sage [2007/09/04(火) 07:59:50 ] >>275 1関数500行だから、何やっているのかわからなくて レビューできなかったんじゃないか?
277 名前:仕様書無しさん mailto:sage [2007/09/04(火) 09:39:35 ] 長文読んでいただきありがとうございます 指示の大元は客 1関数500行を苦にするのは俺ぐらいで他の人は全員平気 なんで >>274 かわいそうなのは俺ぐらい 新人もこういう書き方がプロなんだと思って育つ >>275 意図は多分なし 少なくとも俺個人攻撃はなさそう >>276 レビューなんかしない職場 仮にレビューなんかやったら 「お前のソースはあちこちに処理が飛ぶから読みにくい」 って俺が吊るし上げ食らうだろうけど
278 名前:仕様書無しさん mailto:sage [2007/09/04(火) 09:49:48 ] 職場を変えるか変わるかどっちかにしなきゃ。 まぁとりあえず頑張れ。
279 名前:仕様書無しさん mailto:sage [2007/09/04(火) 09:54:37 ] 頑張っては駄目だ
280 名前:仕様書無しさん mailto:sage [2007/09/04(火) 10:00:11 ] だいたい完成後にコメントとはいえソースの変更を易々と受け入れるようなところは話にならない
281 名前:仕様書無しさん mailto:sage [2007/09/04(火) 10:17:12 ] その話にならない会社が多いから話になる訳で・・・
282 名前:仕様書無しさん mailto:sage [2007/09/04(火) 12:55:04 ] コメントの条件が 「そのコメントを見て同等の関数をかけること」 なら、>>272 が圧倒的有利なんだけど、 そういう理想論は残念ながら(業務の世界では)現実には即していないからな……。 500行の関数とかだと、関数名から動作の推定は厳しいだろうし コメントも内容を全然表していないだろうしな…。
283 名前:仕様書無しさん mailto:sage [2007/09/04(火) 13:23:35 ] #define IF if( #define THEN ){ #define ELSE } else { #define ELIF } else if ( #define FI ;} #define BEGIN { #define END } #define SWITCH switch( #define IN ){ #define ENDSW } #define FOR for( #define WHILE while( #define DO ){ #define OD ;} #define REP do_lbr #define PER }while( #define DONE ); #define LOOP for(;;){ #define POOL }
284 名前:仕様書無しさん mailto:sage [2007/09/04(火) 13:27:47 ] ワラタ
285 名前:仕様書無しさん mailto:sage [2007/09/04(火) 14:16:59 ] むりくり違う言語にしようとしてるのかwww
286 名前:仕様書無しさん mailto:sage [2007/09/04(火) 16:46:02 ] Steve Bourne キタコレ
287 名前:仕様書無しさん mailto:sage [2007/09/04(火) 17:10:52 ] >>283 ベル研究所の人ですか?
288 名前:283 mailto:sage [2007/09/04(火) 17:32:23 ] ちっ、ばれちまったか。
289 名前:仕様書無しさん mailto:sage [2007/09/04(火) 17:45:03 ] これか〜。 www.kaimei.org/note/book_out/expert_c.html Algolなんだね。みんな物知りだな。
290 名前:仕様書無しさん mailto:sage [2007/09/04(火) 17:49:23 ] ん?もしかして、このプリプロセッサ使って sh書いたの?うわー。
291 名前:仕様書無しさん mailto:sage [2007/09/04(火) 20:28:15 ] >>283 こんな感じでC言語モドキのソースが大量生産されている職場とか普通にあるから困るw
292 名前:仕様書無しさん mailto:sage [2007/09/04(火) 23:50:57 ] 懐かしいな、このホンどこいっちゃったかな。
293 名前:仕様書無しさん mailto:sage [2007/09/05(水) 00:04:42 ] #define MOD(M, N) (M-(int)(M/N)*N) #define RAND(N) MOD(rand(), N) #if 0 #define randn RAND #else // MODが直るまでこっちを使え int randn(int n) { int x; do { x = RAND(n); } while (x >= n); return x; } #endif
294 名前:仕様書無しさん mailto:sage [2007/09/05(水) 01:15:00 ] >>293 直るまでといっても、randnの中でMODが使われてる気配。
295 名前:仕様書無しさん mailto:sage [2007/09/05(水) 03:40:21 ] #defineの引数がかっこで囲まれてないから 優先順位が低い演算子がきたら項が分断されて、あぼん。
296 名前:仕様書無しさん mailto:sage [2007/09/05(水) 12:31:57 ] MODなんて自作する必要あるん? %じゃだめなんだろうか
297 名前:仕様書無しさん mailto:sage [2007/09/05(水) 12:44:26 ] だめなんですよ。
298 名前:仕様書無しさん mailto:sage [2007/09/05(水) 12:47:03 ] シェフのこだわりである。
299 名前:仕様書無しさん mailto:sage [2007/09/05(水) 12:47:07 ] なぜに?
300 名前:仕様書無しさん mailto:sage [2007/09/05(水) 14:54:02 ] レポーターはそう尋ねた。
301 名前:仕様書無しさん mailto:sage [2007/09/05(水) 16:18:42 ] なぜに?ってベル研究所の人にも いってやりたいよなw
302 名前:仕様書無しさん mailto:sage [2007/09/05(水) 21:50:48 ] >>296 小数以下が欲しいんじゃない?
303 名前:仕様書無しさん mailto:sage [2007/09/05(水) 21:59:58 ] modで少数以下?
304 名前:仕様書無しさん mailto:sage [2007/09/05(水) 22:26:33 ] MODで小数って新しい概念だなぁ
305 名前:仕様書無しさん mailto:sage [2007/09/05(水) 22:37:13 ] 少数の何が新しいのかわからん俺に詳しく。 3.5 mod 2 = 1.5 とか普通だろ?
306 名前:仕様書無しさん mailto:sage [2007/09/05(水) 22:52:39 ] >>305 VB6だと0が返ってくるんだぜ
307 名前:仕様書無しさん mailto:sage [2007/09/05(水) 23:08:57 ] >305 それを小数以下というのか・・・ 何だかなぁ(。-_-。)
308 名前:仕様書無しさん mailto:sage [2007/09/05(水) 23:14:51 ] java で試したら、 3.5 % 2 == 1.5 だったよ。
309 名前:仕様書無しさん mailto:sage [2007/09/05(水) 23:59:46 ] とはいえ、近似値である小数の剰余って使いにくそう
310 名前:仕様書無しさん mailto:sage [2007/09/06(木) 00:32:45 ] mod本来の意味から外れててなんだか気持ち悪いです
311 名前:仕様書無しさん mailto:sage [2007/09/06(木) 00:57:26 ] >>307 説明よろ
312 名前:仕様書無しさん mailto:sage [2007/09/06(木) 05:49:43 ] 小数点以下ならfmodでいいんじゃ?
313 名前:仕様書無しさん mailto:sage [2007/09/06(木) 07:58:19 ] >>311 素直に「間違えました」って言えよw
314 名前:仕様書無しさん mailto:sage [2007/09/06(木) 12:31:20 ] 会社を辞めたいとは思わなかったが… ある案件の障害対応で、カバレッジを通そうとした時、用意されたテストケースで どうしても通らないところがあって、実際には業務的に通らないと判明した時、泣きたくなった。 更に、もう1個の修正対象ソースはそのソースのコピペな上に、今度はテストケースがコピペ。 おまけに、今度は通らなかったロジックを通す必要がある。 不審に思って以前にテストした担当者に聞いてみたら、 丸々のコピペだからかたっぽはテストしていないと判明orz ええ、泣きながらテストケース作り直して全部通しましたとも。 あん時、顔は笑っていたけど、目に殺意が入っていたかも・・・
315 名前:仕様書無しさん mailto:sage [2007/09/06(木) 15:47:36 ] >>313
316 名前:仕様書無しさん mailto:sage [2007/09/06(木) 19:53:05 ] >>314 丸ごとコピペって。 鉄拳制裁したれ。
317 名前:仕様書無しさん mailto:sage [2007/09/06(木) 20:25:19 ] >>316 そんなんで鉄拳制裁していた手がいくつあっても足りないな、うちの会社の場合。orz
318 名前:仕様書無しさん mailto:sage [2007/09/06(木) 20:35:46 ] クロスカウンター方式を提案します。 一定期間ごとに実施すれば各期間で必要な手は最大でも一つでとても経済的です。 導入されてはいかがですか?
319 名前:仕様書無しさん mailto:sage [2007/09/06(木) 22:03:32 ] テストケース 〜〜であることを確認する ○ ←レッツコピペ!! 〜〜 〜〜 〜〜 〜〜
320 名前:仕様書無しさん mailto:sage [2007/09/06(木) 22:53:39 ] ○×は面倒だからどうしてもコピペになっちゃうな まだOKNGのほうがいい
321 名前:仕様書無しさん mailto:sage [2007/09/06(木) 23:33:28 ] システム全体がフランケンシュタインを髣髴とさせるコピペばかりのソース もちろんドキュメント一式も上記怪物の生まれ変わりのよう 現在も増改築の真っ最中
322 名前:仕様書無しさん mailto:sage [2007/09/07(金) 00:27:31 ] で、ある日突然崩壊する。
323 名前:仕様書無しさん mailto:sage [2007/09/07(金) 01:01:11 ] if (a == 0) hoge(); みたいなコードがあったら、 条件:a == 0 → 結果:hoge()をコールする のように、コードそのまんまのテストケースを書くように指示されていたので、 言われたままに書いていたけど、バグの数も基準があって、バグが0だとまずいといわれた。 こんなテスト仕様書で、どうやってバグをだすんだよ。
324 名前:仕様書無しさん mailto:sage [2007/09/07(金) 01:13:51 ] 俺が昔やった方法を教えてやろう。 つ テスト仕様書にバグを含める バグの発生率が2〜5%程度にならないと、充分に試験ができていない、と見なす某大手
325 名前:仕様書無しさん mailto:sage [2007/09/07(金) 01:19:45 ] >>324 >>323 は、テスト仕様書も、コードと突き合わせながらレビューをして、それでOKをもらう必要があるので、 そのワザは使えません。 仕切ってる人が、単体テストの意味を取り違えてるとしか思えない…
326 名前:仕様書無しさん mailto:sage [2007/09/07(金) 01:55:36 ] そういう事なら、その仕切ってる人がバグだな
327 名前:仕様書無しさん mailto:sage [2007/09/07(金) 01:58:40 ] >>325 出来上がった成果物を信用していないというか、 ソースコード自体を信じてないみたいなテスト仕様書だな
328 名前:仕様書無しさん mailto:sage [2007/09/07(金) 02:11:23 ] ソースコードをじゃなくてコンパイラとか言語そのものを信じてないんだと思うよ。 >>323 じゃないけど hoge = "test"; で「hoge変数に test という文字列が格納されていること」 みたいな試験項目を見たことあるから分かる
329 名前:仕様書無しさん mailto:sage [2007/09/07(金) 05:44:10 ] ちょっとつきあった某社:「コンパイラを信じてなにかあったらどうするんだ?」って、 未だにASMオンリー。 しかもそれがルネサスとかじゃなく、LSIC80でさえも。 親分がJRじゃなければとっくにつぶれてるぞ。
330 名前:仕様書無しさん mailto:sage [2007/09/07(金) 07:10:26 ] そこまで言うなら、 「アセンブラを信じてどうするんだ?ハンドアセンブルだろ....」 って言い返せよ。
331 名前:仕様書無しさん mailto:sage [2007/09/07(金) 07:52:49 ] 多分最適化でおかしくなっちゃうコードでも書いてるんだろ
332 名前:仕様書無しさん [2007/09/07(金) 07:53:07 ] 「機械を信じてどうするんだ!手で計算しろ!」
333 名前:仕様書無しさん [2007/09/07(金) 08:15:09 ] ICなんか信用ならん タイガーを使え!
334 名前:仕様書無しさん mailto:sage [2007/09/07(金) 08:56:36 ] 他人なんか信用するな! 頼れるのは己の力のみ!
335 名前:仕様書無しさん mailto:sage [2007/09/07(金) 11:16:24 ] そこ、開発成果のリリースまでどれくらいかかってるんだろ?>>329 RADを要求される案件が多いので、VBやC#にどっぷりの漏れ。 ASMでどれほどのRADができるのか知りたい。
336 名前:仕様書無しさん [2007/09/07(金) 11:27:54 ] どんな開発環境で作ってもプログラムは最終的に機械語になるわけで、 既存の開発環境でできる事は機械語と1対1対応できるアセンブラにできない事はない
337 名前:仕様書無しさん mailto:sage [2007/09/07(金) 11:32:23 ] マ板でコスト無視な発言はイタイですよ
338 名前:仕様書無しさん mailto:sage [2007/09/07(金) 20:57:07 ] どの板でもネタにマジレスは痛いんだぜ
339 名前:仕様書無しさん mailto:sage [2007/09/07(金) 21:03:23 ] >>335 そんな馬鹿丸出しのことを言っているのは上の方だけで、現場では普通に Cで開発、上には -S したアセンブリソースしか見せない、みたいな予感。
340 名前:仕様書無しさん mailto:sage [2007/09/07(金) 21:24:07 ] >>327 そもそもそのソースが本当に仕様を満たしてるかどうかがわからんのに なんでソースを中心にテストを作るのか
341 名前:仕様書無しさん mailto:sage [2007/09/07(金) 21:52:59 ] きっと辞めたくなる会社の上司だな
342 名前:仕様書無しさん mailto:sage [2007/09/08(土) 01:57:07 ] >323 どーしよーもない場合は 「テストケースを想定して、そこで見つかるようにわざとバグらせておく」 もうちょっと前向きな意図で、「ベバッグ」と称してそういうことをすることがある、らしい。201の鉄則本にあった。 この場合は……hoge();の前に;でも入れておくかな。
343 名前:仕様書無しさん mailto:sage [2007/09/08(土) 02:46:38 ] それはコンパイル通らんような気が
344 名前:仕様書無しさん mailto:sage [2007/09/08(土) 02:57:35 ] テストを別の人がする時には、テストする人をテストするバグを混ぜることもあるよね 境界条件の以下と未満を置きかえるような、まともにテストすれば必ず見つけられる簡単なバグ ただ、バグを入れたことを忘れる俺のバグが問題なんだよな