振出

働くぜイヤッハァー

先週のサービス残業のせいで、上司が昼飯トンカツおごってくれた。ヒレカツにしてもらった。

あらかじめのご注意。
以下はソフト屋さんしか分らない内容だと思います

今日と明日で、俺は不具合45件を0に減らす。
要はバグ取りである。
このバグは、UIの細かなバグ、OSのバージョンよるAPIの動作違いの吸収、設計段階の欠陥からCPUの違いによるエンディアン問題、ネットワークに対する柔軟性の低さ、RunLoopの不具合等が含まれる。
お遊び感覚で、同期して欲しくない処理は全てスレッドにしてしまったため、1つのアプリケーションで通常動作時12スレッドというとんでも無いデバッガ泣かせソフトである。ちなみに、最大18スレッドまで増える。予想規模は2000行で時間は20時間。

一番恐ろしいのが設計段階の欠陥で、俺の担当範囲でこれに気付いてしまうと影響範囲は全ソースコードに及ぶ。それでもやっぱり直すのは俺で、直さないとリリースできるモノではなくなる。精度を上げるためには、ごまかしは無し。
OSのバージョンよるAPIの動作違いは、代替手段が無ければ制限事項にせざるを得ない。WindowsXP用のソフトはWIndows95じゃ動かせないでしょ。同じ。ぶっちゃけOSX10.2.8以下は糞。
エンディアン問題とネットワークは、最悪の場合メモリビューワでRAM上のバイナリデータを読むことになるが、比較的すぐに直せる。
スレッドは、スレッドセーフになっていない関数が使われていたりするのが問題点だが、コーディングの段階であからさまなのは無い(はず)。ちょっと怖いのが、コンディションロック系で、他のスレッドと干渉しそう。していても直せないと思う。コンパイラの最適化でおかしな事になってる可能性も否めないから。
スレッドは少し面白いことをする事が多い。別スレッドから、メインスレッドのRunLoopでメソッドを呼び出したりする。普通、スレッドから呼び出されるメソッドはそのスレッド上で動く。しかし、メインスレッド上で動かさないと不具合が出ることがあるのだ。

自分で作ったコードなのだが、後で読むのはかなりつらい…
読みにくいコードにした俺が悪いんだけど。

1つのバグを直すと、影響でバグが2,3点増えてしまうことがある。
これが落ち着くまで続ける必要がある。
そういうグラフがあったと思う。実感中。

2件のコメント

  1. すごい。
    この人すごいよままん。
    どこのベテランですか。
    私は本日をもってプログラマを名乗るのをやめます(ー人ー)

  2. 双子の女の子にあからさまに腹黒い目つきで
    「せ?んぱい」
    とか言われたら、きっと硬直します。