コンピュータサイエンスの第一人者 Donald Knuth博士が提唱しているプログラミングスタイル。
一言で言えば、プログラムの意図を伝えやすくするように、適切な構造でプログラム及びコメントを書くこと。
狭義ではDonald Knuth氏の作ったWEBを使ったプログラミングスタイル(このWEBはHTTPのことを理解しない) 広義では、JavaDocやPerlDoc等も入れても良い?最近はエラー制御構文もあるし。
しかし、Donald Knuth氏のWEBではプログラムのソースコードより、コメントの方が遥かに大きい。 本の中に、その本の解説用のプログラムを書き、コンパイルしたい時はその本からプログラムの部分を抜き出すといった方が良いか? (WEBというアプリが、ソースの抜き出し&再構成してくれます。)
たしか、Knuth の文芸的プログラミングでは、 「WEB」とすべて大文字で書くんじゃなかったかな?
「POD は文芸的プログラミングではない」
も読んでみて
紹介していただいたページを読みました。 私が勘違いしていたみたいですね。
文芸的プログラミングは、本屋で立ち読みした程度しか知りません。 昔のことなので忘れていたなー。(と逃げておきます)
ユースケースのシナリオも、文芸的なのかな? 大変、勉強になりました。(文章も、ほんのちょっと修正しました) なんか、他にも突っ込み所満載の文章のような気がします。
文芸的プログラミングの中にテストファーストのコンセプトも含めることはできないだろうか? と考えてみる。
ソースはこんな感じ?
@ セクション名 説明の文章 @t テストコード @<チャンク名@>= ターゲットコード : :
ソースを weave にかけると自動的に、
という感じの流れ?
テストコードの書き方として、
assertEquals(foo, bar); // foo は bar でなければならない
みたいに記述し、テスト成功の場合ドキュメントには
テスト失敗の場合
と表現されると便利?
Wikiをベースに文芸的プログラミングのツールを構築できないか考えてみる。
@* 本文のセクション名 本文‥‥‥ ‥‥‥ @p (コードのエントリポイント) コード‥‥‥ ‥‥‥ @<コードのセクションを挿入@> ‥‥‥ @* 本文のセクション名 本文‥‥‥ ‥‥‥ @d マクロ定義‥‥‥ @<コードのセクション名@>= コード‥‥‥ ‥‥‥ @<コードのセクションを挿入@> ‥‥‥ @ サブセクション本文‥‥‥ ‥‥‥ @d マクロ定義‥‥‥ @<コードのセクション名@>= コードのセクションに追加する更なるコード‥‥‥ ‥‥‥ @* 本文のセクション名 本文‥‥‥ ‥‥‥ : :