私は、自分の研究でシュミレーションをするために
そのプログラムを書いていますがバグがとれずに苦戦しており、
デバッグをもっとスムーズにできてプログラムを書くスピードをあげたいと思っています。
プレゼンや英語論文執筆などについては本屋さんにもたくさん本があり、
web上にもそのノウハウを書いているページが多々見受けられますが、
バグについてのものでこれ!と思えるようなものにはまだ遭遇できていません。
そこで、特定の言語でこのコマンドを使って・・・というのではなく
デバッグするときの考え方・コツなどを書いているものを教えてください。
プログラムスキルに自信のある方でそのような方法論をお持ちの方は
その方法論を回答していただいても結構です。
古い本ですが、2冊紹介しておきます。
「早くバグを見つける方法」よりも「いかにバグをまぎれこませないか」が肝心かと思います。
回答ありがとうございます。
確かに、バグを作らないようにプログラミングするということは重要ですね。
ただ、他人が作ったプログラムでバグを疑って検証しなくてはならない場合もあるので
バグを見つける方法そのものについてもご存じでしたら教えてください(^^)
ソフトウェアのテスト技法や品質管理については、30年以上前から様々な書籍が出ています。
ソフトウェアの形態にもより、いろいろ変わってきている部分もあるのですが、まず以下のキーワードで検索すると有用な記事や書籍を見つけられると思います。
例えば、以下のような記事が検索できます。
ITmedia エンタープライズ:第1回:テストをどう考えていますか? (1/2)
@IT:The Rational Edge Webサービスのテスト技法進化論
もっと体系的に知りたいなら、個人で買うにはやや高額ですが、多くの書籍が出ています。そのため、図書館などを利用する方がいいかも知れません。
回答ありがとうございます。
リンク先サイトを読ませていただきましたが、
web構築の話に特化されていて、あまりよくわかりませんでした。
web構築におけるテストの方法論でしたが、
私はweb構築については全くわからないので、
用途に限らないようなデバッグの心得のようなものをご存じでしたら教えてください。
当然ながら、一番大事な事は、どう動くべきかを自分が正しく把握している事。
それなくして、効率的なデバックは不可能でしょう。
逆に、それがあれば、方法は何でも良いと思います。
例えば、
など。
コツとしては、
などなど。
簡潔なアドバイスありがとうございます。
テストコードを書いてみるのはめんどくさいと思ったけれど意外と近道ですね。
#2です。
だから、「ソフトウェアの形態によっていろいろ変わってきた部分もある」と書いたのです。
#2で示したサイトも、ほんの一例ですから、#2で示したキーワードで検索してみて、自分なりに分かりやすいもの、あるいは自分の開発環境に近いものを探してみてください。
補足ありがとうございます。
検索する用語自体も、デバッグとかそういう感じで検索していたので参考になりました。
http://www.amazon.co.jp/dp/0131177052
Michael C. Feathers / Working Effectively with Legacy Code
だめなコードをどう修正するか、という内容です。デバッグに特化しているわけではありませんが、他の回答者の方が挙げられている「テストコードを書く」こともプラクティスとして挙げられています。
登場する言語が、Java と C++ です。これらの開発ツールに特化した内容ではありませんが、コードを読んで、「ああ、こういう風にやるのね」という程度には Java や C/C++ を読める必要があるかと。
あと、あまり体系的にまとまった本ではありません。章ごとに個別の課題への対処方法が書かれていたり、ツールの紹介があったりします。なので、通読するのではなくて、ぱらぱらめくりながら探す本です。もしかしたら、質問者さんの意図とは違うかも知れません。でも、ダメコードを触らねばならない、という前提で議論をしている数少ない本です。
せっかく紹介していただきましたがJavaやC++を触ったことのない私には敷居が高いです;
とはいえ、それらの言語を使って同じように困っている人にはよい本のようですね。
教えていただきありがとうございます。
回答ありがとうございます。
確かに、バグを作らないようにプログラミングするということは重要ですね。
ただ、他人が作ったプログラムでバグを疑って検証しなくてはならない場合もあるので
バグを見つける方法そのものについてもご存じでしたら教えてください(^^)