*

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

公開日: : 最終更新日:2015/05/21 WEB全般, 講義 ,

こんばんは。松本です。

昨日25日にはオフィスで第一回目の授業を開講させていただきました。広島よりお越しのIさんご参加ありがとうございます!

さて、Iさんとの授業の中で気づいたことですが、エンジニア就職志望者の中にはプログラミングの技術だけでなく、就職までにどれくらいのことができればよいのか?フレームワークはできたほうがいいのか?など様々な疑問があると思います。

今回本来だったら配列の2回目の授業をする予定ですが、こういった小話も重要だと思いますし、中でもフレームワークは関心が集まりやすい部分だと思いますので、今回説明させていただきます。

フレームワークとは?

フレームワークについて一応説明させていただきますと、「アプリを作るのに良く使われるような汎用的な機能をあらかじめ装備して、アプリを作りやすくしたソフトウェア」のことです。

例えばシンプルな掲示板1つを作るにも

  • ログイン機能
  • メール送信
  • セッション管理
  • ページング
  • etc・・・・

などたくさんの機能を実装しなければなりません。

SNSサイトでもECサイトでもよく使われるような機能は大体にかよっています。それならそういった機能をあらかじめ集めて、使いやすくしたら便利だし、速く作れるのでは?といった発想から作られたのがフレームワークです。

これを使いますと例えば自分でPHPを書く場合には100行必要なところがフレームワークを使うと10行ですんだりします。

実際の現場でもフレームワークを使用しているところは非常に多く、求人条件でも経験2年・フレームワークの使用経験があると望ましい、などはよく見かけます。

PHPのフレームワーク

PHPにも数多くのフレームワークがあります。

ざっとあげると下記のようなものが有名でしょうか。

  • Codeigniter(コードイグニッター)
  • CakePHP(ケイクピーエイチピー)
  • Symfony(シンフォニー)
  • ZendFramework(ゼンドフレームワーク)
  • FuelPHP(フューエルピーエイチピー)

一番使用されているのはCakePHPですね。私も使用したことがありますが、PHP自体を自分で書くのと比べると圧倒的なスピードで開発ができますし、便利ですね。

RubyでもJavaでも有名なフレームワークが多数存在し、実際の開発現場で使われています。Rubyの場合はほぼRuby on Rails一択でしょうが・・

フレームワークのメリット

速く作れる

先ほどフレームワークの定義からわかるようにあらかじめよく使う機能が標準搭載されているので、これが一番のポイントでしょう。

時と場合によりますが、フレームワークを使ったときと使わないときとでは作る時間が半分~3分の1程度になるのでは、と思います。

コードの書き方を統一させることができる

実は本来のフレームワークが使われている意図はこちらです。コードの書き方を統一させるのが目的です。

プログラマに限らず、どんな仕事でもそうですが個人個人の色があります。それは仕事をしていく上でいいことでもありますが、まずい部分でもあります。多くの仕事はチームでするものですので、1人だけやり方が違っていると周りのみんなが迷惑します。

社会人として仕事をしている方であれば誰でも実感していることだと思います。

これはプログラムにおいても同じでして、コードの書き方というのも個人個人で非常に癖がでます。それはスキルの差もありますし、性格的な部分やキャリアによるところもあります。人が書いたコードを修正するというのは非常に大変な作業です。

それでは書き方をルール化して統一させればいいのでは?といった思考になるのではないでしょうか?フレームワークは速く作れるということ以上に、大人数での開発において、書き方を統一させる、というのが主な目的です。

バグが少ない

フレームワークなしでプログラムを書くと多くのところでバグがでます。

これはプログラマの力量不足もありますが、正確なコードを書いても想定されていない使い方をユーザーがするからというのも理由の1つです。

全部のシュチュエーションを想定するのはかなり大変なんですが、フレームワークではあらかじめそのようなことを想定して書かれています。

結果として自力で書くときと比べてバグが出にくくなる傾向にあります。

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

このように便利なところが多数ありますが、デメリットも当然あります。

フレームワーク自体を覚えるのに時間・労力がかかる

これは当たり前といえば当たり前なのですが、便利な道具といってもエンジニアが使うものですので、一通りの使い方を覚えるのに時間と労力がかかります。要は楽をするための努力ですね。

