るいもの戯れ言
#323
2017/03/12 03:01

「プログラミング作法」を送っていただきました。私はずっと「プログラム書法」の方だと思っていて、いただいた時に「あれ、こんな内容だったっけ?」と戸惑ってしまった。

他の言語に関する記載もあるが、基本的にC/C++での作法の本なので、そのあたりは気に留めておく必要があるだろう。というか他の言語の話まで無理に入れなくて良いと思うのだが...

第1章は名前の話やスタイル(インデントなど)の話で、このあたりは(副作用の話あたりを除けば)、他の言語でも通用する話と思われる。あとはマクロの使用方法の注意やコメントの注意。

第2章は、二分探索、クイックソート。その後はデータ構造として動的配列にリスト、ツリー、ハッシュ。

第3章は、マルコフ連鎖を実装していく。Javaやawk/Perlでの実装が出てくるが、Java版はVectorとか使われていて、さすがに古さが否めない。性能比較が出てくるのだが、これも多分JVMの起動時間まで含めて計測してしまっている感じで、参考にはならない気がする。

第4章は、CSVのパースを行うが、strtokを使った簡易版。この本が書かれた時代は、RFCも無かっただろうし仕方が無いだろう。インターフェイスを作成する際に何に気をつけるべきかが記載されている。

第5章は、デバッグの方法。ここまで色々とコツが書かれているケースは珍しいかもしれない。

第6章はテストの話。境界条件など何に気を付けるべきかといった話。そして自動テスト。この時代に自動テストまで書かれているのは先進的だったと思われる。

その後、移行、性能、移植性の話へと続く。というわけでC/C++覚えたての初心者が読むと非常にためになる本だし、絶対に読むべきだと思う。ただ他の言語の例を混ぜ込んで無理に一般的な話にしようとしたのは失敗だったのではないかと思う。