« 良くない兆候 | Main | 21世紀とラジオ »

February 27, 2010

仕様記述言語

artonさん 曰く

リファクタリングの動的環境版 (L'eclat des jours)

ところで、リファクタリングをし尽くすと、最終的なコードはほぼ関数型で記述したものと同様なコードになるような気がする昨今なのだが、もしそうであれ ば、手続き型のコードとはまさに(人間から聞き取ったものをそのままシステムに写像した)仕様記述ということではなかろうか。

面白い。すると、例えば最強の仕様記述言語(Rubyはかなりそれに近いと思う)のようなものがあって、

  1. ユーザーから要件を聞き出して、[要件定義書]を書く
  2. 仕様記述言語を使って[動く仕様書]を書く
  3. ユーザーと開発者が[要件定義書]と[動く仕様書]を元に仕様の確定を行う。
  4. [動く仕様書]をリファクタリングして、[詳細設計書]を得る。
  5. [詳細設計書]を元に関数型言語で実装する。

という流れが作れるのではないでしょうか。ここで、最終的なシステムをなんで関数型で書き直しているかと言えば、最終的な環境はクラウドになっていて、手続き型ではスケールしない場合を考えているからです。リファクタリングしたRubyコードがそのまま問題なく使えればいいんでしょうが、まあ、餅は餅屋だろうと。

こういうことを妄想した理由のひとつは、「より良いウォーターフォール」ってなんだべって思っていることです。ウォーターフォールがいいなと思う理由は、ユーザーの負担が少ないから。大抵、ユーザーさんってのは忙しいので。このやり方だと、仕様書決定まで付き合えば、テストまでユーザーは解放されるわけですよ。

もう一つ、常々、仕様書を書くのって無駄だなと思っていること。不要だと思うわけではないんですが、仕様書ってユーザーがレビューできないものです。ちんぷんかんぷんだから。というか、他人が書いた仕様書のレビューも厳しい。結局、仕様書って動かないから、コードの机上デバッグのような気分になります。なら、仕様書が動けばいいわけで、なんで動くコードが仕様書じゃダメかと言えば、日本語で書く方がコーディングするより速くできると思っているからですよね。でも、Rubyならかなりイイ線にいきます。もちろん、仕様書であることをぐっと意識したコードである必要はありますけど。

|
|

« 良くない兆候 | Main | 21世紀とラジオ »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/47905/47676623

Listed below are links to weblogs that reference 仕様記述言語:

« 良くない兆候 | Main | 21世紀とラジオ »