『Modern C++ Programming with Test-Driven Development』をだいたい読み終わりましたので、感想を書きます。
各章の概要
各章の概要と、学習メモは以下のエントリを参照。
初めは懇切丁寧にTDDの基礎が述べられているので、モダンだからと言ってもTDD実践入門に最適。 使われているフレームワークは、
- GoogleMock
- CppUTest
Mockに関する説明は少なかったように思う。一部のテクニックを書くのではなくて、まんべんなく書かれているイメージ。
また、コンパイラはC++11を使っていて、見慣れないC++の文法がたくさん出てきたのが少しつらかったところ。このへんも、モダン。
写経について
この本は、ところどころ写経しながら読みました。写経環境の導入手順は以下にまとめました。あとから思うと、Ubuntuが一番楽じゃないかと思う。
電子書籍なので、本からウェブ上のソースコードにリンクが張ってあります。すべてをそのまま写したところもありますが、ちょっと手を抜いて、サンプルコードをコピペしながら読んだところもあります。 サンプルコードを実際に動かしたり、diffを取ったりしながら読んだほうが、理解が深まりますね。
感想
モダン!( ー`дー´)
この名に恥じない内容だった。新しいテクニックや考え方にワクワクして、明治時代の人がザンギリ頭に触れる喜びを感じた。
西洋のTDD界ではkataだとかdojoだとかMikadoだとかがブームだというおかしなジャポニズムを初めて知った。そんなニッポンはShakyoがブーム?この本を通してKataを知ったのは収穫だった。今後の勉強の進む方向はコッチだ。
個人的には、『test driven development for embedded c』に続く良書。ただし、かつての感動はなかった。もともと、前半の内容は知っていることが多かったので。C++というのも、Cに比べると疎遠なので。
サブタイトルが『Code Better, Sleep Better』となっている。
Code Betterは、リファクタリングについての話題が多め。実際のサードパーティから依存関係を取り除いたり、実際のレガシーコードを利用したリファクタリングしたりする。理想的なTDDなどありえなくて、現実はとてつもないレガシーコードと戦わなければいけない。現実に則した本だ。我らの味方だ。
Sleep Betterがなにを暗示しているのかワカラなかったので、そろそろ寝ます。おやすみなさい(´-ω-`)