2011年10月8日土曜日

開発環境と実行環境があるときのデバッグ

今研究室のプロジェクトで,電力や水量,二酸化炭素量といったエネルギーデータを測定する九州大学のメータから情報をひっぱってきて一元的に管理するシステムみたいなのを作っています.

開発では,各自のPCにEclipseを入れ,ソースをSVNで共有しています.
実行環境は別にあり,DBやアプリケーションサーバがインストールされています.

で,ここで疑問に思ったのが,アレ,デバッグどうやってやろうか,ってことです.
僕はこういう環境だとこれまではプロジェクトをjarなりwarなりで固めて開発環境の方へ投げ,チェックポイントのログや例外のスタックトレースなんかを適当なファイルに吐かせて確認していたのですが,統合開発環境のデバッグ機能って便利ですよね.それを使えないのはもったいないな・・・って思ったんです.

開発環境と実行環境がある場合のデバッグ方法はいくつかあると思います.その長短について自分なりの考えをまとめます.


  • 開発環境では開発のみ行い,デバッグはすべて実行環境で行う
僕が採っている方法です.実用への感覚をつかみやすく「修正→再ビルド→再実行」の流れをスムースに行えますが,統合開発環境のデバッグ機能が使えません.


  • テスト用コードと実行用コードを用意する
つまりDBなどが実行環境にある場合接続部分をローカル用とリモート用両方用意し,開発段階ではリモート用のコードを使うというやり方です.統合開発環境のデバッグ機能が使え障害箇所を特定しやすいですが,「バグ発生→デバッグ→修正→再ビルド→再実行」という流れの中でテスト用と実行用のコードを書き換えないといけないのが億劫です.


  • 開発環境に実行環境と同じサーバ機能を再現する
統合開発環境のデバッグを使え,コードもローカルやリモートといったことを考慮せずに済みます.しかし開発環境と実行環境とでOSが違う場合に発生する問題や,利用しているサーバソフトウェアのバージョンの違いなどを考慮する必要がでてきます.いざ問題が発生すると原因の特定に時間がかかること必至っぽいです.

と,いうわけで現在これといった決定打もなく勝手なやり方でデバッグしております.もしかしたらこのへんのわだかまりを解消してくれるフレームワークみたいなのはあるかもしれませんが,Springとかみてると大抵ああいうフレームワークは巨大です.今回のような小規模なシステムに対しては大げさに感じてしまいます(そのような発想でシステムが大きくなるといわゆるツギハギになってしまうのかもしれませんが).

みんなはどんなふうにデバッグやってるのかな〜統合開発環境使いこなせてなくてごめんなさい.

もう少し調べてみます!

0 件のコメント:

コメントを投稿