3.個人で学習する
さまざまなフレームワークを使ってみる
これまで紹介してきたフレームワークは、どれもインストールが簡単です。また、動作の確認や検証が可能な、個人レベルのレンタルサーバーなども多数あります。それぞれのフレームワークの公式サイトで公開されているチュートリアルなどを参考にして、初歩的な機能からチェックしていきましょう。まずは、いじり倒してみるのがフレームワーク理解への近道です。
技術力の高い方はそうでもないと思いますが、私は新しい言語を学習する場合、お決まりのhello worldプログラムを作成したあとに毎回、『で? なに?』という腑に落ちない気持ちになります。この仕組みを利用して一体何ができるのか、全然イメージできないことが多々あります。皆さんはどうでしょうか?
上から下へソースコードを追って行くだけでは、なかなか全体像が掴めません。私は実際にどんな動きをするのか、具体的なイメージとしてプログラムを捉えられないと、納得しながら進んでいけない性格のため、記述されている内容を図形と記号を使用して鉛筆で書き出し整理することで、全体の仕組みを理解していくことが多いです。
最近のフレームワークの多くは全体像を掴めるように、サンドボックスと呼ばれる練習用のページが準備されています。とりあえず機能全体をいじってみて、[全体→詳細]へと理解する内容を絞りこんでいくことをおすすめします。
Webサービスのトレンドをチェックする
さまざまなWebサービスを利用してみることも重要です。『今後どのような要求がプログラマに発生するのか』を想定し、現状の構築方法の見直しを行うことができます。
Webサービスから垣間見える変化の1つに、UI技術の変化が挙げられます。現状、さまざまなWebサービスを眺めてみると、本稿で触れてきたように、RIAの技術が各所で採用されています。自ずと、それらの開発も担う可能性があることも見えてくるでしょう。また、マッシュアップサービスでは柔軟な設計が要求されることが分かります。
GoogleReader、はてなブックマーク、deliciousなど気軽に必要な情報を収集できるサービスが多くあります。また、さまざまなフォーラムに参加し、コンシューマ系・エンタープライズ系のベンダーや、デザイナーなどさまざまな立場からの意見を聴講することで、Webサービスの今後の方向性を肌で感じることもお勧めです。日常的にアンテナを張り巡らすように心がけることで、Web全体の方向性を分析できます。技術情報を収集し、積極的にトレンドをチェックしましょう。
4.使い勝手を向上させる
フレームワークのベースとなる機能に、今までの開発で既に使用してきたライブラリや汎用クラス・関数部分を利用することで、効率化につながることもあります。また、作業工数を減らすため、部分的に既存の案件で使用実績のあるライブラリなどを組み込むという手法も考えられるでしょう。
ただ、気をつけなくてはいけないのは、近年のWebフレームワークは「設定よりも規約」という基本理念が示すとおり、さまざまな規約によってソースコードの整合性や保守性を管理している点です。
選択したフレームワークへの理解が中途半端な状態でカスタマイズを試みると、思わぬトラブルにぶつかる場合もあります。フレームワークは、実装規模の差はあれども、大量のソースコードを使用しています。十分に調査・分析ができていない状態で構築を進めることは危険です。「急がば回れ」で多少時間をかけてもきちんと技術情報を調べ、事例のある拡張方法を探すことをお勧めします。
各言語においてポピュラーなフレームワークを選定したのであれば、該当のフレームをベースとしたオープンソースのCMSプロジェクトも多く存在しています。それらのソースコードを解析して、カスタマイズの参考にするのも良いでしょう。
例えば、PHPのフレームワーク「Mojavi」とオープンソースのSNSエンジン「OpenPNE」はよく似た記述方法になっています。OpenPNEの場合、実際にサーバーにインストールし、ブラウザ上の操作や管理方法を見れるため、それらと比較しながらソースコードを追うことができます。実際の動作を見ながらフレームワークの構造理解を進め、拡張性について見当することは有効な手段の1つです。
最後に
フレームワークを使用したWebアプリケーション開発は、もはや当たり前になってきています。どのフレームワークが優れているとは一概には言えませんが、自身の開発状況とトレンドに対して総合的な分析を行い、最適なフレームワークを導入しましょう。
