詳細設計書について思うこと
ちょっと前に、ブログ界隈で、プログラムの中の条件分岐レベルあたりまで文書化したプログラム設計書、私がよく接する言葉では「処理機能記述」についていろいろと議論がされてました。例えば、下とか。
- 「プログラム設計書」って必要?(おごちゃんの雑文)
あとは、「今日のひとこと」に引用させてもらった下とか
- ソフトウェアの仕様書は料理のレシピに似ている (Life if beautiful)
で、大体、有名なブログをやってるようなスペシャルなギークのみなさんは「そんな設計書なんて意味ねーべ」とおっしゃってる。私も意味がないかどうかは別として、うまくいかないとは思ってる。理由は単純。DRYに反してるから。うまく行かないことは辞めた方がいい。
でも、今回のプロジェクトでいろいろな場面でこのいわゆる「処理機」に関わっていろんな事を感じました。論にはなってないけど、思ったことをダラダラと書き流します。
いわゆる、処理機と実際のコードの差は何でしょう。処理機はプログラムに書くロジックがまんま書いてあるわけですが、それはそのままでは機械に実行できない。つまり、日本語で書いた擬似コードから様々なプログラミング言語へ翻訳することが処理機を元にコードを書くことなわけです。
で、それは価値のあることかというと・・・びみょーなわけですよね。上のお二人の言うとおり。日本語がカタコトの中国人でもまあ、なんとかやっちゃうわけですから。今回のプロジェクトで仕様が特に簡単なマスターメンテナンス系の画面はある程度パターン化して中国へ発注したんですが、紆余曲折や文化の差による誤解など独特の障害はありつつも総じて問題ないものが上がってきました。上でいう処理機をちゃんと書いておけば、ちゃんとものが仕上がる。物価に死ぬほど差がある日本人がここで勝負しちゃダメだ。
でも、もっと言えば、
論理的には機械化可能
なんですから、コンピューターがやればよろし。
ところが、まったく無価値かというとそうとも言い切れないですよね。お客さんの要求仕様がはちゃめちゃで1つの画面の処理機が3000行、ロジックのJavaソースが13000行なんてダメダメな画面ができちゃったりもしたんです。ただ、その画面は本来分割するべきだとか、そういう正しい理論は置いておくとして、3000行と13000行では単純に3000行を選びたいわけです。他の人が10000行分付け足してくれるんなら嬉しいし、それはなんとなくお金を払ってもいいような気がするわけで・・・。
ただ、逆に日本語で処理機を書いてると、これいっそRubyで書いちゃった方が簡潔で分かり易くて、しかも動いちゃうからロジックが正しいかどうかも確認できちゃうんじゃないかという気もして来ます。要するに、Javaの記述性が低いから処理機を書くことに意味があるような気がするんじゃないかということです。でも、RubyならDave Thomas曰く、「思った通り書ける」わけですから、擬似コードとしても日本語より優れているわけですよ、私にとって。
ただ、本当にコードがドキュメントになるかといえば、意味不明な日本語のドキュメントは「幼稚園児か!」と突っ返せて、ある程度その行為に一般性が宿るんだけど、意味不明なコードに対する常識的なあり・なしの判断って難しいわけでそのあたりがなんともはや、難しい。私はほぼRubyしか書けないダメグラマーだけど、じゃあ、Rubyのソースだったら日本語を読むように読めるかというと、そりゃ日本語のほうが嬉しいわけですよ。
ただ、日本語のドキュメントは「機械が読めない」「テストできない」という二つの点で圧倒的にコードに劣るのは事実。
うーん・・・いろいろと悩ましいなあ・・・
「日記・コラム・つぶやき」カテゴリの記事
- さくらんぼ狩りに行った(2025.06.15)
- GWの公園でなわとびをした(2025.05.01)
- おトクなことが嫌いです(2025.04.30)
- 沖縄の美ら海水族館に行ってきた。そのはち(2025.01.02)
- 沖縄の美ら海水族館に行ってきた。そのなな(2025.01.01)
Comments