SE(たぶん)の雑感記

一応SEやっている筆者の思ったことを書き連ねます。会計学もやってたので、両方を生かした記事を書きたいと考えています。 でもテーマが定まってない感がすごい。

『ZERO BUGS』を読んだ

『ZERO BUGS』という本が、最近出版されました。
早速読んでみました。

honto.jp

購入のきっかけ

えっと…
いつも、hontoの電子書籍を買っているのですが、たまたま電子書籍20%オフ!ポイント50倍!が同時に行われたからです*1

あと、私が好きな、こちらの本と装飾が似ていたからです。

honto.jp

いつか、この本についても書きたいのですが、まだ読み終わっていないので、そのうちです。
この本を読んだことが、このブログを書くようになった一つの理由です。

…という話はどうでもよくて!

感想をば。

バグはゼロにできるのか

そもそも、バグとは何なのか、という話になるのですが。

一言で言うなら、仕様と異なればバグです。
そういう意味で、

正確な仕様が与えられたら、ゼロバグは可能

という筆者の言も、納得いきます。

でも、世の中、仕様通りに作っても、そもそも仕様が間違っている*2こともあります。

まあ、本書は、そういうバグを防ごう、ということを言いたいわけではなく、プログラマーの努力で避けられるバグは避けようとか、先人の知恵を借りようということを言いたい、と思っておくとよいです。

内容をすごく短くまとめる

いろいろユーモアもあり、経験があるからこそ共感できる部分もあり、これできてないわーというものもあり、そういうところを楽しむ本だと思います。

ただ、あえてキーワードで要約していくなら、こんな感じの内容になります。

  • 念入りに確認する
  • 短く、分かりやすく
  • API等はよく理解して使う
  • 構造化プログラミング
  • 契約による設計
  • 自分自身を管理する

特に、一番下が大事なように思います。
自分のソースを疑うことが、バグを無くす一つの手段であることは、疑いの余地は無いです。

感想

関係ないですが、本日、筆者もバグを出しました。*3
原因は事前の確認不足です。

定義書等をもっと強く要求しておけば、おそらくバグは出なかったな…と、今は思っております。
他の難易度高い機能に気を取られた部分もありますが、そのせいで甘く見たことが原因です。

またそれとは別に、今新しいツールを作っていて、ちょっと自動テストを組み込んだり、細かくテストしたりと、慎重に慎重を期して作成しています。

バグを無くすには、やっぱり、自分自身を徹底期に疑い、信用しない事だと思います。

自分はミスするから、とか、何か間違ってるかもしれない、と日ごろから考えておく*4ことが大事だと、本当に骨身に染みて感じています。

自分を疑って開発をやっていると、とにかくテストが厳しくなります。
それに、後から見てわかる程度には綺麗に作ろう、と思うようになります。
これやったらバグる!とか、バグったときの修正が大変だから、綺麗に作ろう!とか、そういう感じです。

無論、バグは利用者にとっての不利益ですが、開発者にとっての不利益でもあります。

バグを無くすためなら、先人の知恵とか、なんでも吸収していこうと思い直した一冊でした。

もうちょっとぶっちゃけた感想

この本も読みましょう。

honto.jp

同じような内容も書かれています。*5

ツールや手法は進化しても、完全にバグを無くせていないのは、『人月の神話』で「銀の弾丸はない」と言われたことが的中しているわけですが…だからこそ、それを開発者が理解して、バグを無くす努力をしていく必要があると、思っています。

ではでは。https://honto.jp/ebook/pd_28366522.html

*1:1500円分ぐらいのポイントが付きました。おすすめ。

*2:そのバグについて、仕様作成者に言いがかりをつけられる、というところまでがセット

*3:本番リリース中に発覚。すぐ修正して再リリース。

*4:だからこそ、それを否定する材料を集める

*5:達人プログラマーは、かなり古い本