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

單頁應(yīng)用程序中智能DevOps的五種策略

開發(fā) 前端
DevOps在開發(fā)生命周期中起著不可或缺。本文關(guān)注5種能在單頁應(yīng)用程序中使用DevOps的策略。

本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)。

DevOps在開發(fā)生命周期中起著不可或缺。大多數(shù)前端框架都配有如Webpack一般的模塊捆綁器,以負(fù)責(zé)繁重的工作。但是,我們?nèi)匀恍枰?guī)劃如何連接捆綁持續(xù)集成(CI)和持續(xù)交付(CD)環(huán)境的前端工具。

本文關(guān)注5種能在單頁應(yīng)用程序中使用DevOps的策略。

[[348753]]

1. 減少環(huán)境配置

當(dāng)使用React、Angular和Vue創(chuàng)建單個(gè)頁面應(yīng)用的結(jié)構(gòu)時(shí),常規(guī)操作是每個(gè)環(huán)境使用單獨(dú)的配置文件。通常,開發(fā)、生產(chǎn)等使用一個(gè)環(huán)境配置。若每個(gè)環(huán)境彼此不同,便有多個(gè)配置文件。

但是,在本應(yīng)使用不同捆綁配置情況下,若開發(fā)和生產(chǎn)只使用兩個(gè)配置,而其他應(yīng)用程序特定的變量,如API路徑和主機(jī)名等在生成后修改,又會(huì)怎么樣呢?通過保留這兩個(gè)配置,你可以分開本地開發(fā)配置與其余配置(生產(chǎn)、暫存和質(zhì)量保證)。

如果將Build和Release劃分為兩個(gè)管道,可以先放完整的占位符,然后反復(fù)使用Build管道來創(chuàng)建構(gòu)件。之后,根據(jù)部署環(huán)境,可以在Release管道中動(dòng)態(tài)替換這些變量。這種方法主要有兩個(gè)優(yōu)點(diǎn): 

  • 可將相同捆綁器推入多個(gè)環(huán)境(使用基礎(chǔ)的字符串替換),節(jié)省寶貴構(gòu)建時(shí)間。
  • 掌握對(duì)捆綁器所做的確切更改,特別是在特定環(huán)境中。

2. 設(shè)置質(zhì)量門

在Pull Request合并到開發(fā)分支之前,先構(gòu)建前端的做法很常見。

質(zhì)量門的概念連接著Pull Request構(gòu)建,你可以在其中設(shè)置其他步驟(或門)以確保質(zhì)量。例如,可以用一個(gè)構(gòu)建步驟來用linter執(zhí)行操作,以確保修改或添加的任何代碼與已經(jīng)遵循的代碼樣式?jīng)]有任何偏差。做完這步后,可以用SonarCloud等高級(jí)代碼質(zhì)量工具來進(jìn)行質(zhì)量檢查,通過詳細(xì)的見解向Pull Request本身提供反饋。

你或許會(huì)問,為什么在簽入代碼之前就不進(jìn)行IDE級(jí)別的這些代碼質(zhì)量評(píng)估?是的,在IDE級(jí)別進(jìn)行這些評(píng)估(如果有可用的IDE插件)很重要,這能避免花時(shí)間在反饋周期上。但是,保證質(zhì)量以進(jìn)行整體代碼質(zhì)量管理同樣重要。

[[348754]]

圖源:unsplash

3. 緩存程序包安裝

NPM軟件包安裝占很大一部分端構(gòu)建的執(zhí)行時(shí)間。重復(fù)構(gòu)建時(shí),由于很少更改外部依賴項(xiàng),很難改善這個(gè)情況。

改進(jìn)后,你可以設(shè)置一個(gè)緩存步驟來緩存這些依賴項(xiàng)。在特定的DevOps平臺(tái)(例如AzureDevOps)中,預(yù)定義的步驟可以執(zhí)行此操作。但是,如果無法在DevOps平臺(tái)中找到它,可以基于package.json內(nèi)容創(chuàng)建一個(gè)哈希函數(shù),并將其用作緩存鍵來執(zhí)行相同的操作。

4. 尋找并行性

