Profile Icon

『ベタープログラマ』の感想

ベタープログラマ』を読了しました。 面白い部分もありましたが、同意できない点も多々ある本でした。

「謙虚な姿勢で、継続的に学ぶ」というメッセージや、「優れたプログラマを目指すということは、心地よい場所にとどまることと対極にある」という主張は納得できるものでした。

しかし、テストに関しては記述が粗いように感じました。

例えば、「単体テスト」の定義について、最小単位のテストであることを強調しながら、「順序を入れ替えて実行しても結果に影響を与えない」という点に関する記述が欠けていました。「(製品コードの他の単位が関係せずに)テストしていないのであれば、単体テストではありません」と書いてあるので、好意的に解釈すれば同等のことを言っているようにも思いますが、明確にしてほしいと感じました。

テストダブルの例として、「ダミー」、「スタブ」、そして「モック」について書かれていますが、ここでのダミーとモックの定義は誤解を招くものだと感じました。より良い定義は Choosing the Right Test Double に書かれいているものだと思います。つまり、ダミーはコールするとクラッシュするテストダブルであり、モックはスタブとスパイの機能を持ちつつ、そのオブジェクトの中でアサートまでできるものだという定義です。本書では、ダミーを「テストはそれら (= ダミーオブジェクト) を呼び出しませんが、パラメータのリストを満たすために存在しています」としており、モックに関しては要領を得ない説明になっています。

また、第3章の「少ないコードを書く」では、「使っている言語が三項演算子を提供しているなら、三項演算子を使ってください」と、『リーダブルコード』とは真逆の主張がされていました。三項演算子は可読性を下げることが多いと感じているため、この主張には同意しかねました。