上へ

開発メモ

2002/01/27 take

またつまらぬモノを作ってしまった・・・。(^^;
あくつさんの絵文字は良いです。

2002/01/26 InputForms

Indentタイミングをカーソル移動仕様にあわせる、Indent/Unindent 追加、その他。 次は IntX を変更するとインデントが乱れるのを修正予定。

2002/01/21 Delphiショートカット

Delphi講習中に受講生(といっても後輩)から教えてもらった[CTRL]+[SHIFT]+[C]、 [CTRL]+[SHIFT]+[I],[U] が便利。[CTRL]+[↑],[↓]、[CTRL]+[SPACE] は知っていたんだけど。 講習の講師側でもまだまだ毎回得るものはあるらしい。

2002/01/20 出張中その2

都会に出張中。別部署から出張で来ている新人プログラマのプロジェクトが 泥沼にはまっているので、介入することに。
同じような機能セットが3セットあって、2セットは実装済みでテスト中・・・
(新)この機能(残りの1つ)どうしようか悩んでるんですけど
(作)えっ、ちょっと待て、2つめどうやって実装したんだ。
(新)コピー&ペーストで変数名変えて・・・駄目なんですか?
(作)良いわけないだろ、その部分のメンテナンス工数が倍増するだろ。
  通常、組み合わせとヒューマンエラーがあるので倍増では済まない。
  見かけ上順調にいくと、出荷後に直したはずなのに直らない〜という形で判明する。
(新)???(いまいちピンとこないらしい)
(作)ちょっと貸せ。
  機能セットのクラスを作って、フィールドの移動、メソッドの抽出、
  メソッドの移動・・・3時間くらいかけてその部分のコードの重複を解消
(作)メソッドの抽出練習用に残しておいたから、ここの部分の重複を無くしてみ。
(新)???
(作)なに〜!!
彼はソフト専門部門から応援という名目で来ているので、新人といってもそこそこ 作り方を知っていると思っていたんだけど、最初のころ一見順調そうに見えたのは コピー&ペーストの成果で、実際はメソッドの抽出さえできなかったとは。
ためしに既に出来上がっているコードを測ってみると、巡回冗長複雑度最大39(←メンテ不能レベル)、 関数平均5、トータル○○○○(←機能に対して2倍程度無駄に複雑)。・・・甘かった もっと早く、プログラムを作りはじめる前に介入するべきだった。

2002/01/15 覚書

InputForms
・イベント整理
・Kylix2対応
・Kylix環境の印刷 UpDown コントロール
・ヒストリ機能
CalcGrid
・Delphi6対応
・VCL 化しないで(これ重要)ドロップダウンやチェックボックス等に対応。
こんな感じ↓
  with (TMemoryStream.Create) do
  try
    AWinControl := AGrid.Parent;
    WriteComponent(AGrid);
    AGrid.Free;
    AGrid := TCalcGrid.Create(Self);
    Seek(0, soFromBeginning);
    ReadComponent(AGrid);
    AGrid.Parent := AWinControl;
  finally
    Free;
  end;
Delphiクラス図作成
構想のまま止まっているうちに商用品が出てしまった。(^^;
商用品で不満がなければ作る必要は無いし・・・どうしたもんか。
iolib
・ドライバ Open/Close 追加
・kernel2.4系列対応
その他
・Linux設備開発記録
・Linux復旧 CD-ROM 作成記録

2002/01/14 InputForms

TStream を使って Backup/Restore を階層化。その他コード整理。

2002/01/09 出張中

都会に出張中。成り行きで別部署から出張で来ている新人プログラマの教育をすることに。
データ処理のデバッグをメカを動かしてデバッグしている。
(作者)入力と出力は?・・・データ処理のみのデバッグ環境を作ってみせる。

動作のデバッグを1から順番に動作させてデバッグしている。
(作)ちょっと貸してみ、・・・処理ごとのデバッグ環境を作ってみせる。

関数戻り値チェックが逐一書いてあって、機能の割に恐ろしいほどの
巡回冗長複雑度をもつプログラムになっている。これをメンテナンスする人は災難だ。
(作)例外知ってる?
(新)知らない
(作)戻り値チェックをまとめて例外を使って書き直してみせる
将来、彼のコードをメンテナンスする可能性はかなりあるので、少しでもましなコードを書いて もらえば十分元は取れるけど、OJT といっても、結局かかるだけのコストはかかって世の中 成り立っているらしい・・・。

2002/01/08 ドローソフト

日本語が使えるドロー系フリーソフト Molip Draw がバージョンアップして Dynamic Drawになっていました。

2002/01/07 InputForms

自動レイアウトのカーソル移動仕様を変更(SetV, SetH のタイミングを変更)すまん。 今後は SetV,H ではなく BeginBlockV,H ... EndBlock を使ってください。

2002/01/04 Kylix2

Kylix2 を試してみました。当面webアプリを Kylix で開発する気は無いので、 新機能よりもバグ修正を期待していたのですが・・・これが直ってないのは致命的じゃないのか?
try
  Exception.Create('1');
finally
  try
    Exception.Create('2');
  except
  end;
end;	// ここでセグメンテーションフォールト
バグレポ見てるのか?>ボーランド
どうもバグ修正をおろそかにして、必要もない機能(*)をつけて無理やり メジャーバージョンアップしただけのような気がする。 Windows2000 が入手できなくなる前に、まともなものにして欲しい。

(*)
まだ枯れていないしバグも多い、インストールされている環境が少ない、 Linuxバージョン依存(2.2以降)、Libcバージョン依存(glibc 2.1.2以降)、 libjpegバージョン依存(libjpeg 6.2以降)、CPU 依存(x86系)、相当のメモリやCPU資源を要求する、 標準では正規表現が使えない・・・、
およそ Web アプリ開発には向いていないと思うのだが。

2002/01/03 InputForms

自動レイアウトのカーソル移動方針を、現在は「配置したコントロールの後ろ」 という仕様にしています。「次コントロール配置位置」の方が直感と一致するのですが、 レイアウト済み領域の管理が面倒になるので、まぁいいやと思っていたのですが、 自動レイアウトのヘビーユザーが出てきたので、 そのうち「次コントロール配置位置」に変更する予定。