Webアプリケーションとフレームワークを同時進行で開発すると数倍楽しい
WebアプリケーションのフレームワークといえばRubyではRuby on Rails、PHPではCakePHPが流行っていますが、フレームワークは最初の一歩がむずかしい気がします。
フレームワークでは決まりにしたがってアプリケーションを作っていくことになるため、最初にその決まりを調べて勉強し、覚えていく必要があります。人によっては面白くないと感じるかもしれません。
最近公開した梅酒.inは自分でフレームワークを作りました。「フレームワークを覚えるのも作るのも時間的コストはあまり変わらないだろう。だったらフレームワークを自分で作ったほうが面白いに違いない。」と考えたからです。
実際のところ、かなり面白かったです。面白かった理由はおそらくWebアプリケーションとフレームワークを同時進行で開発したからだと思います。
基本的な命名規約やルーティングの方法などはRailsやCakePHPを真似していますが、たとえばO/Rマッパーを作るときはメソッド名の規約はどうするかとかどんなオプションを持たせると使いやすくなるかとか、そういうことを考えます。
細かいところでは、たとえばログインしてないとアクセスできない画面に使うためのメソッドを用意したり、編集しようとしているデータがそのユーザのデータかどうかを判定するメソッドを用意したりします。
そういう使い回せる処理を用意していけばどんどん開発スピードが上がっていって機能追加が楽になっていく、そういう過程を実感できるのです。
フレームワークとは階層が異なる話になるかもしれませんが、ログイン処理を一から自分で作ったことがなかったのでログイン処理を実装してフレームワークに組み込んでみたり、ケータイの利用者IDを用いたログインを実装したり、OpenIDでのログインなどを組み込んでみたりもしました。
梅酒.inの場合はそういった機能を徐々に追加していったのですが、それはアプリケーションに対する機能追加ではなく、フレームワークに対する機能追加でした。そのフレームワークを使い回せば次は最初から同等の機能を有したアプリケーションを作ることができるわけで、そう考えるとちょっとワクワクします。
もしこれがフレームワークのみの開発だったらここまで面白くなかったと思います。
唯一手を抜いてしまったのはまだテストを用意していないところです。(アジャイルプラクティスに背いてしまってごめんなさい。)なので当面の課題はテスト作り。
そうこうしているうちにフレームワークに手を入れるのに飽きるかもしれません。飽きてめんどくさくなったら有名なフレームワークに乗り換えようかと思っています。
時代はフレームワークを使ってアジャイルに開発する流れになっているのですが、もしプログラミングがそこそこできて、でも経験は浅くて、何か作りたい物があって、フレームワークを覚えるのがめんどくさいと思っているなら、一度フレームワークを開発しながらアプリケーションを開発してみるのもいいんじゃないかなと思います。
コメントを残す