Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-05-01

Devel::REPLでのプラグイン機構

Devel::REPLでのプラグイン機構 - dann@catalyst を含むブックマーク はてなブックマーク - Devel::REPLでのプラグイン機構 - dann@catalyst Devel::REPLでのプラグイン機構 - dann@catalyst のブックマークコメント

MooseX::Object::Plaggableを使っていて、mixinの機構をPluginの機構として応用してるっていう点で面白いなぁと思う。で、さらにmixinする側にAOP的なフックを加えることで、Pluginの実行タイミングとフックポイントを決めている。

ただ、method modifireをフックポイントへの実行するコードの登録に結び付けているのは、もっと明示的なインターフェースのほうが美しいのかもしれないなぁ。

  • どのフックポイントに
  • どのタイミングで
  • どんな処理を

ということを登録するインターフェースが明示的にあったほうがいいのかなと。要するに、上記のことを登録する関数がPluginのRoleとしてあったほうがいいのかなぁという気がする。

現状でも、MooseとRoleの仕組みをわかっていれば、Pluginは作れるんだけど、もう少し明示的なインターフェースのほうがいいのかもなぁという気もするという程度ではあるのだけれど。

Pluginの機構はもう少し色々とみてみよっと。