エンタープライズ向けのカスタマイズ性を増したAngular 8が登場 - ng-conf 2019

ng-conf 2019

ng-conf 2019がGW中(2019年5月1日〜3日)にユタ州のソルトレイクシティで開催されました。初日の基調講演で話された内容が特に印象に残ったので簡単にまとめました。

https://www.ng-conf.org

初日の基調講演

3日間という長い期間のイベントということもあり、公開されている動画もかなりの数があがっています。

この記事は初日の基調講演で良かった以下の3つについて感想を書きます。

  • Angular 8 のリリース時期
  • Angular 開発プロセスのカスタマイズ (Angular Cli ビルダー)
  • 産業とAngular (Angular Photon)

Angular 8 のリリース時期

Angular 8はRC版が提供されていますが、このお話では 正式リリースが5月末となります。

また、新しいレンダリングエンジンIvyが実装される Angular v9 は4Q(四半期)に登場する予定です。

Angular 開発プロセスのカスタマイズ

これまでAngular Cliを使ったビルドプロセスは、Webpackファイルを自分で作ったときほどの柔軟性が無く、カスタマイズをするためにはcliの外で作り込む必要がありました。

これはAngular Cliが提供する自動化された開発ワークフローを壊さないための措置でした。

しかし、このissuesのように、開発ワークフローのカスタマイズ要望は多かったため、コミュニティでは「させない」ではなく「できるようにするにはどうすればよいか」という生産的な論議が進んでしました。

その結果、Angular 5では「Architect」という機能が導入されており、これによってcliはSchematicsを用いて拡張・追加が可能となっていました。しかし、これはβ版のような位置づけでした。

Angular Cli Builderが登場

Angular 8より「Architect」の正式版として「Angular Cli Builder」というものが登場しました。

Angular Cli Builderは、単なるcli拡張機能というよりも、開発プロセス全体を通じて必要となる機能が網羅された総称のことであり、プロセス管理、ログ出力、テスト用のAPIといったものが用意されています。

個人的には Schematicsが出たとき以来の感動で、cliの機能拡張を当時(2018年初頭)に比べ、かなり足元のしっかりした拡張を作ることができるようになった印象です。

開発規模とAngular (Angular Photon)

この基調講演で、一番興味を持てた点です。

Angularにおける開発規模

こちらは、動画の28分あたりから紹介される、Angularとアプリケーションの開発規模の図を、日本語化したものです。

Angularと産業スケーリング

AngularJS (v1) 時代では、小中規模のアプリケーションをすばやく作ることを目的としていました。

しかし、技術的な問題で大規模のアプリケーションを作るのが難しかったため、新たに作られたのがAngular v2です。

Angular v2は AngularJSのサポート範囲に加えて、さらにエンタープライズの範囲をサポートする目的で作られましたが、実際のところはエンタープライズのユースケースに最も適している状況です。

Angular の4-8はその実際のユースケース(エンタープライズ)を中心として、対応する範囲を広げています。

そして、これからの取組み(Angular 9以降)として、 Ivyにより、より中小規模のアプリケーション向けのユースケースをサポートを強化しつつ、Angular Photon プロジェクトでより大規模向けと中小規模向け両方に向けたユースケースをサポートしていくそうです。

Angular Photonについての詳しい説明は Rob Wormaldの発表 を見ていただくのが良いと思います。

最後に

ng-conf 2019の発表は、すべてyoutubeで無料で閲覧可能となっているので、もし興味があれば時間があるときに見てみるのも良いと思います。

エンタープライズ向けAngularMinko Gechev氏によるより高速なアプリケーションを作るためのツールなどが個人的にお気に入りです。