出版社 : アスキー (2000/11/1)
発売日 : 2000/11/1
しかし私の本をみると 2000/11/21初版発行となっています。何故?
久しぶりに単身赴任先から自宅に戻って本棚を眺めてみると目にとまりました。う~ん、少し古い本かなぁ。若い方にはとっては子供時代の本でしょうかね。ぱらぱら中をみると例題はCあるいはC# そのほかはJavaが多いようです。一部awkもあるなぁ。 そういえばこの本を買った頃は全くawkを使ったことはありませんでした。今ではLinuxでコードを書くときはほぼawkになっていますが...
さて、思い出してみるとこの本の中では第5章のデバッグに興味がありましたね。 そうそう特に5.3手がかりのない困難なバグはとても参考になった記憶があります。
- バグを再現できるようにしよう。
- 分割統治しよう。
- 誤動作を「数字占い」で検証しよう。
- 出力表示によってバグ探索範囲を狭めよう。
- 自己検証コードを記述しよう。
- ログファイルを出力しよう。
- 作図しよう。
- ツールを使おう。
- 記録を取ろう。
まぁ、今思えばそんなに特別なことをしているわけでないですね。今はApexでプログラミングをすることが多いので特に「自己検証コードを記述しよう。」は実践しています。 画面のないApexトリガーやバッチではコードを書いたらすぐにテストクラスも用意してデバッグしながら作業を進めます。こうすることでデバッグがかなりしやすくなったと思います。テストデータを簡単に準備できるのがいいです。
一時期Linuxで遊んでいた時はデバッガーを使っていましたが、今ではほとんどprint文でデバッグしています。この方が楽になってしまいました...
本当は画面の開発でも何かしらのテストツールが使えたらいいのですが、いいものが見つからないですね。
そうそう、それから巻末のAppendix:ルール集も非常に役に立ったと思います。 一部?はいまだに実践させてもらっています。
気に入ったルール
スタイル
- 複雑な式は分割しよう
- マジックナンバーには名前をつけよう
- 当たり前のことはいちいち書くな
- 悪いコードにコメントをつけるな、書き直せ
性能
- コードをチューニングしよう
- 共通する式をまとめよう
- より低級な言語で書き直そう <-- 以前はよくアセンブラのコードをインラインで展開したけど、今はしませんね。