最近オレオレフレームワークの話をして来ましたが、語感がよろしくないうえに愛着も湧かないので、ささやかながら新たな名前を与えることにしました。その名はFaktro(ファクトロ)です。
エスペラントのFundamentaj Adekvataj Klasoj por Tipa Reta aplika programaro kaj Objektema programadoの頭字語で、「典型的なウェブアプリケーションとオブジェクト指向プログラミングのための基盤的で必要十分なクラス群」というような意味です。英語ではfundamental adequate classes for typical web application systems and objective programmingとでも表現出来ましょうか。
Faktroの概要や、今後のErmitejoの開発見込みなどを、以下に簡単に述べてみます。
Faktroの超概要
FaktroはErmitejoと同様にPerlで書いていますが、Perlで有名なフレームワークであるCatalystがcatalyst(英語の単語で、「触媒」)を含意しているのに関連して、Faktroもfaktro(エスペラントの単語で、「因子」。英語ではfactorに相当)を含意しています。もっとも、Wikipediaの頭字語の解説でも看破されているように、
あらかじめ語呂や評判のよさそうな頭字語を作ってから、構成単語をこじつけて設定する例が少なくない
という傾向がなきにしもあらずですが。
さて、FaktroはMVCに基づく構成で、例外, ログ, セッション, クッキー, ログオン状態管理, ユーザ権限管理, 資源配備などの基本的なところを押さえています。学習用の劣化Catalystといった風ですが、業務制御表やら例外表等々、定義をOpenOffice.org(ないしはExcel等)の文書にまとめて書ける辺りが、物臭な私の手に適合していると考えています。Perl 6を見据えてAttribute::*系のモジュールでスコープを限定してみたりと、少々実験的なこともしています。
……というのも含めてアプリ側で持つなり既存のCatalystやCGI::Applicationなどのプラグインで持つなり(ただしCatalyst::Plugin::*の安易な仕様は厳禁)すればいいのでしょうが、こういうときだけ学習用という贖宥状を取り出してみたりします。
ダイエットしたErmitejoの今後
エスペラント日本語翻訳システムErmitejoから基盤的処理を分離独立させたことで、システムの見通しが良くなり、精神衛生上の効果も少なからずありそうです。何せ、1万4千余行を別物として扱えるので、Ermitejo自体は約半分にダイエットしたことになるからです。ついでに最近とみに増してきた私の体重も減ると良いのですが……。
なお、素直にCatalystを使う手もありそうですが、Faktroで飛び抜けて変なことをしているわけではないため、切り替えることになっても労力を多く割くこともないと捉えています。
目下Faktroという基盤の上に立って構文解析処理を実装していますが、まず初めての成果としては、現行の辞書引き(字句解析~形態素解析)の精度を向上させた実装がお目見えすることになるかと思います。ようやく今年度(今年に非ず)の夏休みが取れそうになってきたので、その辺りでまとめて仕上げてしまいたいものです。