2013年2月19日火曜日

ライブラリの設計思想


ライブラリの設計思想をまとめた資料は、
後世の保守・開発プログラマにとってとても有益になるので、
極力実装者が残しておくべき。

「このAPIはこういった処理をするものだ」という規定があれば、
新たなフィーチャーを実装するにあたり、
複数の実装方法が考えられるときは、
まず回帰すべきは設計思想だと強く思う。

今携わっている仕事はこういったものが皆無であり、
実装者も退職or他部署で働いてたりする。
ソースコードを熟読して感じ取ること、
コミットログから何らかの思想を感じ取ることで、
最適な実装方法を見つけようと努力している。



加えて、
ライブラリの初期の開発者は、
拡張性しやすいソースコードにすべきである。
複数のデバイスを同時にハンドリングするデバイスドライバ等を書くにあたっては、
決め打ちでデバイスタイプをハードコーディングすることは避けたい。
IS_SAMPLE_DEVICE( devType )のようなマクロを用意し、
マクロに追記するだけで拡張できるような仕様にすべきだ。

将来を見通してSDK、ライブラリを用意することは、
熟練した、経験豊富なエンジニアにならできることだと思う。
私のようなへっぽこエンジニアがそういった達人プログラマーに近づくにはどうしたら良いんだろう。