1 名前:仕様書無しさん [2007/08/14(火) 23:48:45 ] この会社辞めようと思ったソースコード。 プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#17 pc11.2ch.net/test/read.cgi/prog/1183700531/
201 名前:仕様書無しさん mailto:sage [2007/08/26(日) 16:42:21 ] 防衛庁納入では必須だよ
202 名前:仕様書無しさん mailto:sage [2007/08/26(日) 16:43:49 ] ttp://ja.wikipedia.org/wiki/%E7%9A%87%E7%B4%80 安田生命保険(今の明治安田生命保険)は1970年代に個人情報管理のシステムを構築することになった。 その際システムの担当者は、20数年後に生じるであろう2000年問題を予測していた。 そこで、年号の下2桁にグレゴリオ暦や元号ではなく神武暦(グレゴリオ暦−40年)を使用した。 そのことにより、安田生命保険は2000年問題を40年先送りした。
203 名前:仕様書無しさん mailto:sage [2007/08/26(日) 16:54:22 ] unixタイムでいいよ
204 名前:仕様書無しさん mailto:sage [2007/08/26(日) 17:13:06 ] わかってたらもっとマシな回避方法を取れとw 変換が増えて面倒そうだし
205 名前:仕様書無しさん mailto:sage [2007/08/26(日) 17:13:30 ] >>202 予測しておきながらそんな解決方法を取るってのはアホだな。
206 名前:仕様書無しさん mailto:sage [2007/08/26(日) 17:14:38 ] >>204 ,>>205 思ったとおりの反応。そして俺も同意。
207 名前:仕様書無しさん mailto:sage [2007/08/26(日) 18:56:22 ] 分かってて何もしないのよりもよっぽどマシだと思うがこれは酷いww
208 名前:仕様書無しさん mailto:sage [2007/08/26(日) 19:21:46 ] 一瞬「2038年問題よりも先まで耐えられる分マシじゃん」と思ったが、 time_tもそろそろ64ビット以上で定義するのが当たり前になってきてるんかな。
209 名前:仕様書無しさん mailto:sage [2007/08/26(日) 19:33:00 ] >>204 >>205 >>206 さすがにストレージがここまで値段が下がるとは予測できなかったと思われ。
210 名前:仕様書無しさん mailto:sage [2007/08/26(日) 21:48:03 ] いくらなんでもこのシステムやコードはリプレースされてるのでは? 1970年代だし…
211 名前:仕様書無しさん mailto:sage [2007/08/26(日) 22:09:20 ] そういって動き続けているコードがどれだけあることやら
212 名前:仕様書無しさん mailto:sage [2007/08/26(日) 22:34:41 ] #include "stdafx.h" class f{public:void oO(char*c){printf(c);return;}}; int main(){ f(O_O); (O_O).oO("定時まであと1時間半、どうやって潰そう・・・。") ;for(;;);return 0; } 仕事しろ仕事。
213 名前:仕様書無しさん mailto:sage [2007/08/26(日) 22:37:13 ] >>211 ボイジャー2号は1977年打ち上げ それ以前に起動完了して未だに動いてるのは知らね。
214 名前:仕様書無しさん mailto:sage [2007/08/27(月) 10:19:19 ] ボイジャーとかはレアケースだろとかいわれそうだけど 普通の業務システムで30年以上動いてる相手に 仕事したよ。 足りない機能をJavaで作ったんだけど、なんかMQとかで つないでるらしい。 リプレースすりゃいいじゃんって話にはなかなかならないって。
215 名前:仕様書無しさん mailto:sage [2007/08/27(月) 18:15:25 ] 「動いてるものは下手にいじくるな」つーのが鉄則だし
216 名前:仕様書無しさん mailto:sage [2007/08/27(月) 19:25:36 ] そして手遅れになる
217 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:01:58 ] 派遣だが、思いっきり派遣先に内緒でソースコード全部書き換えたよ。 あまりにも糞過ぎるコードなんだもん……期限は特に切られてなかったし、 少々時間かかっても、ソースコードが書き換わって、試験成績書と設計書(もちろん、なかった) が添付されてればOKだよな? 別に全部書き換えるなとは言われてなかったし。 たかだか、2,3万行のプログラムだったし……
218 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:15:11 ] >>217 世間一般ではたぶんNGだな
219 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:30:40 ] 相談もなしってのはなぁ
220 名前:仕様書無しさん mailto:sage [2007/08/27(月) 23:34:52 ] 信頼され具合とか仕事の任され具合とか会社の文化とか 他にも色々と絡んで来るだろうけど 一般論だとNGだろうなぁ。
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