自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微型前端的優(yōu)秀實(shí)踐

開(kāi)發(fā) 前端
經(jīng)歷在規(guī)模上使用微型前端的優(yōu)勢(shì)和痛苦后,我決定記錄這段旅程并分享一些“優(yōu)秀實(shí)踐”。

我總是想知道大型Web應(yīng)用程序是如何建造的!我發(fā)現(xiàn)了秘密的秘密,它成為我的激情。經(jīng)歷在規(guī)模上使用微型前端的優(yōu)勢(shì)和痛苦后,我決定記錄這段旅程并分享一些“最佳實(shí)踐”。

這是在設(shè)計(jì)遵循微前端模式的應(yīng)用程序時(shí)的最佳實(shí)踐的自由練習(xí)列表。應(yīng)檢查每個(gè)“規(guī)則”,其福利/缺陷針對(duì)您的特定用例評(píng)估。

[[393246]]

微前端之間的零耦合

為了實(shí)現(xiàn)這種架構(gòu)的好處,應(yīng)盡可能避免意外耦合;這將解鎖微前端模式必須提供的靈活性和可擴(kuò)展性以及通過(guò)允許占用申請(qǐng)部分的升級(jí)或?qū)?lái)的完整重寫(xiě)來(lái)替換您的應(yīng)用程序的未來(lái)證明。

每個(gè)微前端應(yīng)該能夠在隔離或容器應(yīng)用中呈現(xiàn)。所需的數(shù)據(jù)應(yīng)由每個(gè)微前端加載并避免數(shù)據(jù)瀑布。

做✅:

  • 可以在不影響其他微前端的情況下交換的共享庫(kù)。
  • 加載所需的所有數(shù)據(jù)呈現(xiàn)。

不要❌:

  • 在不同的微前端具有集中存儲(chǔ)/共享數(shù)據(jù)。
  • 共享積極開(kāi)發(fā)的庫(kù)。

單獨(dú)的代碼基礎(chǔ)

每個(gè)微前端都應(yīng)具有自己的代碼庫(kù),并且選擇的版本控制不應(yīng)對(duì)項(xiàng)目開(kāi)發(fā)或部署的方式產(chǎn)生任何影響。在單一的單一或單獨(dú)的存儲(chǔ)庫(kù)下?lián)碛兴许?xiàng)目都很好。

做✅:

  • 使用單一代碼倉(cāng) monorepos。
  • 使用單個(gè) repos。

每個(gè)微前端應(yīng)獨(dú)立部署

每個(gè)微型前端都有它自己的CI / CD管道,并且能夠在沒(méi)有其他微前端的任何依賴項(xiàng)的情況下部署到生產(chǎn)。應(yīng)該避免的常見(jiàn)的反模式是“地獄的部署隊(duì)列”,其中不同的微前端如此緊密地耦合,它們需要以特定順序部署,以避免打破應(yīng)用程序。

做✅:

  • 具有單獨(dú)的CI / CD管道。
  • 按需發(fā)布。

不要❌:

  • 有發(fā)布時(shí)間表。
  • 具有允許以前版本的增量/順序部署。

微前端應(yīng)獨(dú)立測(cè)試

因?yàn)樾枰獑为?dú)的微前端以及容器應(yīng)用程序內(nèi)部呈現(xiàn),因此還可以使用單位和整個(gè)方案的集成測(cè)試測(cè)試它們是有意義的。

做✅:

  • 為隔離的每個(gè)微前端渲染具有單位和集成測(cè)試。
  • 在容器應(yīng)用程序中運(yùn)行微前端渲染的集成測(cè)試作為端到端測(cè)試的一部分。

微前端應(yīng)該是有版本的

當(dāng)一個(gè)新的微前端被部署到生產(chǎn)時(shí),不應(yīng)刪除以前的版本,并且應(yīng)該使用語(yǔ)義版本或類似的版本號(hào)標(biāo)記新版本。由容器應(yīng)用程序決定要使用(管理)的特定微前端或始終使用最新版本(Evergreen)的特定版本。

做✅:

  • 使用語(yǔ)義版本化。
  • 使用特定版本或“最新”。

不要❌:

  • 需要全局部署更改版本。
  • 刪除以前的版本。

最小的溝通

微前端之間的通信應(yīng)盡可能最小,簡(jiǎn)單,避免盡可能多的全球狀態(tài)和框架特定的解決方案。

如果兩個(gè)或更多的微前端共享大量消息以提供其最小功能,它們可能太緊密耦合,并且它們可以共享類似的足夠的目的,即它們應(yīng)該被認(rèn)為將它們集成到一個(gè)中。

做✅:

  • 保持信息小而簡(jiǎn)單。
  • 如果可能的話,避免有狀態(tài)和通信框架。

不要❌:

  • 股東。
  • 有不必要的溝通。

CSS應(yīng)該是范圍

來(lái)自一個(gè)微前端的CSS不應(yīng)影響其它微前端。

做✅:

  • 為您的CSS定義范圍。
  • 使用CSS-IN-JS或命名法庫(kù)(如CSS模塊)。

不要❌:

  • 使用全局CSS。

最終建議書(shū)

做✅:

  • 嘗試創(chuàng)建自治團(tuán)隊(duì)。
  • 嘗試安排圍繞業(yè)務(wù)功能的微前端。
  • 可重用性是一個(gè)很好的“副作用”而不是目標(biāo)。

不要❌:

  • 不要強(qiáng)制這種架構(gòu)風(fēng)格,因?yàn)樗?ldquo;新”。
  • 您不需要多個(gè)JavaScript框架。
  • 您不需要“微前端框架”。
  • 微前端不必是“Micro”。

原文鏈接:https://medium.com/swlh/rules-of-micro-frontends-7b96c10dde9

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2022-10-20 10:02:16

前端測(cè)試開(kāi)發(fā)

2021-02-20 10:26:00

前端

2009-12-11 10:02:26

2020-04-28 16:12:50

前端JavaScript代碼

2023-07-17 13:57:05

2021-04-30 23:19:04

前端框架工具

2019-09-17 09:44:45

DockerHTMLPython

2019-11-27 10:55:36

云遷移云計(jì)算云平臺(tái)

2021-08-17 15:00:10

BEC攻擊網(wǎng)絡(luò)攻擊郵件安全

2021-07-06 14:17:16

MLOps機(jī)器學(xué)習(xí)AI

2022-12-21 08:20:01

2020-03-09 14:10:48

代碼開(kāi)發(fā)工具

2019-05-07 09:00:40

無(wú)服務(wù)器Lambda管理

2021-01-20 10:53:41

云計(jì)算云存儲(chǔ)云遷移

2022-03-11 18:30:39

DevOps軟件開(kāi)發(fā)

2020-11-25 10:26:24

云計(jì)算云安全數(shù)據(jù)

2021-12-17 14:06:55

云計(jì)算安全工具

2023-06-29 00:19:51

2023-07-04 15:56:08

DevOps開(kāi)發(fā)測(cè)試

2023-01-13 16:34:08

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)