仕様と実装

昨日の続き

そもそもの発端はこちら

肝心なこと書き忘れてました.昨日のラストに書いたのは仕様のバージョンと実装のバージョンを明確にするということです.ながったらしい仕様書が必要という意味ではないです.

たとえると・・・

  • 仕様1.0の実装としてRIが1.0でました.実装にバグがあったので修正しました.RIは1.0.1になりました.
  • 仕様1.0にバグがありました.仕様のバグを直して仕様1.1を作成しました.メジャーバージョンがあがってないので,仕様1.0とは互換性はある程度維持したいですが,ないかもしれません.RIとして1.1.0を作成しました.これは仕様1.1を実装したものです.
  • 仕様2.0を作成しました.これは要望があがったもののうち必須なものをいれてみました.その実装としてRI2.0.0を実装しました.
  • Bさんが仕様1.1ユーザーがいまだ多いので1.1をベースに独自の実装1.1.0bを作りました.フルスクラッチで作成しており,1.0の実装を改良してに作ったRI1.1よりも非常に高速化して安定度もましました.ユーザーは好きな実装を選べます.もちろん,仕様外のBさんが便利になるだろうと思った独自機能も盛り込みました.

この例の場合,メジャーバージョンは仕様そのものが変更されたことをあらわします.マイナーバージョンは仕様のバグ修正や,あいまいな実装依存だった仕様の明確化程度でできるだけ互換性は維持したいなどがあると思います.リビジョンは実装の公開ごとにあがります.



そして仕様を大量の文章ではなく大量のサンプルコードつきでドキュメント化していけばいいかなと.Springのサンプルはみやすいですよね.おいらのように英語が読めなくてもなんとかわかります.同様にサンプルコードがたくさんあれば日本語が読めない人でも使えるかもしれません.コンピュータ言語は共通語なのです.短いサンプルコードは大量にあって困らないと思います.だって読むのは技術者ですから.

あとは適切な改ページ重要.seasar2のドキュメントは非常に縦に長いのが多い気がする.気分の問題かもしれないけど,こんなにあるんだとめげそうになるかも.