未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

コードはHOW、テストはWHAT、ドキュメントはWHY

コードはHOW、テストはWHAT、ドキュメントはWHY。
先日のソースコードリーディングワークショップ2010でそんなようなことをお話した。

これは文字通りの意味だ。コードは実装の詳細HOWを表現している。どのように問題を解いたか。プログラマの数だけ表現がある。一方テストはWHATだ。何を実現するかを表している。そしてドキュメントはWHYを記す。このシステムが解決する問題とか、なぜこのシステムを開発しなければいけなかったかという魂のドキュメントだ。

WHYがあってWHATがあってそしてHOWがある。

何か解決したい問題、あるいは表現したものがあって、それをプログラムという形に落としこんで行くのがプログラマの仕事だ。

同じ機能を実装するにも、簡潔ですっきりしたコードから、冗長で散漫なコードまで千差万別である。コード量も少ない物から、無駄に長いもの、実行時間も速いのや遅いもの、保守性に富むもの、そうでないもの。様々な評価軸で様々な実装がプログラマによって生み出される。

HOWは、無数にある。

プログラマは、様々な制約条件のもと、ベストをつくし、いいものを作って行く。そのときの方法論が様々な形でベストプラクティスとして流通している。

仕事としてプログラムを作っているのなら、そのような制約条件の一つとして、納期、すなわち締切りがある。常に素早く開発することが求められる、しかも最小のコストで、最大の品質で。そのような相反する要求に対しバランスを持って応えていくのがプログラマの仕事となる。

言うのは簡単だが行うのは難しい。

テストを書かないプログラマーがまかり通っているということを見ても、プログラマの力量はピンからキリまでである。


合わせて読みたい(未来のいつか/hyoshiokの日記より)