コピペで栄養管理

栄養学を数学、物理学、生化学、分子生物学、医学や情報科学の観点から考える場所です。

テスト・ファーストと栄養指導

2009-01-02 13:33:39 | 栄養士とコンピュータ
テスト駆動開発、つまり、TDD(Test Driven Development) は最初にテストを書いて、その後でプログラムを書く、これを繰り返しながらプログラムを開発するスタイルです。

私のコピペ君はそのスタイルで作ったものです。まだまだテストに関しては、分からない点がありますが、メリットはいろいろあります。



一番大きい点は、余分なことを考えない、書いてる最中に夢膨らんじゃうわけで、いろいろ先回りして考えちゃいます。でもまず、テスト課題をクリアーしてとやっていくと、それらの不必要さが見えて来て、おのずと先が見えてくる。これ不思議な体験です。

でも、プログラムするのに、ちょこちょこって出来ることを、わざわざテストまで書いて、めんどい!! って思っちゃいます。でもそうではなくて、いわうるこういうUnit テストを書くことで、機能部分と表示部分、とかいろいろ見えて来ます。その際同時におおげさなことも考えちゃうのですが、まずこういうテストを書いて、これをクリアするには? って考えていく中で不思議と収束していきます。


また、かならずといっていいほど、いろんな本で、テスト・ファーストを推奨しています。なぜか? プログラム with TEST のほうが プログラム 書くより実際速く開発できるからです。実際、コードを書くよりも、どこに間違いがあって動かないのか? バグの箇所をみつける方が時間がかかるからです。テスト・ファーストのプログラムは問題があっても、その原因は簡単につきとめられます、なぜなら、すでに通ってるテストのところは、期待した動きをしているから、予測がしやすいからです。ある意味では、いろんなブレークポイント評価式がいつも用意されてる状態といえばいいでしょうか?


ただ、テストはそれを通れば完全なプログラムが出来るようにかくものではない。つまり何をしたいか?そのためには、どういう動きをして欲しいかの青写真に過ぎない。それ以上細かくすべきでない点も大切です。

まだ、表示部分のテストをどういう風につくったらいいのか? 見えてません。いろんなプログラムを参考にしたりしてけばいいのでしょうけど、なかなか時間が。。。(^^;


さて、これを、栄養指導に使えば、いいのでは? って考えてます。栄養指導を今のはなしで考えれば、栄養士さんたちは、プログラム書くことは簡単なわけです(これは、目的にあった料理をつくったり、カロリー計算)。
でも、あえてテストを書いて一段階ずつやっていくとき、まどろっこしいと思うでしょう。でもこれだったら、普通の人もクリアーできそう。(もちろん、それでも大変ですけど)
このとき、問題点と無駄に努力しなくてもよい点などが見つかっていく、と同時に、問題があっても、どこに問題があるか? に時間がかからない。

もちろん、いろんなくり返し操作が必要となってPCの力も必要かもしれない。でもテストを書くことで、栄養指導の「具体的」アルゴリズムが出来ていくと思います。テストなしのプログラムではなく、テスト・ファーストで TDDで栄養指導を開発しませんか?

大きな変化起こると私は信じています。


コメントを投稿