タリラリラーンと書けばよいものを。
何が足りないのか、よく考えます。
デザインパターンという考え方の浸透は、まれに見るすばらしことだと思っています。
オブザーバがててきたら、あとは大体こうなってる。
リスナーが出てきたら、かび臭いCプログラマには"コールバックみたいなもんすよ"と明言できる。
”もしデザパタがなかったら”と考えるとゾっとします。
きっと、
オレはXXXさんのYYY本をアレンジしたパターンで組むからなぁ。ここの組み方はWWWさんのVVV風でしょ。やってらんね~。
というよく見かけるイタイ風景がもっと加速されていたことでしょう。
せっかくここまでネズミの群れを誘導できたのですから、もっと抽象化を進めてもいいんじゃないかと思うわけです。
ごみために出来ることといえば、要望を出すことくらいなので、この便所の落書き以下のブログに書きとめておくことにします。
おっと、googleさんはアテになりませんよ。理由は簡単です。
・・・
そもそも手続きで記述するのがまぬけな対象まで手続きで記述すること自体がまぬけなのです。
例えば、処理に時間がかかる処理があるとします。巨大な表の各レコードのナカミを走査して、値を書き換えていくような処理です。
for( i=0; i<n; i++){
// do something
}
初期版では、これでOKですが、すぐにこんな機能追加がはじまります。
- nが大きいときには、分割して処理するようにしよう
- 処理の進行状況を他のプロセスからモニタできるようにしよう
分割処理は、呼び出しシーケンス全体に渡って変更が生じます。はっきりいって作り直しです。
プログレスへの対応は、実質シングルスレッドからマルチスレッドへの対応ですから、基本的には作り直さなければなりません。
初期化~処理する~後片付け
という素朴な仕組みで実装されたものを、
外部から制御可能なステートマシン
(しかもマルチスレッド対応)
に仕立て直すのだと言えば分かっていただけるでしょうか。両者はパラダイムが違うので、片方からスタートしてもう片方に”徐々に改造していく”アプローチは労多くして益少なしです。
スレッドプールがどうとか、どうでもいい話ばっかりで、すっきり実装してあるのを見たことがありません。
イメージとしては、D-FFのEnableやreset信号の規格が決まっていないような感じです。ありえないです。
とにかくまぁ、そういう感じのもののスケルトンが無いといえば無いので、あとはよろしくお願いします。