- 1 名前:仕様書無しさん [2007/08/14(火) 23:48:45 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#17 pc11.2ch.net/test/read.cgi/prog/1183700531/
- 135 名前:仕様書無しさん mailto:sage [2007/08/22(水) 11:20:30 ]
- >>110
> そのreallocは ptr = realloc(ptr, size); 何か問題が? realloc ってそういうもんだよね。 reallocならmemcpyもしてくれるし。 memcpyが要らない場合でも、memcpy は普通無視できる程度の時間しかかからないし。 > 文字列リテラルの連結 "AAAA" "BBBB" をいちいち、strcatなどで連結する。 場合によってはそういうのもアリじゃないか? 目くじら立てるほどとは思えん。 もちろん、バッファ境界を気にしてなくてバッファオーバーフローが起きるなら別だが。 俺C++使いだが、stream に連続して << 操作したり、 std::basic_string<T> に連続して += したりするぞ? その方が意味が明確になる場合もあるからな。
- 136 名前:仕様書無しさん mailto:sage [2007/08/22(水) 11:25:00 ]
- >>135
realloc() が失敗したら漏れる。
- 137 名前:仕様書無しさん mailto:sage [2007/08/22(水) 11:26:49 ]
- >>135
文字列リテラルは並べて書くだけで連結できる。
- 138 名前:仕様書無しさん mailto:sage [2007/08/22(水) 11:45:23 ]
- >>134
それ、プログラマーとしてってより 人間として失格だよ!
- 139 名前:仕様書無しさん mailto:sage [2007/08/22(水) 13:17:21 ]
- >>136
reallocが失敗するような状況で、それが何の問題が?
- 140 名前:仕様書無しさん mailto:sage [2007/08/22(水) 13:41:37 ]
- ptr1 = realloc( ptr, size );
if( ptr1 ) { ptr = ptr1; } else { // ptr に有る情報は何かに使う } とか? もっとも malloc() がコケた以上先の処理がまともに動くとも思えんけど しかし1レコード読むごとに realloc() してたら殺したくなるな
- 141 名前:仕様書無しさん mailto:sage [2007/08/22(水) 13:54:58 ]
- >>110のようなソースの修正やってて文句言いながらやってたら
リーダーに「人のソースにいちいち腹が立つような人は要らない。他にも人間はいる」 とかいわれて別チームに振りなおされた漏れ まさかそのソース、お前が書いたのか?
- 142 名前:仕様書無しさん mailto:sage [2007/08/22(水) 14:02:10 ]
- 出来ることって、せいぜい free して、
アプリケーションを終了するくらいだな キャッシュとかのためにメモリバカ食い設計になっているプログラムなら、 キャッシュを解放して再挑戦する価値はあるかもしれないが、 それでもフラグメンテーションがすごそうだからやっぱり何も出来ないかもしれないな
- 143 名前:仕様書無しさん mailto:sage [2007/08/22(水) 14:40:56 ]
- /* ここから先は見ちゃイヤン */
ってコメントがついた、そりゃーもうすんばらしい若気の至り満載な関数がorz
- 144 名前:仕様書無しさん mailto:sage [2007/08/22(水) 14:50:57 ]
- >>142
>free して、 >アプリケーションを終了 やめとけ。 (以下、例のループ)
- 145 名前:仕様書無しさん mailto:sage [2007/08/22(水) 15:40:09 ]
- さぁ、fjに行こうかw
- 146 名前:仕様書無しさん mailto:sage [2007/08/22(水) 20:08:21 ]
- >>120
int a = 10; // default value try { a = Integer.parseInt(aStr); } catch (NumberFormatException e) {} はやるなぁ。
- 147 名前:110 mailto:sage [2007/08/22(水) 20:19:19 ]
- realloc と文字列連結の話は、>>136,>>137の通りです。
mallocで最初に150MB程度確保、その後reallocで25MBずつ拡張、最終的に350-400MB程度まで確保です。 reallocで失敗したらすぐ終了してるんですが、reallocとかmallocで確保した領域は、 freeしなくても、プログラムの終了時に自動解放される(または場合が多い)、 との事ですが実際のところどうなんでしょうね? >>141 あなたを苦労させているのは、私じゃありませんよ。 私も(心の中で)グチりながらやってます。
- 148 名前:仕様書無しさん mailto:sage [2007/08/22(水) 20:30:31 ]
- >>146
場合によるけど起こりえないならRuntimeExceptionでラップして投げとく方がいいし、入力側でチェックしたり先に変換しておくほうがベターだろ
- 149 名前:仕様書無しさん mailto:sage [2007/08/22(水) 20:50:04 ]
- >>148
その入力時チェックと、NG時の値の設定を同時にやりたいんだろう。 と言うか俺もやるよこれ。楽で。 もちろん、すごい回数やるような時には使わないが。
- 150 名前:仕様書無しさん mailto:sage [2007/08/22(水) 20:58:38 ]
- 全角通っちゃうけど
- 151 名前:仕様書無しさん mailto:sage [2007/08/22(水) 21:02:04 ]
- 職場じゃないし議論しても意味はないけど
例えば「20」と間違えて全角で入れてしまった場合、ユーザーには何の警告も出さずにデフォルトの10に設定されてしまうが、それでいいの?
- 152 名前:仕様書無しさん mailto:sage [2007/08/22(水) 21:13:10 ]
- いい。
指示されてない以上それでまったく問題ない。 気を利かせて作ってあげてもまったく感謝しないのだから、そこは追加料金貰う。 それが業界標準。
- 153 名前:仕様書無しさん mailto:sage [2007/08/22(水) 21:25:47 ]
- そりゃ、そんな会社は辞めたくなるな
- 154 名前:仕様書無しさん mailto:sage [2007/08/22(水) 21:28:25 ]
- 知識も技術もない奴が書いたならば仕方ないとも思うが、解っていて書くのマとしてどうよ?
- 155 名前:仕様書無しさん mailto:sage [2007/08/22(水) 21:29:25 ]
- >>147
fj.lang.c malloc free でぐぐる。
- 156 名前:仕様書無しさん mailto:sage [2007/08/22(水) 21:42:16 ]
- >>149
にしてもちょっと判りにくい。 catchの中で10を入れてもらった方が やりたい事が素直に伝わる。
- 157 名前:仕様書無しさん mailto:sage [2007/08/22(水) 23:10:24 ]
- ユーザーは間違いを指摘されると苛つくもんだ。
黙ってデフォルト値のほうがマシなケースも多い。 金とか命がかかってるなら別だけどね。
- 158 名前:仕様書無しさん mailto:sage [2007/08/22(水) 23:12:09 ]
- でもデフォルト値に変更されたことを報知する仕組みはあったほうがいいよな
- 159 名前:仕様書無しさん mailto:sage [2007/08/22(水) 23:24:12 ]
- 間違いを指摘されて苛立つと文句くるくらいなら入力させなきゃいいんじゃねw
- 160 名前:仕様書無しさん mailto:sage [2007/08/22(水) 23:29:01 ]
- 一般的なユーザ
↓ ヤダャダー! 〃〃∩ _,,_ ⊂⌒( `Д´) `ヽ_つ⊂ノ 間違いを指摘されるのは _,,_ 〃〃(`Д´∩ ⊂ ( ヽ∩ つ でも黙って デフォルト値を入れられるのもいや 〃〃∩ _,,_ ⊂⌒(つД´) `ヽ_ノ⊂ノ 可愛い彼女も欲しい … ∩ ⊂⌒( _,,_) `ヽ_つ⊂ノ ... ... zzz… ∩ ⊂⌒( _,,_) `ヽ_つ⊂ノ
- 161 名前:仕様書無しさん mailto:sage [2007/08/22(水) 23:35:19 ]
- >でも黙って
>デフォルト値を入れられるのもいや >〃〃∩ _,,_ > ⊂⌒(つД´) > `ヽ_ノ⊂ノ 大丈夫だよ、君は気づかないw >可愛い彼女も欲しい 禿同
- 162 名前:147 mailto:sage [2007/08/23(木) 00:29:06 ]
- >>155 ありがとう。
ttp://www.mk.ecei.tohoku.ac.jp/~masahide/knowhow/C_FAQ_2 の 7.24にありました。やはり、当てにしない方が無難ですね。
- 163 名前:仕様書無しさん mailto:sage [2007/08/23(木) 00:58:40 ]
- >>162
釣り? またループしたいの? あなたの使おうとしているOSや処理系のマニュアルを読みなさい。 Cの規格をいくら読んでも無駄。
- 164 名前:仕様書無しさん mailto:sage [2007/08/23(木) 14:06:12 ]
- 「fj行こう」=「富士の樹海行こう」だと思った
- 165 名前:仕様書無しさん mailto:sage [2007/08/23(木) 14:27:05 ]
- え?違うの?
- 166 名前:仕様書無しさん [2007/08/24(金) 11:53:53 ]
- そんな貴方に
uwarite
- 167 名前:仕様書無しさん [2007/08/24(金) 20:56:34 ]
- うわらば
- 168 名前:仕様書無しさん mailto:sage [2007/08/24(金) 21:09:06 ]
- >>164
「富士通に行こう」かと思った。 意味は>>164と変わらんが。
- 169 名前:仕様書無しさん mailto:sage [2007/08/24(金) 23:29:50 ]
- 少しは関数名を考えろと思った
int fuck() { //何かのチェック処理 }
- 170 名前:仕様書無しさん mailto:sage [2007/08/24(金) 23:35:57 ]
- func
fund fune funf fung funh 連番にするなと言っておいたら、こんなん書かれた事ある。 書いた奴はぶん殴ったのは10年以上前の思い出
- 171 名前:仕様書無しさん mailto:sage [2007/08/24(金) 23:45:57 ]
- 「funeです。来週のサザエさんは、funf, fung, funh の三本です。」
- 172 名前:仕様書無しさん mailto:sage [2007/08/24(金) 23:49:44 ]
- 俺だったら褒めてやるけどなwww
- 173 名前:仕様書無しさん mailto:sage [2007/08/25(土) 00:26:41 ]
- どんだけ天邪鬼w
- 174 名前:仕様書無しさん mailto:sage [2007/08/25(土) 00:39:01 ]
- for (int i = 0; i < nSize; i ++)
{ //設定値読み込み Dokjinoyomikomikansuu(); //正式名称は忘れた //処理・・・ } ってのを見たことがある。同じ設定を何度も何度も、ループで読んでる。 しかも、そのループ自体が別の関数からループで呼ばれている…… 設定情報って一度だけ読めばよかったんじゃないのか?
- 175 名前:仕様書無しさん mailto:sage [2007/08/25(土) 00:39:40 ]
- ちなみに、設定値読み込みはファイルから読み込んでいる。
- 176 名前:仕様書無しさん mailto:sage [2007/08/25(土) 00:48:44 ]
- >>174-175
システム次第なんでなんとも言えんなぁ。
- 177 名前:仕様書無しさん mailto:sage [2007/08/25(土) 01:47:25 ]
- 別スレッドで設定が更新される可能性があるんでしょ。ないんだろうけど。
- 178 名前:仕様書無しさん mailto:sage [2007/08/25(土) 09:34:47 ]
- >>171
来週もまた、見てくださいねー! fungっfunf
- 179 名前:仕様書無しさん [2007/08/26(日) 01:27:45 ]
- 会社の業務システムの年号が昭和。
印刷すると伝票が昭和で出てきて、みんな修正テープで手修正。 直すように俺が投入されたが・・・スパゲッティだし・・・
- 180 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:32:52 ]
- 20年近く放置かよwwww
- 181 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:33:13 ]
- 出力直前に63引いて平成にするだけってことでなんとか・・・・
- 182 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:36:02 ]
- それ「だけ」のことすら簡単にいかないのが
スパゲティのスパゲティたる所以かも。
- 183 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:39:26 ]
- >>179
それって最近の話?もう平成19年なんですが... 古いシステムでソースも見にくいものに限って、仕様書/設計書もない。 ってパターンかな、、、
- 184 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:39:42 ]
- だろうな。
印刷した紙の隅っこに昭和と平成の変換式を出力汁
- 185 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:43:39 ]
- いやもう、印刷だけの処理なら、新しく書き直しちゃった方が早いかもね。
- 186 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:50:08 ]
- >185
印刷だけで1実行モジュール? 何を呑気な まず間違いなく入力参照更新印刷、全部1つに詰め込まれてるだろうさ。 昭和時代のスパゲッティにMVC分離なんて念仏にもならんよorz
- 187 名前:仕様書無しさん mailto:sage [2007/08/26(日) 01:59:06 ]
- だろうなー
大丈夫だろうと63引いてみたらば、予期せぬ所で計算が狂うとか確実に出そうだ
- 188 名前:仕様書無しさん mailto:sage [2007/08/26(日) 03:47:18 ]
- 年をループカウンターに使ったりとかあったりしてなw
- 189 名前:仕様書無しさん mailto:sage [2007/08/26(日) 04:11:40 ]
- 夢は膨らむなw
- 190 名前:仕様書無しさん [2007/08/26(日) 05:03:34 ]
- 悪夢だな…
- 191 名前:仕様書無しさん mailto:sage [2007/08/26(日) 07:07:56 ]
- どうせなら西暦に直せよ。
4桁にするのは無理っぽいかも知れんがな…。 年号だとまた変わるぞ。
- 192 名前:仕様書無しさん [2007/08/26(日) 07:15:37 ]
- そんなに長く使われると思わなかったんだろうな
Javaの2億9千万年問題も夢物語だが意外と起こるかもしれんなあ ja.wikipedia.org/wiki/Java%E6%89%B9%E8%A9%95
- 193 名前:仕様書無しさん mailto:sage [2007/08/26(日) 09:52:35 ]
- >>187
その - 63 を書くべき場所が、1ヶ所ならいいけど
- 194 名前:仕様書無しさん mailto:sage [2007/08/26(日) 10:02:36 ]
- どうしてみんな元号が好きなのかよくわからん。
規定かなんかあったっけ?
- 195 名前:仕様書無しさん mailto:sage [2007/08/26(日) 10:42:40 ]
- 官公庁の風習
- 196 名前:仕様書無しさん mailto:sage [2007/08/26(日) 12:59:43 ]
- JCLの印刷機に対応したDD文をファイルに変更。
そのファイルを読み込み、昭和=>平成変換プログラムに通す!
- 197 名前:仕様書無しさん mailto:sage [2007/08/26(日) 14:17:25 ]
- >>194
使わないと街宣車がやって来る。
- 198 名前:仕様書無しさん mailto:sage [2007/08/26(日) 15:04:15 ]
- キリスト教国でもないのに
キリスト暦を使うわけにもいかんだろ
- 199 名前:仕様書無しさん mailto:sage [2007/08/26(日) 15:08:29 ]
- ここはユリウス通日で通すしかないな。
- 200 名前:仕様書無しさん mailto:sage [2007/08/26(日) 15:40:55 ]
- 神武紀元があろう
- 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 ]
- やむなしはあるな、どうやっても直せなそうなコードってあるだろ、あべし製とか
|

|