2010年5月21日金曜日

python elixir、しばらく使い込んでみました

python elixir。その後、しばらく仕事で使い込んでみました。
http://elixir.ematia.de/trac/

基本的に import * を推奨しちゃってる感じですね。
設計方針的に。

勝手に?暗黙に?処理する部分が結構あって、
エラーの出方に意表を突かれます。
それが馴染むか否かですね。

setup_all() とか、
現在の名前空間から、Entityの継承クラスを探して、
それぞれ「重要な何か」を仕込んでいるらしい。

リレーションしてる様なケースでは、普通はjoinするのが筋なんでしょうけど
#ついapp engineのつもりで、
他のEntityのqueryを作るようなメソッドを書いちゃったんですが、
いざ使おうとしたら、queryが居ません。みたいな。

発想は美しいような?妙にチグハグなような?
じゃあmetadata.bindは何をやってるんだ?的な憤りはままありますが。

elixirを使う場合は、Entityの実装はあまり小分けにしないで、
__all__をちゃんと書いた方が上手く回る。ということなんでしょう。
#アレ?それってpythonでは常識??

筆者は、名前空間を上書きしない主義。だったので、
抵抗というよりは、カルチャーショックでしょうか。

総評としては、elixir(引いてはsqlalchemyも?)は、
pythonマスターによる、pythonマスターの為の。
という感じでしょうか。