ウェブ開発のフレームワークって最近は本当にたくさんありますね。メジャーなところだとCakePHPや、Symfony、zend framework、CodeIgniter、あとはRubyでお馴染みruby on railsなどでしょうか。
ここしばらくPHPフレームワークでの開発を継続的にやっています。去年はCakePHP1とCakePHP2を、そして今年はSymfonyを使った実務開発をしています。楽しくコーディングの日々を続ける中で、ジグソーパズルとフレームワークを用いた開発ってとても似ているなってふと思いました。
とにかく手を動かして答えを探る
パソコンでカタカタプログラムを打ち込むフレームワーク開発と、ジグソーパズル。
この2つの一体何が似ているのか。
直感的に感じた共通点は手を動かすことです。
どちらも、とにかく手を動かし探って作り上げていきます。ピースを組み立てていくと徐々に絵が見えてきます。
ピースをはめるまでのもやもやした感じ、
そしてピースがカチッとハマった時の心が小さく踊る感じ。
フレームワークに用意されている機能や仕組みはパズルのピース
必要なピースは、基本的にフレームワーク上に全て用意されています。
用意された無数の部品が正にピースのようなもので、ピッタリとピースをはめるまでの過程が苦労します。ですが、ぴったりとはまる瞬間が気持ちいいし楽しいです。
そしてピースがはまる度に徐々にリズムが生まれてきます。ジグソーパズルも後半になるほど楽ですね。
検索フォームを作った時に強く実感
パズルな感覚はデータ検索フォームを作った時に強く実感しました。
フォームに入力した文字でデータベースを検索して表示するシンプルな画面。
なにもフレームワークの仕組みを理解してまで頑張って検索しなくても、自分でゴリゴリ書いて実現してしまえばいいじゃんと思いながらも、フレームワークの仕組みを使って頑張って実装することにしました。
ピースが合うまでが、ものすごーく苦労しました!
そもそも、どうプログラムを書いていいのかわからないですし、
フレームワークで一体なにが行われているのか分からない!
思い通りにシステムが動かない時間が続きました。
・・・正直もうあまりやりたくない作業です。
開発を楽にするためのフレームワークなのに、
こんなに苦労して意味があるの?ってちょっと思いました。
でもでも!
それでも、マニュアルや動作サンプルを調べて動かしてみて、やっと動いた時に真価が分かりました。間違いなく苦労した以上の価値がありました。
動くまで苦労するけど、動いてしまえば「あれ、もう全部出来てる」って。データを検索できるし、表示もできる、入力チェックもできる、更にページングの実装まで出来上がってる…!
自力でこれらをコーディングする大変さも知っている自分にとっては、これがフレームワークの力なのかと唖然としましたね。
フレームワークに用意された仕組みを使って実現すること
せっかくフレームワークを使っているのですから、
是非フレームワークの仕組みを使ってやりたい事を実現することを検討してみてください。
必ずしもそれが最良とは限らないですし、時と場合によりますが
動いてしまえば苦労した以上の利益が得られることも多くあります。
新たなフレームワークやプラグインの使い方を知ることで、
今後の開発が圧倒的に楽になります。
フレームワークの理解を深めることは今後への投資とも言えるでしょう。