『ZERO BUGS』という本が、最近出版されました。
早速読んでみました。
購入のきっかけ
えっと…
いつも、hontoの電子書籍を買っているのですが、たまたま電子書籍20%オフ!
とポイント50倍!
が同時に行われたからです*1。
あと、私が好きな、こちらの本と装飾が似ていたからです。
いつか、この本についても書きたいのですが、まだ読み終わっていないので、そのうちです。
この本を読んだことが、このブログを書くようになった一つの理由です。
…という話はどうでもよくて!
感想をば。
バグはゼロにできるのか
そもそも、バグとは何なのか、という話になるのですが。
一言で言うなら、仕様と異なればバグです。
そういう意味で、
正確な仕様が与えられたら、ゼロバグは可能
という筆者の言も、納得いきます。
でも、世の中、仕様通りに作っても、そもそも仕様が間違っている*2こともあります。
まあ、本書は、そういうバグを防ごう、ということを言いたいわけではなく、プログラマーの努力で避けられるバグは避けようとか、先人の知恵を借りようということを言いたい、と思っておくとよいです。
内容をすごく短くまとめる
いろいろユーモアもあり、経験があるからこそ共感できる部分もあり、これできてないわーというものもあり、そういうところを楽しむ本だと思います。
ただ、あえてキーワードで要約していくなら、こんな感じの内容になります。
- 念入りに確認する
- 短く、分かりやすく
- API等はよく理解して使う
- 構造化プログラミング
- 契約による設計
- 自分自身を管理する
特に、一番下が大事なように思います。
自分のソースを疑うことが、バグを無くす一つの手段であることは、疑いの余地は無いです。
感想
関係ないですが、本日、筆者もバグを出しました。*3
原因は事前の確認不足です。
定義書等をもっと強く要求しておけば、おそらくバグは出なかったな…と、今は思っております。
他の難易度高い機能に気を取られた部分もありますが、そのせいで甘く見たことが原因です。
またそれとは別に、今新しいツールを作っていて、ちょっと自動テストを組み込んだり、細かくテストしたりと、慎重に慎重を期して作成しています。
バグを無くすには、やっぱり、自分自身を徹底期に疑い、信用しない事だと思います。
自分はミスするから、とか、何か間違ってるかもしれない、と日ごろから考えておく*4ことが大事だと、本当に骨身に染みて感じています。
自分を疑って開発をやっていると、とにかくテストが厳しくなります。
それに、後から見てわかる程度には綺麗に作ろう、と思うようになります。
これやったらバグる!とか、バグったときの修正が大変だから、綺麗に作ろう!とか、そういう感じです。
無論、バグは利用者にとっての不利益ですが、開発者にとっての不利益でもあります。
バグを無くすためなら、先人の知恵とか、なんでも吸収していこうと思い直した一冊でした。
もうちょっとぶっちゃけた感想
この本も読みましょう。
同じような内容も書かれています。*5
ツールや手法は進化しても、完全にバグを無くせていないのは、『人月の神話』で「銀の弾丸はない」と言われたことが的中しているわけですが…だからこそ、それを開発者が理解して、バグを無くす努力をしていく必要があると、思っています。