私の希望は、エンジンによってアプリの機能を簡単に追加または削除できるようになることでした。しかし、エンジンがどのように使用されているかを見るたびに、それらをきれいに無効化/アンインストール/アンマウントすることについて誰も話していません。これどうやってするの?
ケースは、かなり似ているアプリの製品ラインです。ほとんどの機能を備えたバリアントの開発を開始し、機能を無効にしてアプリの他のバリアントを取得することで逆方向に作業します。
これを AOP のアスペクトと少し似たように機能させたいと思います。依存関係を (双方向で) 宣言できるため、アスペクト/エンジンを削除したい場合、そのエンジンに接続されているすべてのコードが削除/無効になります。Rails エンジンでこれを行おうとすると、多くの絡み合ったカスタマイズされたコードが必要になります (たとえば、ビューでエンジンの一部を使用する場合)。