1 名前:仕様書無しさん [2007/08/14(火) 23:48:45 ] この会社辞めようと思ったソースコード。 プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#17 pc11.2ch.net/test/read.cgi/prog/1183700531/
221 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:42:14 ] どこかに話通さないと大変そうだなぁ
222 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:45:30 ] 内緒ってのはマズいよなぁ。
223 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:48:26 ] 話通そうとしても絶対NG返ってくるだろうしなぁ
224 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:52:01 ] あ、言っておくが指示そのものが曖昧だったんだぞ。 おまけに、結果論だが改修よりも工数がかからなかった。 さらに、バグも減りまくった。 ついでに言うと、改修要求のうち一つがかなり深い部分までプログラムを書き換えないといけないところだったために、 全改修でなくても、どのみち、同じぐらいの改修は必要になっていたよ。 まぁ、でも相談は必要だったろうな……
225 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:53:52 ] まあ、相談せずにやっておいて、承認でたら置き換えて終了ってのはよくやる。 指示が曖昧で何も決まらず時間だけが過ぎているから、とりあえず改修してしまっておくのは仕方ないわ
226 名前:仕様書無しさん mailto:sage [2007/08/28(火) 03:48:58 ] まぁ味方になってくれそうな上司に前のものと新しい設計書渡して「こんなんどうですか?」 とか聞いて、説得して、「実わ出来てるんですが」とか
227 名前:仕様書無しさん mailto:sage [2007/08/28(火) 07:37:08 ] >>224 > さらに、バグも減りまくった。 減りまくってもゼロじゃない限り、何か起きたときに責任問題になる。 「以前のソースを改修すればこのバグは無かったんじゃないのか?」とかとか... 相談しておかないと結局は痛い目を見る事になる。 揚げ足取る奴はどこにでも居るからな。
228 名前:仕様書無しさん mailto:sage [2007/08/28(火) 09:37:39 ] > さらに、バグも減りまくった。 この言い回しで程度が知れるな。
229 名前:仕様書無しさん [2007/08/28(火) 10:40:13 ] ソースコード云々より、まず給料が出ないので、、、
230 名前:226 mailto:sage [2007/08/28(火) 12:50:00 ] これさ当人以外に、「問題なし」と思っているやつはいるのか?
231 名前:仕様書無しさん mailto:sage [2007/08/28(火) 13:08:30 ] 「問題なし」は知らんが「やむなし」はいそう
232 名前:仕様書無しさん mailto:sage [2007/08/28(火) 13:10:40 ] 勝手に修正し後日別料金請求して 「おまいは悪徳リフォーム屋か」 と褒めて欲しかっただけじゃないかなと思ってる
233 名前:仕様書無しさん mailto:sage [2007/08/28(火) 13:44:02 ] >「実わ出来てるんですが」 馬鹿?
234 名前:仕様書無しさん mailto:sage [2007/08/28(火) 18:56:15 ] 既存プログラムの修正:如何に少ない修正で所望の変更を行うかに全力を注ぐ 新規プログラム(既存に類似機能あり):如何に少ない追加で所望の機能を得られるかに全力を注ぐ 新規プログラム(既存に類似機能なし):如何に似せたソースコードで所望の機能を得られるかに全力を注ぐ 新規プロジェクト:好きなだけ新しい手法・コーディング・クラス設計その他をぶっこんで、決まったルールに従い好きなようにコーディングする 以上俺ルール
235 名前:仕様書無しさん mailto:sage [2007/08/28(火) 19:01:23 ] やむなしはあるな、どうやっても直せなそうなコードってあるだろ、あべし製とか
236 名前:仕様書無しさん mailto:sage [2007/08/28(火) 21:31:19 ] >既存プログラムの修正:如何に少ない修正で所望の変更を行うかに全力を注ぐ >新規プログラム(既存に類似機能あり):如何に少ない追加で所望の機能を得られるかに全力を注ぐ 典型的な失敗プロジェクト
237 名前:仕様書無しさん mailto:sage [2007/08/29(水) 00:38:51 ] >234 漏れなら設計、実装(修正)、試験、(客や上司・メンバーへの)説明、 のトータルコストで考える。
238 名前:仕様書無しさん mailto:sage [2007/08/29(水) 00:45:12 ] あべし(ノ∀`)
239 名前:仕様書無しさん mailto:sage [2007/08/29(水) 05:54:25 ] >>234 >既存プログラムの修正:如何に少ない修正で所望の変更を行うかに全力を注ぐ 悲しいかな、漏れもそれを考えてやってるだ。 コードの修正箇所増=ドキュメント増&確認工数増とかって理由でな。 理想をいうと、所望の変更ってのが当初から与えられていたとしたときに書くコードを、 修正のときにも書くべきだと思ってるんだが。 理想と現実のギャップが大きすぎるなあ。
240 名前:仕様書無しさん mailto:sage [2007/08/29(水) 13:27:23 ] >>234 めっちゃリアルやな。 ソースレビューやってソース管理して技術者を萎縮させてるNECや日立がやりそうなこと
241 名前:仕様書無しさん mailto:sage [2007/08/29(水) 13:32:36 ] >>235 「直せる人、手を挙げて〜」ってやって誰も手を挙げなかったから、リーダーが折れて 作り直しになったことがあるな…。既に玉砕者が2人くらい出てたし。 読むだけで狂いそうになるくらい、糞なコードだった。
242 名前:仕様書無しさん mailto:sage [2007/08/29(水) 15:13:21 ] > ソースレビューやってソース管理して これが技術者を萎縮させるのか・・・?
243 名前:仕様書無しさん mailto:sage [2007/08/29(水) 15:28:41 ] ソースレビュー&管理は必要だと思うんだが、 ソース読まない(読めない)人にレビューさせると、うるさくてかなわんと思うことはあるかな。
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 ] システム全体がフランケンシュタインを髣髴とさせるコピペばかりのソース もちろんドキュメント一式も上記怪物の生まれ変わりのよう 現在も増改築の真っ最中