2013年12月9日月曜日

Risolutoの設計思想 その1 | Risoluto@アドベント・ぼっち・カレンダー:6日目

ABC(*1)の6日目。共通テーマは私が開発している「Risouto」についてです。



Risolutoはゴミである


だらだらとRisolutoが生まれるまでの話を書き連ねてきたわけだけども、そんなこんなでRisolutoを作り始めるまでの歴史(?)は理解して貰えたと思う(*2)。結局の所、Risolutoってのは自分のSandboxなんだ。そういう意味では、おそらく自分以外の誰かにとってはただのゴミに過ぎない。

自分語りはこの辺にして、いいかげんRisolutoそのものにフォーカスを当ててみようとおもう。

Risolutoとは何なのか


「結局の所、Risolutoってなに?」という疑問が最初に浮かんでくると思う。それに対する模範的な回答は、「Risolutoは<シンプルで軽い>をコンセプトに開発されたPHP向けフレームワークです」といったものとなる。

この「シンプル」そして「軽い」、これがRisolutoの最大の特徴。ちなみにこの「軽い」ってのは動作速度の話ではなくて(*3)、インストールだったり何か作ってそれが動くようにするまでの手間の話。言い方を変えると「お手軽」ってこと。

既存のFLOSSなフレームワークをみたとき、PHPだけ理解してても使えないなぁ……というか、フレームワーク固有の何かを理解するってステップが必要で、そういったのがやけにめんどくさく思えた。

私は本当にちょっとしたものを作りたいだけ。なのにそれを実現するために覚えなきゃ行けないこととか、準備しなきゃ行けないことがなんでこんなに多いんだろう。そんな大それた事なんてしようとしていないのに。

だから、Risolutoは極力「PHPを理解していればつかえる」ように作った。少なくとも作ろうとした。

RisolutoはCMSではないしCMSを目指してもいない


RisolutoはCMSではない。Risolutoの関連プロジェクトには、ニュース機能やブログ機能なんかは用意されてたりするけど、それは普段よく使うから用意しといたよ……って意味以上の何かはない。

それらを組み合わせればCMSライクにつかえるし、それらに頼らずとも自前でCMSを実装することはできる。そう、Risolutoはフレームワークだからね。ただ、CMSを作ろうとしたときに、他のFLOSSなすばらしいフレームワークを使うのとどっちが良いのか……と聞かれると、それは分からない。個人的には他のフレームワークの方に分があるような気がするけれど。

用意されたレールを外れるか


個人的には、フレームワークがやってること(やるべきこと)は「レールを敷く」事だと思っている。他の表現を使えば「土管を用意する」って感じかな。フレームワークのユーザは、そのレールの上に何を走らせるか(*4)に集中することができる。

その「レール」は大抵の用途にマッチした分だけ用意されているはずで、自分がやろうとしていることが「大抵の用途」に合致してさえすれば、不自由のない生活を送ることができる。逆に合致しなければたちまち使いにくくなる……というか、小回りがきかないというかなんというか。そんな印象を持っている。

Risolutoはそうならないように気を付けた。というか、言うなれば「レールを敷くための準備はしてあるから、勝手にして」って感じに近いかもしれない。

押しつけない


重要なポイントに、フレームワークのルールを極力押しつけないというものがある。

Risolutoはできるだけ最小限のものしか用意していない。だから、それ以外の部分については、ユーザが自由にできる余地を残している。逆に言えば、それはかなり大きなデメリットで、「自分でやらなきゃ行けない部分がおおくなるよ」ということでもある。

自由には責任が伴うんだ。何でもできるから、節操の無い人だったらカオスなことになるのは時間の問題だ。それを保護する仕組みもない。

モダンなフレームワークなら必ずと言っていいほど持っているような機能(*5)も、標準では搭載されていない。代わりに、自分の好きなライブラリなんかを持ってきて使えばいい。それがRisolutoの思想。

そういうのがお気に召す方のためのフレームワークがRisoultoなんだ。

というわけで、Risolutoのゴミさ加減が良く理解して貰えたところで、続きはまた明日。


*1:アドベント・ぼっち・カレンダーの意
*2:諸事情によりフェイクが含まれてはいるのだけれど
*3:動作速度的な意味でもそんなに重くはないはずだけど……
*4:土管のたとえでいえば「何を流すか」とか「何を通すか」か?
*5:ORMとか

0 件のコメント:

コメントを投稿