急だが、私が「OOPが嫌い」で生み出したパラダイム、フレーム指向をRectolに実装するのはやめることにする
きっかけ
RectolにはPsictreという自作パーサコンビネータを用いている。Psictreの型に関するテストを書いているTest.fsのSample2モジュール、これを見て気づいたことはないだろうか
よく見ると、各型に
-
ITRTypeConstraitインターフェース -
ITRTypeConstraitGetter<'a>インターフェース
を実装している。これらのインターフェースはTRModule.fsにある
これを見て私が気づいたことは、「型定義がユーザー任せになっている」ということだ
ユーザー任せだと?
Psictreのロジックの設計では、別の型に依存するコードを書くため直ぐに直せる
しかしどうだろう。例えば、複数人で開発していて一人がある特定の実装を忘れていたとしよう。これが後々悪影響を及ぼし、抜けていた部分を実装する
これはものすごく面倒で、最初から書いておきたい
「ユーザー任せ」、これがRectolの方向を変えた
フレーム指向はユーザー任せ?
フレーム指向では、型が不完全でも最低限必要なフィールド・関数があれば良いことになっている。つまり、実装を忘れていてもOKなのである
私はこれをユーザー任せだとし、廃止したのだ
終わりに
これからのRectolは「ユーザー任せを限界まで消す」という目標を加えて開発していく