KH-FDPLのノート0006
(1) オブジェクトのリビジョン番号について
- KH-FDPLではオブジェクトがリビジョン番号を持っています。・・・まずこれが何のためにあるのかということを明確にすると、オブジェクトが変更されたかどうかを知る方法がなかなかないと思ったからです。
- もちろん、すべてのメンバの値をどこかに保持しておいて、それを一つずつ比較していくことで、変更があるかどうかを確認することはできます。そしてもし変更があったら、他の連動する値を更新したりする処理を書くことができるでしょう。しかしこれはオブジェクトが大きくなったら、結構重たい処理になります。実装するのだってめんどうです。それでそうするのかというと、値の比較なんてやめて、無条件で、連動値の更新をやってしまうようなコードを書いてしまうのです。
- これは重いです。ただでさえKH-FDPLはCやC++に比べれば重いのに、これでは差は開く一方です。そして初心者に「変更があった場合だけ更新するようにすれば簡単に高速化できるよ」ということを簡単に教えることができません。大事な考え方なのに!
- でもリビジョン値があって、これを比較するだけで更新があるかどうかを容易に検出できれば、問題は解決です。ということでこの機能があります。
- せっかくリビジョン値があるのだから、履歴とか復元とかもできれば・・・と言われるといやほんとに全くその通りなのですが、そしてそれができればバックアップとかもシステムがやってくれることになるのでとても便利なのですが、しかしたかが i++; を実行するだけでも履歴が発生することになって、それはとても大変になります。ちょっと現在のKの実装力では、実現させられなさそうです・・・無念です。
こめんと欄