マイクロフロントエンド

読書メモ


-nilog: ざっと読んだ。ようやく Micro Fronends のアーキテクチャや実装方法がおぼろげにわかったぐらい。 マイクロフロントエンド ―マイクロサービスアーキテクチャの概念をフロントエンドに拡張し、信頼性、自律性の高いシステムを構築する | Luca Mezzalira, 嶋田 健志 (2023-02-22)
--http://www.nilab.info/nilog/?type=twitter&id=1628372765568008194
--

-コードの抽象化
--「コードの抽象化も「銀の弾丸」ではありません。再利用のために拙速にコードを抽象化しても、利点よりも問題が多くなってしまうものです。私は、抽象化によってコードが必要以上に複雑になり、同じプロジェクト内で再利用されたのは2回だけという例を何度も目にしてきました」
--「コードの抽象化が、特に長期的には必ずしも利点とならないことに、業界の多くの著名人が気付き始めています。拙速に抽象化するよりも、コードの重複のほうがより利益をもたらす場合もあります。その上、重複したコードは、必要に応じて簡単に抽象化できます。しかも、いったんコードに組み入れられた抽象化から離れることは、より大きな困難が伴います」

-SPA
--「SPAが大規模なアプリケーションで、同じコードベースで作業する分散または配置されたチームによって管理されている場合、同じアプリケーションの異なる領域でアプローチや決定が混在することになり、チームメンバーが混乱する可能性があります。オーバーヘッド・チームがチーム間の調整に使うコミュニケーションは、しばしばアプリケーションの隠れたコストとなります」

-垂直分割
--「垂直分割は、マイクロフロントエンドを単一のHTMLページまたは各チームが所有するSPAとします。そのためSPAの従来の開発と非常によく似た開発者体験となります」

-ドメイン境界
-「例えば、他のマイクロサービスに依存するシステム内で作用を完結させるには小さすぎるマイクロサービスがあると、サービス同士で強く結合した状態となってしまい、毎回一緒にデプロイする必要があります。この状況が複数のサービスに及ぶと、その複雑さは、大きな泥だんごのようになり、拡張しにくいシステムになってしまう危険性があります」

-コミュニケーションと開発体制
--「AmazonのCEOであるジェフ・ベゾス氏によると、1つのチーム用に用意するピザが2枚では足りない場合、そのチームは大きすぎます。Amazonで導入されたこのピザルールは、チームの人数が8〜9人を超えてはならないことを意味していました」
--「我々はしばしば、問題はより良いコミュニケーションで解決できる、単なるコミュニケーションの問題であると考えています。ただし12人のチームのリンクの数を再度見てください。ほとんどのケースで新しいAPIバージョンに関してチームにアップデートの周知を忘れることが起こってしまいます。サービスディクショナリは、特に分散したチームを持つ大規模な組織では、APIを担当するチームとのディスカッションを共有するのに役立ちます」
--「マイクロフロントエンドは、チームの独立性、リスクのないデプロイ、開発者の認知的負荷の軽減、高速なイテレーション、革新など、いくつかの利点をもたらします。それにもかかわらず、組織内にサイロを作成するリスク、自動化パイプラインへの投資の増加、ユーザインタフェースの不一致のリスクなどの課題ももたらします」
--「プラットフォームを設計するための最良のトレードオフである高度なアーキテクチャに焦点を合わせ、そのアーキテクチャを中心にチームを再構築したい場合があります。このような状況では、「逆コンウェイ作戦」と呼ばれる反対の手法を適用しています」
--「マイクロフロントエンドによって、チーム間のコミュニケーションと調整のオーバーヘッドという厳しい要件がなくなります」
--「一番の課題は、チームの自律性とエンドユーザのユーザ体験のどちらかを選択しなければならないような、難しいトレードオフの判断だと思います」

-vue-microfrontends · GitHub
--https://github.com/vue-microfrontends

-react-microfrontends · GitHub
--https://github.com/react-microfrontends

-polyglot-microfrontends · GitHub
--https://github.com/polyglot-microfrontends

情報


-O'Reilly Japan - マイクロフロントエンド
--https://www.oreilly.co.jp/books/9784814400027/

-Building Micro-Frontends [Book]
--https://www.oreilly.com/library/view/building-micro-frontends/9781492082989/

-O'Reilly Japan Blog - 10月新刊情報『マイクロフロントエンド』
--https://www.oreilly.co.jp/blog/2022/09/40002_building_micro-frontends.html
-->表紙の動物は、ジャマイカコビトドリ(学名Todus todus、英語名Jamaican tody)です。カリブ海の大アンティル諸島に生息するコビトドリ属の5種のうちの1種です。ジャマイカコビトドリの姿が確認できるのは、ジャマイカ島に限られます。主に島の森林地帯に生息しています。
-->ジャマイカコビトドリの体は小さく、鮮やかな羽色が特徴です。東部は緑、喉と嘴は赤、胸は緑白色または黄白色をしています。大きさは約9cm、平均体重は6.4グラム、翼を広げたときの大きさは約5cmです。
-->通常はつがいで行動し、春から夏にかけての繁殖期に活動が最も活発となり、羽ばたきや求愛行動をする姿が見られることもあります。ジャマイカコビトドリの発声は特徴的で、「ピー」と鳴く声と、喉を鳴らす2種類があります。繁殖は、土を掘って巣穴を作り、産卵します。昆虫とその幼虫を捕食しますが、果物を食べることもあります。

-マイクロフロントエンド ―マイクロサービスアーキテクチャの概念をフロントエンドに拡張し、信頼性、自律性の高いシステムを構築する | Luca Mezzalira, 嶋田 健志 |本 | 通販 | Amazon
--https://www.amazon.co.jp/dp/4814400020?tag=nilabwiki-22&linkCode=osi&th=1&psc=1
-->DAZNでアーキテクトを務めた著者が、マイクロフロントエンドアーキテクチャの概念、長所と短所、導入のポイントなどを俯瞰的に説明します。プロジェクトに適したアーキテクチャをどのように見極めるべきかについて、デプロイ可能性、モジュール性、テスト容易性、パフォーマンス、開発者体験といった観点から、多角的に分析することの重要性を強調します。
-->また、マイクロフロントエンドを導入する予定がない組織にとっても、自律性、生産性の高いチーム作りのヒントを得ることができます。
-->巻末の付録では、開発の最前線で活躍する8人にインタビュー。マイクロフロントエンドの威力、可能性、落とし穴など、開発現場の貴重な「生の声」を収録。一筋縄ではいかない開発の風景を垣間見ることができます。実装サンプルはすべてGitHubから利用可能です。