AngularJS
AngularJS(アンギュラージェイエス)は、Googleと個人や企業のコミュニティによって開発されていた、完全にJavaScriptで書かれたオープンソースのフロントエンドWebアプリケーションフレームワークである。MIT Licenseでライセンスされたフリーソフトウェアである。2022年1月にサポートを終了した。
シングルページアプリケーションの開発において直面する多くの問題に取り組んでいる。JavaScriptコンポーネントは、クロスプラットフォームなモバイルアプリ開発用フレームワークであるApache Cordovaを補完する。クライアントサイド用のMVCおよびMVVMアーキテクチャを、リッチインターネットアプリケーションで一般的に用いられるコンポーネント群とともに提供することにより、そのようなアプリの開発とテストを簡単にすることを目的としている。
AngularJSはシングルページアプリケーション (SPA) の開発が可能なフレームワークで、一つのフレームワーク内で全ての機能が完結するフルスタックフレームワークであることが特徴として挙げられる。
初版は、Miško HeveryとAdam Abronsによって2009年に発表され、2012年6月にバージョン1.0.
AngularJSは、アプリケーションのビジネスロジックを定義するには命令型プログラミングがより適している一方、ユーザインタフェースの作成やソフトウェアコンポーネントの連結には宣言型プログラミングを使うべきだという信条の下に作られている。AngularJSフレームワークは、伝統的なHTMLに適合しつつ、モデルとビューを自動的に同期させられる双方向データ結合を通じて動的コンテンツを表示する拡張を加えたものである。その結果、AngularJSでは、テスト容易性や生産性の向上をめざす目的の下で、明示的なDOM操作にはあまり重きをおかないようになっている。
AngularJSの設計目標には次のようなものが含まれる:
DOM操作をアプリケーションロジックから分離する。これの難しさは、コードがどのように構造化されているかによって劇的に影響される。
アプリケーションのクライアントサイドとサーバーサイドを分離する。これによって、開発作業を同時並行で進められ、双方の側で再利用が可能になる。
アプリをビルドしていく流れ(UIをデザインするところから、ビジネスロジックを書き、テストするまで)に構造を与える。
AngularJSは表示、データ、ロジック部分を分離するMVCパターンを実装している。 AngularJSでは依存性の注入を用いて、伝統的にはサーバサイドのサービスであった、ビュー依存のコントローラなどをクライアントサイドのウェブアプリケーションに持ってくる。その結果、サーバ負荷のかなりの部分が削減される。