5.3 CI/CD?與Code?Preview


CI/CD
Continuous Integration (CI)
? ? 持續(xù)集成是一種軟件開發(fā)實踐,開發(fā)人員會定期(通常每天)將代碼更改集成到共享分支中。每次集成都會自動觸發(fā)構(gòu)建和測試序列,以檢測并早期解決任何集成錯誤。
Continuous Delivery (CD)
? ? 持續(xù)交付延續(xù)了持續(xù)集成的實踐,確保你可以隨時將新代碼更改部署到生產(chǎn)環(huán)境中。這意味著除了自動化測試之外,發(fā)布過程也被自動化,以減少發(fā)布新版本的復(fù)雜性和努力。

? ? ? 在CI/CD環(huán)節(jié)中,通過運用Git和Container計算可以非常容易的實現(xiàn)整個過程,通過Git實現(xiàn)對代碼與版本的管理,通過Container實現(xiàn)構(gòu)建與發(fā)布,CI/CD的落地并不是特別復(fù)雜的事情。
Code Preview

? ? 是一種開發(fā)工具,它允許開發(fā)者在提交或合并代碼更改之前預(yù)覽其效果。這意味著開發(fā)人員可以在真實環(huán)境中測試和驗證他們的更改,而不僅僅是在他們的開發(fā)環(huán)境中。
我們?nèi)绾稳プ鯟ode Preview?
Code Preview應(yīng)該在那個環(huán)節(jié)去做?
Code Preview應(yīng)該關(guān)注代碼的什么方面?
? ? Code Preview也是屬于代碼管理的范疇,代碼的管理,我們通常是采用Git管理,無論是用GitHub、GitLab、Gitee,他們對git的操作支持都是一樣的。通常對于代碼的管理可以通過branch、tag來管,代碼的協(xié)作我們通過也是通過branch或PR來協(xié)作。

Code Preview應(yīng)該在什么環(huán)節(jié)去做?
? ? ? ?在很多公司的項目管理下,大家通常都是通過branch來管理開發(fā)代碼模塊,由成員各自建立branch分支來維護(hù)開發(fā)項目,其實這并不是git所推薦的方式。
? ? ? 建議的方案是:項目代碼的直接由項目的技術(shù)負(fù)責(zé)人master來維護(hù),他先創(chuàng)建好項目,然后其他同事參與項目的維護(hù)是通過fork該項目來維護(hù),master根據(jù)項目的環(huán)境與進(jìn)度設(shè)置不同的branch分支,大家完成了代碼以后PR到master的倉庫對應(yīng)的branch下,由master完成Code Preview以后再merge到項目的branch下,然后再執(zhí)行CI/CD的過程。master還需要再PR流程中設(shè)置 PR check list,當(dāng)項目成員體檢過來的時候,需要先完成PR的CI過程,然后master再去做Code Preview。
Code Preview應(yīng)該關(guān)注那些地方?
? ? ? ? 首先master需要要求大家在開發(fā)功能的過程中,必須完善相關(guān)的單元測試,并滿足對應(yīng)的單元測試覆蓋率限制要求,當(dāng)團(tuán)隊提交過來代碼以后,至少會執(zhí)行如下CI環(huán)節(jié),首先是代碼的Code Build,再是Code Junit Test,單元測試執(zhí)行完成以后會自動根據(jù)測試的覆蓋率結(jié)果生成一個自動化的結(jié)果。從而每一個PR都能看到如下三個自動化檢測的過程:代碼能否編譯通過、代碼單元測試能否執(zhí)行通過、代碼的覆蓋率是否滿足要求。
? ? ? ? 同若代碼的單元測試已經(jīng)完成了所有的業(yè)務(wù)檢測,那么針對master來說Code Preview主要關(guān)注的是:單元測試腳本是否合理、代碼是否符合內(nèi)部規(guī)范、代碼有無明顯缺陷與隱患