Techいつもコードのことばかり考えている人のために。概念をきちんと理解しないままただコードを書いている状態状態になってしまった。その後に「Javaでそのまま写経すればどうか」と思ったけれど、今度はいつの間にか、ただ写経だけに専念している自分に気がつき途中で止めてしまった。この手の概念を理解するための技術書は、流し読みして分かったつもりになってしまうのが一番怖いので、コードを考えながら書く、都度読書メモを書くなど、自分自身の中に「引っかかりポイント」を作っておかないと、せっかく時間をかけて読み終わってもキーワードしか頭に残らず、「キーワード言いたいだけオジサン」が爆誕してしまうので、「手を動かすこと」「考えること」「結果をアウトプットすること」の3つに気をつけながら読み進めることにした。言うわけで、今回は3度目の正直の読書記録...本書は全部で320ページと技術書としては決して分量が多い訳では無いですが、プログラミング自体の入門書やリファレンスではなく、コード例を元に概念を学ぶことが目的の本なので、全ページを同じ密度で読み進めるのはなかなか大変です。Example」が出版されたのが2002年、日本で「テスト駆動開発入門」というタイトルで和訳が出版されたのが2003年と、既に出版から15年が経過しています。以降、原著自体は改版されていませんが、一旦日本語版が2013年に絶版になった後、昨年和田卓人さんによる新訳「テスト駆動開発」が出版されました。新訳にあたっては全編JUnit5とPython3に対応するようにコードが書き直されているほか、後述する訳者による「付録C」が追加されている、という変化点は有るものの、本質的には2002年にリリースされたオリジナルの内容から変わっているわけではありません。この変化の激しいプログラミングの世界で、2002年に出版された本を2018年に読む意味が有るか?というと、それは確実に有るな、と改めて全ページ読み直して思いました。テスト駆動開発までいかなくてもテストコードを書くことは充分に当たり前になってきましたし、プログラミング言語やライブラリの進化、gitやビルドツール、CIツール等の開発をサポートするツールチェーンの進化、アジャイル開発手法の普及など取り巻く環境が大きく変化しました。それらが普及することで、「1つの言語や、開発手法、ツールを導入すれば課題が全て解決する」なんていう都合の良い"銀の弾丸"は無いことをみんなが理解してきたことも大きいのではないかと思っています。現代のソフトウェア開発は複雑化していて、目の前の課題に対して色々な手法やツールを目的と状況に合わせて組み合わせるしかなく、絶対解、唯一解は無いと分かっている状況の中、1つの選択肢として"テスト駆動開発"を理解することは非常に重要で、その意味でもこの本は全然古くなっていないと言えるでしょう。訳者解説:テスト駆動開発の現在」から読み進めた方が良いでしょう。testing.」というブログエントリを出発点として始まった議論について詳細に書かれていて、2017年時点での"テスト駆動開発"の置かれた状況、向き合い方がよく理解できる内容になっています。「付録C」の最後にこう書かれています。優れたプログラミングテクニックやパラダイムは「使いすぎてみて」少し戻ってくるくらいが良い塩梅です。「過ぎたるは猶及ばざるが如し」と言いますが、それでも一度ハマってみて一歩引いて俯瞰する姿勢が正しい技術に対するスタンスなのかもしれません。この辺りのスタンスを念頭に置いておく意味でもまずは付録Cを読むことをお勧めします。:)おわりに「テスト駆動開発」訳者の和田さんに「いいね」押してもらえたこのツイートが自分なりの「テスト駆動開発」に対する感想・解釈の全てかも(誤字があるけど)。2018年5月6日あと、TDDに特化していなくても、テスティングフレームワークにはさまざまソフトウェア開発の知見が詰まっているので、それはそれで色んなテスティングフレームワークのソースを見るのは良い習慣だと思っている。TDDではないけど、PerlのTest::Moreと、Test::Harnessのソースコードを延々と読むことでPerlについての深い理解を得られたと思っている。「テスト駆動開発」の第II部は本当にさらっとだけxUnit系テスティングフレームワークの構造の触りだけを紹介しているだけなので、あれを出発点に実際の色々なソースを読むと更に深い学びが有るので、お勧めです。Type-Sを買った月別アーカイブはてなブログをはじめよう!magnoliakさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。