Debug Hacks -デバッグを極めるテクニック&ツール
|
| 価格: | ¥ 3,360 1500円以上は送料無料 詳細 |
発送可能時期: 在庫あり。
販売、発送は Amazon.co.jp
商品の詳細
- Amazon.co.jp ランキング: #141764 / 本
- 発売日: 2009-04-27
- 版型: 単行本(ソフトカバー)
- 424 ページ
エディターレビュー
内容紹介
ミラクル・リナックス株式会社の精鋭エンジニアたちが、長年のLinuxカーネル開発の経験で培ったデバッグテクニックを詳解。
こころがまえから、準備、必要な知識、バグの原因をすばやく特定し修正するために便利なテクニックとツール、高度なデバッグ技まで惜しみなく披露します。
多くの事例に基づいた実際的実用的な技が満載です。効率良くかつクオリティーの高い開発のために必須の一冊です。
内容(「BOOK」データベースより)
ミラクル・リナックス株式会社の精鋭エンジニアたちが、長年のLinuxカーネル開発の経験で培ったデバッグテクニックを詳解。こころがまえから、準備、必要な知識、バグの原因をすばやく特定し修正するために必要なテクニックとツール、高度なデバッグ技まで惜しみなく披露します。多くの事例に基づいた実際的実用的な技が満載です。
レビュー
『Debug Hacks』刊行に寄せて
Debug Hacks推薦の言葉
プログラムにはバグが付き物です。バグは人間の予想を超えたところからやってきます。世界最初のバグは、リレー式計算機の中にまぎれこんだ蛾だったそうです。あわれリレーの間に挟まれた蛾によってコンピュータの誤動作が引き起こされました。このエピソードがきっかけとなり、プログラムの間違いのことがバグと呼ばれるようになったのだそうです。この蛾は後にCOBOLの開発者となるグレース・ホッパー女史の日記に記念として張りつけられていたと聞きます。
それから半世紀以上が過ぎ、あいかわらずバグは生み出され続けています。「プログラムは思った通りではなく、書いた通りに動く」というのはプログラマの中に伝わる「ことわざ」のひとつです。そして人間は間違えるものなので、プログラムの中にはバグが入り込みます。ある意味、バグとは人間の限界を見せつけてくれるものなのかもしれません。ほとんどのバグはちょっとプログラマを悩ませるくらいのかわいいものですが、最近はバグによって引き起こされた「事件」によって新聞をにぎわすようなこともたびたび起きています。
プログラマの仕事はプログラムを作ることですが、コンピュータが社会に浸透し、プログラムが複雑化するに従って、完全なプログラムを書くことは非常に困難になってきています。その結果、すべてのプログラマは必然的にバグに対処する必要があります。個人的にはプログラマの時間の大半が、バグを見つけることと、それらを直すことに費やされているのではないかと感じます。
しかし、ただやみくもにバグを探してもうまくいくわけはありません。バグにはバグの見つけ方があり、直し方があるのです。特にバグを見つけだし、特定するにはさまざまなテクニックが存在します。「デバッグ」という言葉は「バグを直すこと」のような印象がありますが、実際にはどこにあるのか特定されたバグはまったく恐ろしいものではなく、たいていはすぐに直すことができるものです。デバッグの神髄はバグの発見と特定にあるのです。本書は歴戦のプログラマが経験から獲得したバグの見つけ方・直し方が満載されています。特に普段はお目にかからないようなLinuxそのもののバグについてのHackは、貴重な情報ではないかと思います。いくつかのHackは多くのプログラマが日常的に使うものではないかもしれませんが、それでもなおその発想は参考になります。特にgdbやvalgrindやoprofileのような便利なツールについてきちんと解説してあるのがありがたいところです。また、2つほど Rubyの「バグ」についても扱っていただいてます。ありがたいことです。
本書がプログラマの皆さんのバグへの戦いの日々が少しでも楽になるための「道標」となることを期待しています。
2009年3月 羽田空港にて
まつもとゆきひろ
カスタマーレビュー
内容はいいのだが推敲・校正がまるでなってない
まず記載されている技術的内容に関しては素晴らしいの一言に尽きる。確かにDebugに関する情報がきちんと網羅されている本は今まで無かった。弱点はICEなどの専用ハードウェアを使ってのデバッグに関する情報が全く無いこと、ぐらいなもの。この段階で☆は8つ。
しかし、推敲・校正の段になるとぼろぼろ。これでは初心者が読んでいて混乱・誤解をする。
例1) Hack#5 p27 3段落目「Fは先に示した表示のフォーマット(.... i)、(以下略)」とあるが、「先に示した表示」にiは無い(表にiが抜けている)。
例2) p28-29「ステップ実行」2段落目「実行するものが関数などの場合、その関数の中も実行したい場合があります。そのときは、stepコマンドで行います」。おそらくここでいう「実行」は「ステップ実行」の事なのだろう。nextは「次の行に到達するまで、実行がbreakされない」が、stepは「ソースコード上の別の行に到達するまで命令レベルの実行を1つづつ実施する」。
しかしこの本の表現では「関数内部は実行されない」と読めてしまう。これでは意味が全く違なってしまう。
「はじめに」に『想定している読者は、(中略)初級から中級プログラマです』とある以上、これら初心者にとって致命的な誤記は大幅な減点対象になる。私は☆5つ減じることにした。故にこの本の評価は☆3つだ。
是非次に印刷するときは「第2刷」ではなく「第2版」として大幅に内容の治ったものを出していただきたい。
初学者向けとしては問題
網羅的で、かつ的確なノウハウもちりばめられている点で、非常に有意義な本だと思う。
特にOSがらみの話題が充実しており、ローレイヤーで開発を手掛けるエンジニアの方なら、読んで損はないと感じる。
ただ問題として、文章がかなり読みにくい。入門者や初心者の方に苦痛を感じさせるぐらいのレベルだと感じる。
知識を持った方にとっては、自分の知識・推測を交えることで文章構成の悪さを補完できるので問題ないかもしれないが、入門書としては少なからず問題があると言える。
また「誤解を与える説明」「読みにくい」といった指摘に対して、強引な解釈で「誤解は生じない」などと返している著者の姿勢にも疑問を感じる。
著者の一人です。(fjの教祖様、書評ありがとうございます)
著者の一人の吉岡です。ですので、評価の点数は割り引いて考えてください。
fjの教祖様書評ありがとうございます。深く感謝します。fjの教祖様のコメントに対するコメントを自分の日記に書きましたので、ご参照ください。初心者が混乱するというご指摘に対し、著者の見解を述べさせていただきました。http://d.hatena.ne.jp/hyoshiok/20090503#p1
類書がほとんどないという評価、大変ありがたく頂戴いたします。より多くの方にDebug Hacksを読んでいただき、いままで陽に語られることの少なかったデバッグとそのツールについて、議論が深まればと思います。





