C++のためのAPIデザイン

December 10, 2012
私はAPIをデザインする立場じゃないんだけど、この本の著者はピクサーをはじめアニメーションスタジオでの開発に携わっていたMartin Reddy氏なので原著が出た当時興味持ちました。ちょっと前にオブジェクト指向のプログラミング言語の某書籍を内容も確認せずに買い、あまりのダメっぷりに絶望して「もうこういった本は買うまい」と思っていたんですけど、本屋で日本語版見かけて中身をざっと読んだらAPIをデザインする立場で書かれた本だけどAPI使う側から読んでも面白そう、しかも各章の導入は自分にとってなじみある事柄なんだけど、内容の後半がわからない(つまり自分にとっては未知の領域)という絶妙な配分で好感触。で...結局Amazonで買ってしまった。すんません本屋さん...打ち合わせ行く途中で荷物増やしたくなかったんです。

日本語版では総ページ数で500ページ超。なかなかの読み応え。対象者はC++でAPIをデザインするプログラマーなわけですが、とりあえずC++が書ければ理解可能。文章は比較的平易な表現を使ってくれているので、オブジェクト指向ってどんなものかを理解していれば別にC++でなくても大丈夫だと思います。

第1章 はじめに
第2章 優れたAPIの特徴
第3章 パターン
第4章 デザイン
第5章 スタイル
第6章 C++の使用法
第7章 パフォーマンス
第8章 バージョン管理
第9章 ドキュメント
第10章 テスティング
第11章 スクリプト記述
第12章 拡張性
付録A ライブラリ

まだ全部読んだ訳じゃないのですが、ざっと読んでみた感じとしては1章と2章がAPIをデザインでのC++へのアプローチというか心構え、3章から5章はざっと読飛ばして、6章はよりよいコードを書くためのC++再入門というか今までの自分へのダメだし。9章のドキュメントはドキュメント作成時の注意事項で某SDKのドキュメント作者に読ませてやりたい内容。まだ読んではいないけど、第12章のスクリプト記述ではスクリプト(主にPython)からのC++ APIへのアクセスについて書かれています。最近のPythonでは避けて通れない内容。

APIをデザインするような立場の人に向けて書かれた良書だと思うのですが、日頃さまざまやSDKやライブラリなどを通じてAPIを使用している人も読んでおくとアプローチの方法が変わってくるんじゃないでしょうか。私のようなプログラマーでない人間が作った小規模のプログラムとは言え、APIの最初の提供先は将来の自分だったりするわけで、「ああ、なんで自分はこんなインターフェース作ちゃったんだ...」とかあるわけです。読み物としても面白いので個人的にはお薦めです。余談だけどコラムでAmigaOSが出てきたのは驚いた。


C++のためのAPIデザイン
マーティン・レディ Martin Reddy
ソフトバンククリエイティブ