特に大変なのがまだ使用人口が少ないフレームワークです。使用人口が少ないと書籍もでていなかったり、WEBで検索しても情報が出てきません(涙)。覚えれば楽なんだけど、フレームワーク自体を覚えるのに時間がかかるのです。

私は今Javaのフレームワークを仕事で扱っていますが、あまり使用者がいないために調べるのがとても大変です(爆)

仕組みを理解しなくても書けてしまう

さきほど話したようにフレームワークでは通常であれば100行かかるような処理をたった10行でかけます。正しく使えば開発時間を短縮できる反面、その処理を良くわからなくても作れてしまいます。

「なんだかよくわからないけどこう書けば動いた」というのはただそのアプリを作るのが目的ならよいですが、エンジニアとしてはNGでしょう。

エンジニアとしては内部の動きがどうなっているのか?これをフレームワーク無しでかいたらどうなるのか?といったことを理解しておかねばなりません。そうしないといざ修正があったときに対応できません。

というのも、実際の業務ではフレームワークを使っていてもソース全てがフレームワークのルールどおりに書かれていることはまれだからです。

ソースの量の全体が10だとしたら6だけはフレームワークの書き方をしているが、あとの4はフレームワーク以外の書き方をしているといったところがほとんどです。そのため、フレームワークを使わない書き方というのも当然理解しておく必要があります。

カスタマイズに限界がある

アプリを作りこんでいるとどうしても自分なりのカスタマイズをしたくなります。フレームワークは汎用的な機能をあつめたものですが、自分なりのマニアックな機能を搭載したい場合には自分でその処理を書かなくてはいけなくなります。

そうなるとフレームワーク内部をいじらなくてはいけません。そういった機能が多数ある場合にはそのフレームワークを使うメリットが徐々に薄れてきます。

実際にフレームワークを使い始めたものの、カスタマイズが多く、独自のフレームワークを社内で作っているというケースもあります。

結論:フレームワークの健全な取り入れ方

エンジニアとして仕事をすることを考えると、ある程度の開発経験がある方はいいのですが、普通のPHPをかけない初心者の場合フレームワークを使用することはお勧めしません。

フレームワークを使わずに通常の書き方でどのようにコードを書くのか?といったことを理解せずに使用してもあとあと応用が利かないからです。これは私だけの意見というのではなく、「フレームワーク デメリット」などで検索すると多くの方が似たようなことをいっています。

どんな道具にもメリット・デメリットがあります。

使用する場合にはそれを熟知して使うこと。そうすればフレームワークに限らず全てが皆さんの強力な道具になります。

関連記事

就活生必見! Webエンジニアになるなら知っておきたい超基本業界用語

本日はWEB業界でよくつかわれる専門用語について私の知っている範囲で書いていこうと思います。

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 その2

前回の学習 PHPで掲示板を作ろう! 掲示板の作成方法 その1 それでは掲示板の作成方法その

記事を読む

お問い合わせフォームを作ろう! その4(PHP)

お疲れ様です。松本です。 今年は振り返ってみればもう半年が過ぎちゃいましたね。今年はいろいろあ

記事を読む

あなたのPHPレベルを判定してみよう!未経験者限定スキル判定表

プログラムを勉強していると自分のレベルみたいなものが気になる方は多いでしょう。 私の場合も独学

記事を読む

理論と実践のバランス

ネタ不足&開発のほうが忙しく、一か月以上書いておりませんでした。 今回は漠然とスキルアップする

記事を読む

30代、未経験者、独学中心でWEBエンジニアとして就職するまで

のっけからストレートなタイトルでスイマセン。 昨日ブログのアクセスをいろいろとみていましたが、

記事を読む

オブジェクト指向 その2 「設計図」と「部品」

それではオブジェクト指向を具体的に解説していこうと思います。といっても、天才でない限り、初学者でいき

記事を読む

プログラミング学習法「写経」について

本日は本ブログのメインテーマであるプログラミング学習について考えてみたいと思います。 今までプ

記事を読む

初心者でもできる!作れる!WEBサービスの開発 その1 準備編

前回までは掲示板作成をテーマにPHPの基本的な学習内容について書いてきました。 今回は題材にあ

記事を読む

初心者がプログラミング学習で挫折しないために大切な2つのポイント

ブログを開設してから半年近く、記事にして70ちょっと書いてきましたが、人気のある記事を見ていると大き

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

無料PHPスクール
自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