インフラジスティックス・ジャパン株式会社Blog

インフラジスティックス・ジャパン株式会社のチームメンバーが技術トレンド、製品Tips、サポート情報からライセンス、日々の業務から感じることなど、さまざまなトピックについてお伝えするBlogです。

Angular フレームワークを採用したらバージョンアップ頻度を考えよう

こんにちは。インフラジスティックス・ジャパン、テクニカルコンサルティングチームの石橋です。

開発フレームワークとして Angularフレームワーク を採用した場合、Angular フレームワークのバージョンアップに追随するか、それとも特定の Angular フレームワークのバージョンで固定するか、迷うところだと思います。この記事では、弊社製品 Ignite UI for Angular をご利用中のお客様、あるいは、購入検討中のお客様向けに、Angular フレームワークが推奨する大原則と固定する場合の検討ポイントを簡単にまとめてみたいと思います。

Angular フレームワークが推奨するベストプラクティス

Angular フレームワークのドキュメントには、ベストプラクティスとして以下のような記述があります。

Best practices

  • Keep current with the latest Angular library releases. We regularly update the Angular libraries, and these updates may fix security defects discovered in previous versions. Check the Angular change log for security-related updates.
  • Don't modify your copy of Angular. Private, customized versions of Angular tend to fall behind the current version and may not include important security fixes and enhancements. Instead, share your Angular improvements with the community and make a pull request.
  • Avoid Angular APIs marked in the documentation as Security Risk.” For more information, see the Trusting safe values section of this page.

(引用: https://angular.io/guide/security より)

 

 簡単に要約してみましょう。

  • 最新の Angular フレームワークのライブラリーのリリースに追随してください。
  • ローカルにある Angular フレームワークのライブラリーに変更を加えないでください。
  • ドキュメントに “Security Risk” という印がついている API を使用しないでください。

つまり、常にライブラリーを最新のものにバージョンアップし続け、勝手なカスタマイズはせず、安全な API を使う、というのが推奨されています。

Angular フレームワークを採用すると決めた場合は、この大原則に沿った開発を行うことができるか、じっくりと検討してみてください。

ご参考までに、常に最新のものにバージョンアップし続ける方法論としては、CI / CD があります。CI は Continuous Integration の略で、日本語訳は「継続的インティグレーション」です。開発者が変更したコードを 1 日に複数回の頻度で中央リポジトリにマージし、マージするたびにビルドとテストを走らせる仕組みです。CD は Continuous Delivery の略で、日本語訳は「継続的デリバリー」です。ビルドされた製品のリリースプロセスを自動化する仕組みです。(※参考記事: https://codezine.jp/article/detail/11083)

 CI / CD が採用できるか、検討してみてください。

それでも特定のバージョンに固定する必要がある場合

特に受託開発を主に行っている会社様の場合、「とはいっても特定のバージョンに固定しなければならないんです」といった事情もあると思います。その場合は、以下の点、改めて検討してみてください。

1. 開発・テスト環境だけでも最新のものに追随する仕組みを作ることは可能か?

納入先のお客様が最終的な納品時の Angular フレームワークのバージョンを指定してきていない場合は、CI / CD のうちの CI の部分だけでもできそうか再度ご検討ください。CI の仕組みを作る時間があったら製品コードを書いてほしい、といった雰囲気も実際のところあるかと思いますが、CI の効果は想像以上に大きいです。例えば、

  • 常にテストを通すので、事前に小さなバグの段階で不具合を潰すことができ、後からの出戻りが発生しにくいです。結果的に、コスト削減や想定外の開発期間延長の防止につながります。
  • 間違ったコードを書いても早い段階でわかるので、開発者の心理的負担が少なく、開発作業そのものに集中できます。

等々です。CI さえ実現できれば、Angular フレームワーク最新版への追随の可能性も開けます。

2. バージョンを固定するタイミングをできる限り遅くすることはできるか?

CI が難しい場合は、バージョンを固定するタイミングをできる限り後ろにし、その時点の最新のもので固定する、ということをご検討ください。Angular フレームワークはリリース後 6 か月間アクティブサポートが設けられているので、その期間が終わるタイミングで固定する、という考え方もあります。弊社としてよくお客様にお勧めしているのは、テストフェーズ開始直前の最新版での固定です。

しかしながら、バージョンを固定するデメリットもあります。例えば、Angular フレームワークの LTS (long-term support) が終了することで、もし仮にセキュリティーリスクがあったとしてもパッチを得ることができなくなる、等です。固定する場合はこういったデメリットにどう対応するかも検討しておくことをお勧めします。

最後に

以上、Angular フレームワークのバージョンアップ追随の大原則と固定しなければならない場合の検討ポイントを簡単に説明してきました。この記事に関して何かご質問・ご不明な点がありましたら、お気兼ねなく弊社までお問い合わせください。