[ クラス | フォーム | 配列、動的配列 | 文字列 | Delphi の格言 | IDE の小技 | エッセンス ]

up

Delphi の格言

1) リソースの取得と解放は try〜finally〜end を使うべし。

  これは説明するまでも無いと思いますが、処理中に例外が起きても、
  Exit や Continue で処理を途中で抜けても、リソースの解放処理が
  確実に走るようにできるのでとても便利です。

2) Assert を使いまくれ。

  論理エラーの検出をあちこちに仕掛けるのはよい習慣です。
  論理エラーを迅速に検出でき、デバッグに役立ちます。
  Assert を使うとエラー行の行番号が表示されますし、
  コンパイルオプションで簡単に OFF にできるので便利です。

3) メソッドを override するとき、override キーワードが
  抜けていないか常にチェックせよ。

  これはたいがいコンパイル時に警告が出ると思いますが、
  注意するにこしたことはないと思います。

4) Except で例外を処理するとき、raise で例外を再生成
  する必要がないか常にチェックせよ。

  例外処理をした後、例外の発生を上位の例外ハンドラに
  渡す必要があることはよくあることですが、raise をつい
  書き忘れることがよくあります。
  必ずチェックすることにしてます。

IDEの格言
1) アプリケーションをリリースするときは、map ファイルを
  作るのを忘れずに。

  Access Violation とかが客先で出たとき、エラー個所の
  特定に役立ちます。

2) たくさんウィンドウを開いているときは ALT+0 を活用せよ。

  意外と「ウィンドウの一覧」を知らない人が多いみたいです。
  ALT+0 を使うと必要なウィンドウを簡単に見つけることが
  できて、前面に持ってくることができます。Delphi 6 で
  は ウィンドウメニューが新設されましたが、私は ALT+0
  の方がキーストロークが少なくて使いやすいと思います。

3) コンパイルオプションは Ctrl+O+O でソースに埋め込むと
  IDE のコンパイルオプションの設定に左右されないソースが作れる。

  他人にソースを渡すときや、ソースコードでコンポーネントを
  配布するときはコンパイル環境が設定に左右されない頑健な
  ソースコードにする必要があります。

4) デフォルトのコンパイルオプションの変更はトラブルの元。

  3) の逆で、デフォルトのコンパイルオプションを期待した
  ソースコードは世の中にあふれています。無用なトラブルを
  避けるため、IDE のコンパイルオプションは極力デフォルトの
  ままにしましょう。特に「完全な論理評価」と「範囲チェック」は
  危険です。

コンポーネントの格言
1) OnExit イベントでダイアログボックスを表示するな。

  フォーカスが移動することを示すイベントの中でさらに
  フォーカスの移動を引き起こし、かつイベントハンドラを
  途中で止めるといろいろなトラブルが起きます。
  モーダルダイアログを表示しない別の表示法を
  使うか、PostMessage でイベントを遅延させるなどの
  処置をしたほうがよいです。

2) コンポーネントの Loaded メソッドが呼ばれることを
  仮定したコンポーネントを作ってはいけない。

  コンポーネントを実行時に作成するときは Loaded
  メソッドは呼ばれないからです。


Object Pascal の格言
5) public で 非virtual なメソッドは極力再定義するな。

  オブジェクト参照をアップキャストするとメソッドの動作が
  が変わるというおぞましい現実に出会います(^^;

6) オブジェクトが上位から継承する仮想メソッドを呼び出すときは
  inherited をつけて呼び出すか、そうしないかをよく考えよ。

  仮想メソッドは inherited をつけずに呼び出す場合、下位クラスで
  override されると動作が変化します。それでよいのか2〜3回は
  考えておきましょう。でないと継承クラスを作ったとき
  痛い目にあいます。

7) デストラクタは、必ず destroy という名にして、必ず仮想メソッドにする。

  仮想メソッドにしないと、特定の型のオブジェクト参照の Destroy
 を呼び出さないとオブジェクトが正しく破棄できなくなり不便です。
  また、Freeメソッドは デストラクタの名が destroy で仮想でないと
  正しく動きません。コンストラクタ内で例外が起きた場合に
  呼び出されるデストラクタも仮想の destroy です。

8) コンストラクタは protected にしてはいけない

C++ と異なり、Object Pascal ではコンストラクタは継承します。
コンストラクタを protected にすると、継承された public な
コンストラクタが誤って呼び出されます。

IDEの格言
5) Delphi をインストールしたら
「環境オプション]→[設定]→[自動保存の設定]→[エディタファイル]
をチェックしよう。

これをチェックしないと、デバッグ中に IDE がハングすると
何もかも失います。

top

[ クラス | フォーム | 配列、動的配列 | 文字列 | Delphi の格言 | IDE の小技 | エッセンス ]


up

更新日:2005-02-12