インターネットの発達によって大量の情報が世界中に瞬く間に拡散するようになりました。
まるで「超」が幾つついても足りないほどまで発達した高度情報化社会において、現代人に求められるのは黙っていても大量に入ってくる情報を必要に応じて取捨選択する能力であると言えるでしょう。
一方、インターネットの発達は「学び」の形も大きく変えつつあります。かつての学びは、普通なら「学校に行って教わる」、職人の世界であれば「親方の背中から感じ取る」、調べものであれば「書籍を購入する」、「図書館に行って調べる」などそれなりのコストと時間をかけて初めて成果が得られるものであったはずです。
先達が長い時間をかけて培った経験と知識は、教師や親方の頭の中に刻まれ血肉となっているのです。だからこそ、その、道の歴史と知の集積を体現している彼らは長きに渡って尊敬と畏怖さえをも集める対象であったのです。
しかし、近年、知識とノウハウの多くはインターネットを通じて得ることが可能となりました。だからと言って「師」と呼ばれる人たちが積み重ねた功績がいささかも曇ることはありませんが、少なくとも彼らの頭の中や、著わした書籍の中に留まっていた「知の集積」が、広く拡散されるようになったことは事実です。
「超」高度情報化社会を生み出した張本人であるITの世界は、どの業界よりも、ナレッジの共有が進んでおり、数多くのオープンソースのプログラムが広く使用されています。
斬新な発想、高度なプログラムが公開されると世界中のエンジニアがそのソースを使って新たなプログラムを改善、進化発展させていくサイクルが生まれています。
そこには、ナレッジが一部の人や集団に収まることなく、広く共有することでそのナレッジを社会的公器として発展させていきたいという開発者の意図を読み取ることができます。
初心者のアプリケーションエンジニアがプログラムを作成するときに用いるWebフレームワークもこうした一連の流れで形作られていったものなのです。
Webフレームワークについて
IT業界には一見難しい横文字が飛び交っておりますが、そのひとつでもある「フレームワーク」は、Webアプリケーションエンジニアが開発に当たって必要不可欠なものとなっています。
「Webフレームワーク」は、これまで開発されたツールなどの様々な機能がひな型としてパッケージ化しれており、初心者のアプリケーションエンジニアでも、このパッケージ化されたフレームワークをベースとしてアプリケーション開発を行うことができるのです。
業界によっては、親方と肩を並べて仕事ができるまでに10年を要する仕事もありますが、「Webフレームワーク」は、スピード重視のIT業界らしいナレッジの共有のあり方のように思えます。
このフレームワークによって開発を行ったエンジニアは、そのソースを通じて先達の経験と考え方を学び、同時に後世へと伝えていく役割を同時に担っていくのです。
Webフレームワークのルールに従うことで膨大なコードを書かなくても様々な機能を実装できたり、セキュリティー機能をあらかじめ備えられたりと、メリットが多い一方で、フレームワークを多くの人が使うことによって「似たような」サイトやアプリケーションが溢れていることも事実です。
ここであと一歩踏み出せるかが、Webアプリケーションエンジニアとしての腕の見せ所となるのです。
おススメのWebフレームワークについて
参照/引用サイト:WEBフレームワークって?初心者プログラマ向けの開発いろは―侍エンジニア塾のプログラミング学習情報配信ブログ
Webフレームワークはプログラミング言語ごとにそれぞれ存在し、特徴なども様々です。ここではその中でも特に有名なものについてご紹介します。
サーバーサイドの汎用フレームワーク「Ruby on Rails」
SNSのようなサービスを作る際によく使用される「Ruby on Rails」は、「Ruby」というプログラミング言語のWebフレームワークです。Webサービス開発をする場合、「Ruby」=「Ruby on Railsを使った開発」を指すことがほとんどです。
主にベンチャー企業で最も採用されているWebフレームワークといっても過言ではありません
「Ruby on Rails」が人気の理由は3つ、
Rubyライブラリが豊富であること
プロトタイプを作るスピードが早いこと
プログラミングに対する理解を早められること
登場当初、開発者のデイビッド・ハイネマイヤー・ハンソン氏は「Javaの10倍の生産性がある」と謳っていたように、開発スピードが速いのでベンチャー界隈で多用されています。
身近なサイトでは、CookPad、Retty、Wantedlyなどで導入されています。
サーバーサイドの軽量フレームワーク 「CakePHP」
CakePHPは「あらゆるレベルのPHPユーザーが、素早く快適に開発を行える事」を目標として産み出されたPHPのWebフレームワークです。構成や開発手法などRuby on Railsの影響を強く受けています。
環境構築も比較的簡単で、シンプルなフレームワークとして、規模は比較的小さめ、小?中規模開発に適している点が人気の理由です。
現在のところ、世界規模で「最も多くのWebアプリケーション」に導入されており、高いレベルでユーザーの要求に応えることができる機能を備えているのが特徴です。
また、初心者が導入しやすいようにサーバーの設定変更や動作環境の整備がほとんど必要ないように作られています。最近では、古いものをRuby on Railsに置き換えるという動きもありますが開発案件等は依然として多い状態です。
フロント用のフレームワーク 「AngularJS」
AngularJSは「JavaScript」でできたWebフレームワークです。見た目の動きをきれいに作るために使用されます。
例えばSPA(Single-page application)と呼ばれる、なめらかにページ内のコンテンツが現れるようなアプリケーション開発を行うときなどに採用されることがあります。
AngularJSはRuby on Railsのように比較的多機能で大きなフレームワークなのですが、データの管理(サーバーサイドの動き)をRuby on Railsで行い、見た目(フロントサイドの動き)に関するものをAngularJSで作りこむという複数のフレームワークの共存という使い方も存在します。
デザイン用フレームワーク 「Bootstrap」
「Bootstrap」は「Webデザインフレームワーク」と呼ばれ、CSS/JavaScriptから構成されています。
Twitter社より提供されるフレームワークになるため、Twitterのようなフラットなデザインを簡単に作成できてしまいます。
また「レスポンシブデザイン」という様々な画面サイズ(PC・タブレット・スマホ)に対応したフレームワークになるため、デザインが苦手だというエンジニアでも綺麗なサイトを簡単に作成できるという点で重宝されています。
テンプレートも無料のモノから有料のモノまで存在するため、色合いや字体などを入れ替え、イメージに合わせて作成することも可能です。
最後に確認して欲しいポイント
Webアプリケーションエンジニアは、Webフレームワークを最大限に生かすことによって、例え初心者でもサイトやアプリケーションの開発ができるようになっています。
しかし、フレームワークによってナレッジが共有され比較的容易に開発ができるということは、それだけ競争相手も多く、過酷な生存競争が繰り広げられている世界であると言えます。
Webアプリケーションエンジニアとして、人より一歩先んじる強い向上心を持って開発に勤しむことが何よりも求められているのです。