2章マイクロフロントエンドの原則

私がこの仕事を始めた当初は、多くのソフトウェアプロジェクトに関わっていました。プロジェクトでは、小規模または中規模のチームが、プラットフォームのすべての機能を備えた単一の成果物としてのモノリシックなアプリケーションと、ソフトウェアの開発中に作られ、Webサーバにデプロイされるプロダクトを開発していました。

モノリスでは、調和して動作するコードを大量に書きます。私の経験では、我々はアプリケーションのロジックを最適化したり、過剰に設計したりする傾向があります。コードの再利用可能な部分を抽象化すると、より複雑なコードベースが作成され、複雑なロジックをメンテナンスするため労力が長期的には報われないことがあります。残念ながら、そのときは簡単そうに見えていたものが、数ヶ月後にはとても扱いにくいものに見えてしまうこともあるのです。

この10年で、Amazon Web Services(AWS)やGoogle Cloudをはじめとするパブリッククラウドプロバイダが人気となっています。現在では、コモディティ化しつつある業務を委託することで、企業はビジネスにおいて本当に重要なこと、つまりエンドユーザに提供するサービスに集中できることから人気を集めています。

クラウドシステムによって、以前よりもプロジェクトを簡単にスケールできるようになったものの、残念ながらモノリスは、システムの一部分だけでなく、システム全体をスケールする必要があります。その際、システムがモジュール化されていなかったり、高い基準で書かれていないことが、多くの頭痛の種となります。

さらに、分散されたチームやコロケーションされたチーム、特に中大規模なチームでは、コミュニケーションのオーバーヘッドが起こったり、ほんの一握りの人間がチーム全体の決定を行うという集権的な意思決定を行うことにより、モノリスのコードベースを開発することが困難になります。 ...

Get マイクロフロントエンド ―マイクロサービスアーキテクチャの概念をフロントエンドに拡張し、信頼性、自律性の高いシステムを構築する now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.