トップページ > 技術情報 > JavaScript

 最新の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を用いての開発を行っています。

PAGE TOP