「はじめてのOSコードリーディング」の10章の残りと11章を読み、読了しました。

しかし十分理解できたとはとても言えず、この先どう進めるか検討中です。

いきなりこの本を最初に戻って読み直すのも手ではありますが、気持ちがだれてしまいそうなので、本家のLions本とかUNIXv7と一緒に勉強することを考えていますが手を広げ過ぎかな。

UNIXv7を候補に挙げているのは、UNIXv6のソースコードを理解しにくい一因が使われているC言語が古いため型の扱いが自由過ぎて?混乱するように感じたからです。本家のUNIXv7のC言語も古いかもしれないですが、それをx86に移植したv7x86を読めばどうかなと思っているところです。

せっかくここまで来たので、できれば今年中に目途をつけたいと思っています。
eclipse+CDTの環境にgoogle testを追加してテスト駆動開発を試してみました。

元々テスト駆動開発は良さそうな予感はありましたが実際にやったのは今回が初めてです。結論としては、テスト駆動開発がかなり気に入りました。

確かに初めてやっている最中は作業が冗長になる感じもしますが、目的とするプログラムが完成した時にテストプログラムも完成しているため、その後のバグの修正、仕様の変更追加、リファクタリングが非常に楽になるのを実感しました。

gccの設定によりCプログラムの各行を実行したかの統計情報がとれるため、テスト不足の箇所はすぐ分かります。

今回は部品となる関数を作るのにテスト駆動開発を適用したのですが、部品がそろっていて最上位のアプリを作る段階だとテスト駆動開発は合わないかもしれないですね。ソフト設計との関係もまだ整理できていません。

今後も様々な例に適用してテスト駆動開発の向き不向きを考察したいと思っています。
今回は12章のネットワーク通信を読みました。

以前からこの本は読み難いと思っていましたが、そう感じているのは自分だけではないようでした。言葉の言いかえが多いのも一因だと思われます。

12章については間違いもいくつかありました。図の中の矢印の根元がずれていたり、表の中の数値が間違っていたり。

読み難い上に間違いまであると一人で読んでいると行き詰ってしまうのですが、勉強会だと誰かが指摘してくれて乗り越えられる場合もあり大変助かっています。