/var/log/masayoshi/masayoshi.life.log

とりあえず、書きたいこと書くだけ。

Reinforce_Zweiの裏話 第1回 実装開始

模索

ある程度の実装を頭の中で考えて、コードを打ち込み始めたのだが既に前回書いたとおり場当たり的な実装になってるわけでとにかく苦労の連続という。
苦労したポイントといえばモジュールの命名規則ですね、正規表現を改めて勉強する機会になってました。
Reinforceではモジュールはすべて「import_module() 」という関数を介して行うのですが、そこで使う引数のパターンマッチの実装は楽しい方だったかな。
ソースコードの同メソッドの部分を見てもらったらわかるとおり、相当ざっくりと実装しています。例外処理も組み合わせてるので、ある程度はエラーにも対処できるはず。

モジュールもダミーとして単独で動くものでは「Nanoha」やら「Fate」、親モジュールと子モジュールがあるものは「Wolken」の下に「Vita」とか置いてみたりして挙動を試してました。
ダミーの名前の元ネタは言わずもかな、基本的になのはから引用しています。 Reinforceからして引用してるから、仕方ないといえば仕方ないのですが。

ちょっと、実用的なものを作ってみるか

最初にとりかかったのが日時周りのモジュール、とりあえず現在の日時などを取れればいいやと思って軽く実装してました。
この頃は別の仕事をしていたので昼休みを使ってスマホ経由でgistにコードを投げておいて、帰ってから実装するなど変わったことを試してた気がしてます。
githubのクライアントを通して一人でコードを眺めてみて修正部分をissueにまとめとくなどある程度は機能使ってたのかな。

途中まで出来てきた所でまた別のモジュール作ってましたが、結構飽きっぽいんです。
とりあえず、興味があるところまで作ってしまえば満足してしまうのが悪い癖ですね。 この記事の裏では実装が終わってないものがゴロゴロ転がってます。

転換 〜mod_rewrite

しばらく、ちょこちょこ作ってみて自分のアプリのほうでも使おうと思っていた矢先に出会ってしまったのが「mod_rewrite」というApacheのモジュール、Zweiでもフルに活用しています。
これをReinforceでも使いたいと思ったんですが「ただのモジュールにしても意味がない」という考えがよぎったのと、本格的なフレームワークとして作りなおしてみたいという思いも重なりZweiの開発が始まりました。
たったひとつのモジュールの出会いがここまで変えてしまうとかなんと恐ろしい。
MVCという概念がよく理解できてなかったので体で味わういい機会にはなったと今は思ってます。

脱線 〜一応、フレームワークは試した事はある〜

このフレームワークを作るしばらく前に既存のフレームワークを試したのですが肌に合わないという理由で投げ捨ててます、規則がガチガチすぎて合わなかっただけですが。
今回はすべてを自分で決められるのとReinforceという資産があるのでそれを生かせるように遊びを入れてます。

誕生 〜Reinforce"_Zwei"〜

ともあれ、ちょっとした思いつきからでかくなっていったようでちょっと小さめに抑えたのがReinforce"_Zwei"です。
発端がReinforceだったら、このフレームワークにもReinforceという名前を入れるのが妥当だと思ってます、2代目の祝福の風が開発に吹き込まれるように。
実装していくうちにちょっとづつ自分が欲しい機能を盛り込みましたが、それは次回のお話。