Life & Style

what-is-a-framework

近年のWebアプリケーション開発では、何らかの特別な理由が無い限りフレームワークを使って開発を行う。

フレームワークとは、Webアプリケーションを簡単に開発できるようにする骨組みの事である。

フレームワークが提供する基盤に沿ってコードを加えていく事で、自然と一定の品質を持ったアプリを作り上げる事ができる。

フレームワークが、アプリの根幹となる設計方針や、基盤部分のコードを用意してくれているため、開発にかかる時間を大幅に削減する事ができる。

開発において、なぜフレームワークを使用するのか、導入の利点を紹介する。

開発生産性の向上

開発の基盤をフレームワークに委ねる事ができるため、生産性は大幅に向上する。

また、全ての開発者が、同じ枠組み(ルール)の中でコードを実装していく事を強制されるため、コードの一貫性が維持できる。

そのため、誰が書いても一定のルールに基づいた書き方となっているため、わかりやすい。

これは品質の均質化にも繋がる。

開発プロジェクトはチーム単位で進める事が多いため、大人数での開発には非常にメリットがある。

メンテナンス性に優れる

コードに一貫性があるという事は、可読性が高まるという事。問題が生じた場合や、仕様変更があった場合に該当箇所を特定しやすい。

また、同一のフレームワークが採用されていれば、アプリの統合があった際にも容易になるという利点もある。

技術トレンドに対応しやすい

技術の変動は凄まじいスピードで目まぐるしい。開発者にとってその全てをキャッチアップする事は困難だ。

しかし、フレームワークはそういった技術のトレンドを日夜取り入れており、フレームワークの活用によって先端技術に即応しやすくなる。

一定以上の品質が期待できる

フレームワークで作ったアプリは、自作のものと比べ信頼性が高い。

オープンソースで公開されているフレームワークは、様々な利用実績もあり、内部のコードも多くの人々の目に晒され、テストされている。

自分や周りの人々しか見ていないコードに比べると、その差は歴然。相対的に高い信頼性を期待できる。

フレームワーク導入のデメリット

フレームワークの導入にはデメリットもある。

フレームワークとは、言うなれば規約(ルール)の集合体。そのルールを理解するのはそれなりの学習コストがかかる。

プログラミング言語の学習を終えたとしても、フレームワークで開発するには、そのフレームワークでのプログラミング言語の使い方を学ばなければならない。

慣れるまでは、フレームワークの制約が窮屈に感じ、スピードが落ちる事もあるかもしれない。

そのため、短期間のプロジェクトで、フレームワーク経験が無い場合等は、フレームワークの導入をしない方がメリットが大きい場合もあるだろう。

多くのフレームワークが採用するMVCモデル

多くのフレームワークは「MVCモデル」というアーキテクチャを採用している。

「MVC」とは「Model」、「View」、「Controller」の略である。

Webの世界では、言語問わず「MVCモデル」を前提とした開発が一般的。

「MVCモデル」とは、アプリをModel(ビジネスロジック)、View(ユーザーインターフェイス)、Controller(ModelとViewの制御)という役割で明確に分割するという設計モデルの事だ。

それぞれの要素が分離されているため、下記のようなメリットが挙げられる。

プログラマーとデザイナーとが並行して作業をしやすい。

デザインとロジックのそれぞれの修正が相互に影響しない。

機能単位のテストを独立して実施できる。

フレームワークなしの開発は考えられない

フレームワークを導入する事によって受ける恩恵は大きく、今日のアプリ開発ではもはやフレームワークなしの開発は考えにくい。

学習コストの高さ故に、初めは苦労するが、どんな言語のどんなフレームワークを勉強したとしても、MVCモデルが基本理念であるため、考え方は応用が効く。

Javaは「spring」、PHPは「Laravel」、Rubyは「Ruby on Rails」など代表的なものがあるため、積極的にフレームワークを使用していって欲しい。

PICK UP

  1. この記事へのコメントはありません。