こんにちはサーバーエンジニアの橋本です。
最近だいぶ暖かい日が増えてきましたが、今年の冬はかなり寒い日が続いたと思います。
数年前までは寒い日が続くと必ず体調を崩していたのですが、今年は奇跡的にも大きく体調を崩すことなく過ごすことができました。
それもこれも昨年からヒートテックに代表されるインナーウェア、マフラー等を使ってしっかり防寒対策をしているからかもしれません。
それまでは防寒対策といえばコートを着るぐらいしかしていなかったのですが、冬に体調を崩すことが多かったため、昨年からインナーウェアを着るようになりました。
着るまではインナーウェアに抵抗があったのですが、一度着てしまうとその暖かさから離れることができず、今では冬を過ごすのには切っても切れないものになっています。
さて、話は変わって、昨今のWEBシステム開発と切っても切れないといえばフレームワークではないでしょうか。
10年ほど前の開発現場ではまず聞くことのなかったこのフレームワークという言葉、現在ではあたりまえのように使われるようになりました。
今回はWEBシステム開発現場にてよく使われるようになったこのフレームワークという言葉についてのお話になります。
フレームワークとは
皆さんはフレームワークという言葉を聞いたことがあるでしょうか?
このコラムを読んでいる方の中で、少しでもシステム開発に関わったことがある人であればこの言葉を聞いたことがあるかもしれません。
Wikipediaによると
ソフトウェアフレームワーク(英: software framework)とは、プログラミングにおいて、一般的な機能をもつ共通コードをユーザーが選択的に上書きしたり特化させたりすることで、ある特定の機能をもたせようとする抽象概念のことである。単にフレームワークとも呼ばれる。
とのことです。
少し分かりにくいかもしれないですが、簡単にいうとシステムを開発していくための土台のことです。
昨今ではどんな言語でもこのフレームワークを使うことが多くなってきており、JavaであればStruts、RubyであればRails、PHPであればCakePHPやZendFramework等、多くのフレームワークが存在します。
フレームワークが流行するきっかけとなったのが2004年にリリースされた「Rails」だと記憶しています。
当時、その有用性(あっという間にシステムが構築できる)が評価され、「Rails」やその利用言語であるRubyがとても脚光を浴びていました。
その後、他言語でもフレームワークを使って開発するという流れが起き、あっというまに広まった印象があります。
今では、システム開発を覚える=フレームワークの使い方を覚える、といっても過言ではないくらいです。
何故フレームワークを使うのか
では何故フレームワークがよく使われるようになったのでしょうか。
フレームワークを使うメリットはいろいろと論じられていますが、私は大きく以下の3点のメリットを感じ利用しています。
・開発効率が上がる
・ソースがきれいになる
・他の開発者とデータを共有しやすい
まず、フレームワークのメリットとして第一に上げられるのは開発効率が上がるといった点です。
どのフレームワークも独自のライブラリ・プラグインを持っており、始めからそれらを利用することができます。
また、同時にライブラリ・プラグインを追加する機能も備えており、自分の使いたい機能が入っていなくても、インターネット上に公開されている有志が作ったライブラリを追加することができます。
そのため、一から自分で制作をするより開発スピードが格段に速くなります。
もちろんフレームワークを使わずに、既存のシステムを流用したり、ライブラリを使ったりすることでも開発スピードを上げるといったことは可能です。
ただ、2つ目、3つ目のメリットについてはフレームワークの利用ならではのことではないかと思います。
「ソースがきれいになる」、これはどのフレームワークも、コーディングルールが決められていることに拠ります。
基本的にどのフレームワークも、「制御」、「データ処理」、「画面への出力」のプログラムが分けられており、独自のコーディングルールが存在します。
プログラムを組んでいくためにはそのコーディングルールに従う必要があるため、導入に少し時間が掛かりますが、誰が見ても分かりやすく仕上がります。
これは3つ目に上げたメリットの「他の開発者とデータを共有しやすい」ということにもつながります。
ソースがきれいになり誰が見ても分かりやすく仕上がるということは、複数人で作業することに向いているということです。
他にもフレームワークを使うメリットはあると思いますが、だいたい使っている人の多くは同じ様な理由で使っているのではないかと思います。
導入するだけで上記のメリットを享受することができる、これは、時間を争うシステム開発の現場においてはとてもありがたいことです。
今では、私の関わっているほとんどのプロジェクトで利用しています。
まとめ
いかがでしたでしょうか。
今回はWEBシステム開発現場でよく使われるフレームワークについて説明してきました。
メリットを中心に説明してきましたが、すべてのシステム開発において必ずしもフレームワークを使ったほうが良いかというと、そうではないと思います。
(メールフォーム等の簡単プログラムであれば、使わないほうがシンプルにプログラムがまとまりメンテナンスもしやすくなります。)
とはいえ、ある程度の規模のシステムを開発する上ではフレームワークの利用は、工数削減、コスト削減のためにとても有用であることに変わりはないです。
まだ、フレームワークを使って開発をしたことがない人は利用を検討されてはいかがでしょうか。