最新のWEBアプリケーション開発におては、リッチのUI/UX を実装することが重要になってきており、 WEB開発においてJavascript の役割は益々重要になってきています。
しかしながら、ブラウザの違いやバージョンの違い、 Javascript 特有の問題があることも事実です。
 歴史的に見ていくと、Ajax 普及前の javascript 軽視の時代ではあまり存在しなかったJavascriptライブラリーも、Ajax の普及とともに増加していきました。
 Ajax普及初期には、Prototype.js が利用されるようになり、その後出現した Jquery がデファクトスタンダートとなり、現在でも多く利用されています。

フレームワーク・ライブラリー

 小規模開発においては、Jqueryは非常に強力なツールではありますが、大規模開発には向いてなく、メンテナンス性にも乏しいため、それらを克服するフレームワーク、ライブラリーが出現しており、用途等に応じて使い分けらています。
 いずれのフレームワーク、ライブラリにおいても、画面表示を担う Vew, データ層のModel, ロジックを担うContoroller を分離することにより生産性、メンテナンス性を強化することを目指したかたちになっています。
 業務システム、WEBページに利用されている Javascriptフレームワーク・ライブラリーとしては、以下の4つのフレームワークがよく使われていると考えています。

 その名(Backbone:背骨)の通りJavascript を構造的に分けて記述することを発端として作成されBackbone.js、 データバインディングを強化しMVVM( Model-View-ViewModel) フレームワークとして開発された Knockout.js、 使い勝手を更に高めた軽量MVVM の Vue,js、 googleが推進しているフルスタック型のAngular.js 。

 それぞれ開発の規模、用途によって使い分けしますが、現在インフォディオでは将来性等も加味して Angular.js での開発に力を入れ、ノウハウの蓄積を行っています。

フレームワーク比較

 Javascript の開発において、ブラウザ間の動作の差異を吸収するため、様々なフレームワークやライブラリーが作成されています。

フレームワーク名 特徴 メリット デメリット
Backbone.js 比較的古くからあるJavascript フレームワーク。Jquery での開発における問題点(大規模開発では行き詰まる) を解決し、 構造化することに対して重きを置き、他のライブラリーツールと併用することを前提としているMVC アーキテクチャーである。 シンプルで小さい。
Model 操作が優れている。
DOM操作、ルータ、データバインディング、テンプレートエンジン等は他のライブラリを利用する必要があり、統一性に欠ける。
コーディングに手間がかかる。
Knockout.js MVVM アーキテクチャーである。
大規模システムよりも中小規模システム向けである。
学習コストが低く、導入がはやい。
双方向データバインディング
IE6 -11 をサポートしている。
構造化に対してベストプラクティスがないため、コードの統一性に難が発生しやすい。
大規模開発に難がある。
Vue.js 比較的新しいフレームワークで、Knockout.jsのいいところを取り入れた軽量で学習コストが低いフレームワーク。
MVVM アーキテクチャーである。
学習コストが低く、導入がはやい。 双方向データバインディング。 Knockout.js よりも更にシンプル。 小規模用途では非常に使いやすい。 構造化に対してベストプラクティスがないため、コードの統一性に難が発生しやすい。
大規模開発に難がある。
Angular.js Googleが注力しているフルスタック フレームワーク 多くの機能がはじめから搭載されている。 双方向データバインディングである。 XSS(Cross Site Scripting ) 脆弱性問題に対してフレームワークレベルでサポートしているため セキュリティー的に優れたシステムを構築しやすい。 Google が注力して開発している。 機能が多いが故に学習コストがかかる。
数千オーダーのイベントリスナーを実装すると 実装にDigest Loop 系の深い知識が必要とされる。
Jquery等の既存資産を活用できない。

AltJS

 Javascript の仕様のバージョンの違いや欠点を補うため、他のプログラミング言語からjavascript にトランスコンパイル(変換)して実行する いわゆるAltJS と呼ばれる言語がよく使われています。 AltJS は、当初 Rubyist の中で急速に普及したCoffeeScript と、現在急速に広がっている TypeScript の2つが使われいます。  インフォディオにおいても、生産性、品質向上のためにTypeSciprtを用いての開発を行っています。

RECRUIT

採用

一緒に働くフロントエンドエンジニアを募集しています

インフォディオではフロントエンドエンジニアを募集しています。
採用の情報について、詳しくは募集要項をご覧下さい。

募集要項を確認する

PAGE TOP