OSSのABC
A is for the Framework that changed Frontend Forever(Aはフロントエンドを永遠に変えたフレームワーク)。
AはAngularJS
オープンソースソフトウェアの歴史と影響を一文字ずつ紹介する「The ABCs of OSS」の第1回目エピソードへようこそ。私はホストのテイラーで、今日はAから始めます。 AngularJS.
なぜAngularJS 重要なのか
ソフトウェアの構築方法に永久的な足跡を残す技術もあるが、AngularJS そのひとつだ。2010年にGoogleによってリリースされたAngularJS 、開発者のフロントエンドWeb開発への取り組み方を完全に変えた。
AngularJS登場する前は、ダイナミックなウェブアプリケーションの構築は骨の折れるものだった。開発者は手作業でのDOM操作や、常に頭を悩ませる状態管理と格闘していました。AngularJS そのような問題を、次のようなイノベーションで解決した:
- 双方向のデータバインディング- DOMを常に手動で更新する必要がありません。
- 依存性注入- テストとモジュール化されたコードをより簡単にする。
- ディレクティブ- それが主流になる前の、再利用可能なコンポーネントを構築する方法。
これらの機能によってAngularJS 革命的なものとなり、その影響はReactや Vueといった今日のフロントエンド・フレームワークにも見られる。
終末期とセキュリティ・リスク
しかし、他のソフトウェアと同様、AngularJS ライフサイクルがあった。グーグルは2018年にAngularJS いずれ引退することを発表し、2021年12月に正式にEOL(End of Life)に達した。
これが問題だ:Angular 単なるAngularJSアップグレードではありません。TypeScript、RxJS、コンポーネントベースのアーキテクチャを中心に構築された全面的な書き換えであり、アプリケーションを一から考え直す必要がある完全なシフトなのだ。
では、今日AngularJS 動かし続けたらどうなるのか?
- アプリケーションはまだ "動く "が...。
- 今はサポートされていない、パッチの当たっていないソフトウェアで動いている。
- 新たに発見されたCVEの脆弱性には、公式なパッチが当てられることはない。
つまり、本番稼動中のAngularJS アプリは、事実上セキュリティ上の負債であるということです。AngularJS 依存している組織は、パッチが適用されていないソフトウェアを運用し、ユーザーとシステムを危険にさらしているのです。
移住の課題
移行の道は単純ではない。AngularJS 最新のフレームワークに移行するチームは、次のような問題に直面する:
- アーキテクチャのオーバーホール- 全く新しいパラダイムとビルドツール。
- テストの書き換え- 古い前提がもはや当てはまらないため。
- 膨大な技術的負債- 特にアプリに何年ものレガシー機能がある場合。
それは "週末プロジェクト "ではない。長期的な近代化の取り組みであり、計画、リソース、場合によっては外部からのサポートが必要となる。
AngularJS永続的な影響力
AngularJS サポートされなくなったとはいえ、その痕跡は至るところに残っている:
- 依存性注入はフロントエンド開発の定番となった。
- コンポーネント・ベースのアーキテクチャは、React、Vue、Angular現代的な形の舞台となった。
- データ・バインディング・パターンは、UIステートの管理方法に影響を与え続けている。
言い換えれば、AngularJS触ったことがなくても、AngularJS開拓したパターンを使っている可能性が高い。
閉会の辞
AngularJS 画期的だったが、今やレガシーソフトウェアだ。サポートなしで運用することは、本当のセキュリティリスクを受け入れることを意味する。移行は大変だが、製造中止のソフトウェアを無視するのはもっと危険だ。
OSSのABC」第1回はここまで。次回は、BootstrapのBについてです。Bootstrapは、グラフィックデザインの学位を必要とせずに、開発者にデザインのスーパーパワーを与えたフレームワークです。
それまでは、コードをクリーンに保ち、依存関係をアップデートし、レガシーソフトウェアをサポートしておくこと。