2017年5月アーカイブ

Amazonアフィリンク

TDD(テスト駆動開発)をどのように組み込みシステム開発に適合させるかについて語った本。ターゲット環境やハードウェア依存・C言語依存といった部分に向き合いながらTDDを実践していくという流れになっている。またこれを通じて、TDDに適合していない従来からある「レガシーコード」をいかにリファクタリングしていくかの考察も含んでいる。

著者のJames W. Grenningは「アジャイルソフトウェア開発宣言」に名を連ねているということもあり、TDDについて学びたいような人にも通用する程度には丁寧にTDDを説明している。また実際の組み込み開発を経験しているからだろうけど、ドロドロしたような現場の雰囲気も理解した上で書かれているので、かなり実践的な本とも言える。読んで損はない本だと思う。

ただ、個人的に久しぶりに考えさせられる本だったと感じた。いや、TDDやらリファクタリングの考え方やらモジュールの独立性やら、そういった話は分かってはいるんだけど、それらを組み合わせて本当にこの本に書かれたほどに理想的な開発ができるのだろうかという疑問に悩まされる。懐疑的というわけではなく、純粋に、どうがんばれば自分の実際の開発に取り込めるんだろうという問いを突きつけられた感じがする。

4.6練習問題より「LEDを負論理にすれば0.12ドル削減できるといってきた」「LEDを負論理にした基板を完成させた。だが現場には、以前の基板がまだある」とか本当に泣けてくるわけで。6.1.4の「ユニットテストには標準と計画があってテクニカルレビューをしてコメントに計画と実施を記述して...」とか本当に泣けてくるわけで。そんな状況を変えられるもんなら変えたいわけよと。

ハードウェア非依存にモジュール独立性高めるため関数ポインタを積極的に使うべきという話にも少し抵抗を感じる。関数ポインタを多用した「うまい」設計というのは、得てして、実行してみないと動きが予測しづらいわけで、ターゲットのハードウェアなしに実施するのは何か怖い。もちろんホスト向けビルドがちゃんとできてPCだけで擬似的に実行できるなら不安はないんだけど、そういうホストとターゲットをすぐに切り替えられるようなモジュールってこれまでの経験上すぐにメンテされなくなるんだよなぁ。うん、グチが出てしまっているだけかもしれない。

モジュール性ってなんだろ、移植が容易ってどういうことだろ、仕様ってどう決まるんだろ、などなど、多面的に考えさせられる本だった。

このアーカイブについて

このページには、2017年5月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2017年4月です。

次のアーカイブは2017年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0