在某些情況下,當(dāng)在DevOps管道上構(gòu)建Web應(yīng)用程序時(shí),需要同時(shí)構(gòu)建前端和后端。由于大多數(shù)DevOps平臺(tái)都使用代理支持并行性,因此,可以將前端構(gòu)建和后端劃分為不同的代理。借此,完成構(gòu)建所需的時(shí)間便減少了。

如果將DevOps步驟劃為Build和Release管道,甚至可以在Release管道上組合前端和后端構(gòu)建構(gòu)件(前提是兩者都部署到同一服務(wù)器上)。

此外,即使在構(gòu)建管道中,還可以用其他步驟來執(zhí)行并行操作。重要的是,嘗試使用并行性進(jìn)行各種優(yōu)化,并評(píng)估其對(duì)整體DevOps的影響,以根據(jù)經(jīng)驗(yàn)教訓(xùn)進(jìn)行改進(jìn)。

5. 自動(dòng)化測(cè)試的有效執(zhí)行

最后,我想采取一個(gè)關(guān)鍵步驟,需要在DevOps管道中進(jìn)行設(shè)置。盡管最好是在Pull Request級(jí)別執(zhí)行這些步驟(在開發(fā)人員的設(shè)備上更佳),但需要根據(jù)測(cè)試執(zhí)行時(shí)間來確定正確的執(zhí)行位置。

例如,作為質(zhì)量門的一部分,在Pull Request構(gòu)建時(shí)執(zhí)行單元測(cè)試是一種常見的做法。但是,如果執(zhí)行要花幾分鐘時(shí)間(常事),則在此級(jí)別上運(yùn)行E2E測(cè)試可能會(huì)成為一筆開銷。因此,評(píng)估情況并決定在不同級(jí)別運(yùn)行E2E測(cè)試用例至關(guān)重要。

圖源:unsplash

如你所見,我們可以對(duì)DevOps進(jìn)行不同的改進(jìn),以提高效率并提升應(yīng)用程序的整體質(zhì)量。此外,其中的一些技術(shù)同樣適用于后端。

雖然本文只討論了五種策略,但是這些策略的方向可能會(huì)有助于進(jìn)一步改進(jìn)管道,以提高其性能(如根據(jù)構(gòu)建步驟在各個(gè)級(jí)別進(jìn)行緩存的技術(shù))。

但還需要注意的是,每項(xiàng)改進(jìn)都需要付出一定的代價(jià)。如果使用相同的緩存示例則應(yīng)該知道,即使你指定NPM依賴項(xiàng)的自動(dòng)更新小補(bǔ)丁,也有可能不使用庫的最新更新。最后,希望這些步驟將有助于你更好地使用DevOps并改善現(xiàn)有管道。

責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2020-03-27 09:20:00

單頁應(yīng)用程序網(wǎng)頁設(shè)計(jì)SPAs

2018-02-24 11:59:11

安全策略應(yīng)用程序安全策略

2009-01-16 09:22:40

Web應(yīng)用程序Web程序管理Web服務(wù)

2023-04-09 14:58:05

DevOps開發(fā)

2014-02-19 11:12:04

WAN優(yōu)化WAN

2024-05-10 09:38:01

人工智能

2022-07-04 17:32:12

DevOpsAIOps

2020-08-03 09:26:55

存儲(chǔ)內(nèi)存技術(shù)

2023-11-30 07:48:13

網(wǎng)絡(luò)韌性應(yīng)用程序

2014-12-16 09:35:13

DevOps

2014-02-24 10:50:32

DevOps云應(yīng)用

2022-08-16 20:04:08

移動(dòng)應(yīng)用測(cè)試

2009-04-01 14:33:33

2010-03-02 13:06:22

SilverLight

2021-02-20 09:57:02

人工智能移動(dòng)應(yīng)用

2019-02-14 09:30:40

Ubuntu應(yīng)用程序UI

2022-05-05 09:31:34

Go語言漏洞

2018-08-26 22:39:08

單頁應(yīng)用HATEOAS

2022-09-27 15:16:42

開發(fā)Android應(yīng)用程序

2018-06-12 17:11:30

應(yīng)用程序云計(jì)算云端
點(diǎn)贊
收藏

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