【レビュー】Effective Debugging ―ソフトウェアとシステムをデバッグする66項目
今日読みたての本。
ということでレビュー。読み切るのはいろいろあって二日~三日程かかった。
本を読む時間ができたのは、次の案件に入るまでの波間の期間だったのである。
読み始めの理由
自分は今までデバッグというものをまともに学んでいない。
いや、より正確にはブレークポイントを張って動きを見ること、
JavaならFindbugsで少しつついてみて警告や文句が出たら少し見直したりをする。
AndroidStudioならLintツールが標準でついているから、それをかけてみて指導に従う。
逆に言えば、そのくらいの物でまともな方法論を知らないままここまで来てしまった。
そういう意味で、一度きっちりと学んでみたかったので読んだのが理由だ。
内容としては
全体的に心構えから実際の技法へ、という流れで進んでいく実用書である。
帯にも書いてあることだが、心構えとして、「絶対にあきらめない」事だった。
「やり続けることのみが最短の解決法である。」
ある種、デバッグとは泥臭く、生々しい作業なのだという事を再認識させられた。
技術としては静的解析ツールを使ってのコードの診断や、
テストコードを書いての自動テストを利用したデバッグがメイン。
ブレークポイントを張っての逆デバッグという手法もあって、おっと思った。
しかし、現実問題として使える使えないはかなり出てくるだろう。
VisualstudioのIntelitraceを使えば逆デバッグが行えると書いてはあるが、
実際その機能はEnterprise版のみで、実際与えられるのはProfessionalか、
それよりも下のグレードであることが多い。つまり「使えない」のだ。
gdbにも対応したというが、この点はやり方を調べてみる必要がある。
そういう意味では、少し残念なところも感じた。
また、CやC++への比重が大きい。
Rustで書いたらおそらく内容の半分は不要になるのではなかろうか。
無論、無駄ではなかろうがそんな疑惑さえ過ぎる程度には比重は寄っている。
総評
まぁ悪い本じゃないと思う。実際勉強にもなったし、今後も時々見返したい。
後は、ここに書かれている技術が使える場所に行けたら、良いなぁ。
そう思いつつ。レビューを締める。