2003/10/12

おしごと

先月下旬から、寝てるときと通勤時以外は仕事してる感じ。飲み会とか無いと、本当にプライベートの時間を作れてないです。

とある人が書いたアプリケーションの実行速度が遅いということで、チューニングをお願いされているので、これを作り直していたりするのですが……ダメな点が一杯。

  • C++ として、明らかにおかしいコードがある。たとえば、operator =() の戻り型が void とか。ありえないだろ、それ。
  • 根本的に、色々な部分で遅くなる要素が一杯。文字列を扱う部分は、何があろうと CString とか。「大丈夫。CString は十分に速いから。」いや、組み込み型より圧倒的に遅いです。
  • switch を使える部分でも常に if 文連打。あの、300 桁まで行くような if 文を 1 行で || 連打で繋いでいかないでください。
  • クラス大きすぎ。UI のイベントに応じる部分と、内部データ操作と、DB アクセスを 1 つのクラスにまとめないでください。お願いします。(涙)
  • カプセル化してください。public に char* を置いて、そこにメンバメソッドで、チェックもせずに strcpy() せんでください。色んな意味でツッコミどころありすぎです。
  • C style cast only ってなんですか。C 言語じゃないんですから……。
  • もう少し読みやすいコード書いてください。行頭のインデントと行末の改行以外に、ホワイトスペースが存在しないとか、読みにくすぎです。変数名はもっと意味があるものにしてください。ホント……。
  • 変数を全て関数の先頭で宣言するとか止めてください。オブジェクトの生成タイミングとか考えてください。
  • 無駄なキャストとか止めて下さい。(LPTSTR)(LPCTSTR) とか、続けて書くって、何。
  • ポインタと配列を混同しないでください。コード分かりにくくなりすぎます。
  • template 使えば済むような部分でコピペしまくらないでください。
  • Windows として当たり前のインタフェースを持ってください。カーソルキーの上下と Page Up/Down が同じ動きをするコントロールとか作らないでください。
  • データベースにアクセスするコードを書くたびに、ドライバ変えないでください。なんで一つのお客さんに Oracle だけで Microsoft ODBC for Oracle、oo4o、Microsoft OLE DB Provider for Oracle、Oracle OLE DB Provier を使ってるアプリを納めますか。
  • つ~か、インストーラ作れ。

というか (略)。これで、これ書いた人は自信満々で、私の事を「C++ 分からないんだ」とか「GUI アプリケーションを書けないんだ」とか、なかなか言ってくれます。素敵過ぎです。

一番きついのは、これで C++ を 5 年以上やってる、という事かも知れませんが……。

まぁ、プログラムだけでなく、データベースサーバ側も中々素敵で……。

なんでテキストにして 20MB 程度のデータを突っ込んで、それを CTAS するのに 6GB 以上も HDD 食いますか。VM には 8GB しか割り振ってなかったから、途中でディスク容量足りなくなって正常終了できなかったのですが……。

お陰で、いつも専門の人に任せていた DB サーバ弄りまでやることに。う~ん、Oracle ならともかく、SQL Server なんて分からんよ。

テストサーバならともかく、本番サーバにデフォルトのままの Oracle 突っ込むとか……信じられないのですが。

データがこれ以上増える前に、お客さんの所のサーバ、block size の変更とかから始めないとダメかも。;(

つーか、database が PCTINCREASE 100 とか、全テーブルが増加率等の指定が全く一緒とか、入るデータのことを全く考えていない設計止めてください。ディスク効率とアクセス効率とかを考えて作ってください。ホント。

これでパフォーマンスが出るほうが不思議。

この辺りでも比較的軽微で、日記に書いても問題なさそうな範囲という辺りで、ありえない……。

最終的には、Visual Studio が自動的に出力したコード以外の部分とか、全部書き換えになりそうな勢いで素敵過ぎです。はぁ……。

コード書けないだけならともかく、自分の仕事しないで仕事押し付けるし、責任からは全部逃げるし、自分の力量知らないで絶対の自信持ってるし、(略) ……こう、日々、後ろ向きに新しい発見があるのはどうにかして欲しいです、本当に……。;(

2003/10/25

Wazilla

Wazilla 1.5 は日本語化された Mozilla という誤解を無くすために日本語化パックと Breeze を外すそうで。

利用者にとって最大の利点を外してまで主張したいことだったのかなぁ。Bugzilla-JP に登録された日本 local パッチを適用しただけの Mozilla というだけだと、敢えて導入するメリットが大きいと考える人はそんなに多いのかな、と思ったり。

まぁ、私はずっと本家版しか使ったことないのでなんとも言えませんが。外から見ていて、一番のメリットって最初から日本語化されていること以外考え付かなかったのですが。

2003/10/28

お仕事

ふと気付くと、月の作業時間合計が 300 時間を超えていたりしてどっきり。やばい。こんなに作業して、お金払ってもらえなかったらどうしよう。(笑)

作業時間一覧を見て見ると、丸々休んでいるのは 3 日程しかないのに気付いてみたり、月の後半になると作業終了時間が 9:00 とか 8:30 になっていたりするのにがっくり。当然、この後出社して、作業開始時間は 10:00 とかに。

体調の方は至って好調だけど、突然がくっと来たりしたりしないかが、ちょっと心配かも。

まぁ、アレなコードをちょいちょい直していくのではなく、抜本的に変更するのもおっけーになったから、やる気が起きて来るのだけは確かだし。

何よりも、ノリに乗ってる時は、眠くても作業続けたくなって、気が付くと外が明るくなってて寝ると危険な時間で (略)。

まぁ、でも、少しは気をつけたほうがいいかもしれない……。