軟件開發(fā)中有一個持續(xù)集成的概念哪替。它是一種軟件開發(fā)實踐红氯,對于提高軟件開發(fā)效率并保障軟件開發(fā)質(zhì)量提供了理論基礎(chǔ)泣懊。除了自動化測試部署躺彬,?頻繁地(一天多次)將代碼集成到主干煤墙。
(1)快速發(fā)現(xiàn)錯誤梅惯。每完成一點更新,就集成到主干仿野,可以快速發(fā)現(xiàn)錯誤铣减,定位錯誤也比較容易。
(2)防止分支大幅偏離主干设预。如果不是經(jīng)常集成徙歼,主干又在不斷更新,會導(dǎo)致以后集成的難度變大鳖枕,甚至難以集成魄梯。
簡單一點來說就是功能開發(fā)完成,就可以提交到主分支了宾符。但是功能開發(fā)完成的標志點是酿秸,測試通過、review 完成魏烫。
那什么時候代碼才應(yīng)該被提交到主分支呢辣苏?
分支的概念和 git 工作流請移步 企業(yè)級開發(fā):Gitflow Workflow工作流。
測試
代碼倉庫對commit操作配置了鉤子(hook)哄褒,只要提交代碼或者合并進主干稀蟋,就會跑自動化測試。測試有好幾種呐赡。
- 單元測試:針對函數(shù)或模塊的測試
- 集成測試:針對整體產(chǎn)品的某個功能的測試退客,又稱功能測試
- 端對端測試:從用戶界面直達數(shù)據(jù)庫的全鏈路測試
第一輪至少要跑單元測試。
代碼 review 相當(dāng)重要链嘀,不能讓任何沒有審查過的代碼提交到主分支萌狂。在Google,沒有程序怀泊,任何產(chǎn)品茫藏、任何項目的程序代碼,可以在沒有經(jīng)過有效的代碼審查前提交到代碼庫里的霹琼。
流程
在前后端分離的開發(fā)中务傲,比較好的流程就是把審查加入到各個環(huán)節(jié)。
- 需求分析
- 需求評審
- 先定義開發(fā)文檔
- 開發(fā)文檔評審
- 前端枣申、后端在各自的分支開發(fā)售葡。
- 前端使用測試接口,開發(fā)糯而。http://mockjs.com/ 模擬數(shù)據(jù)
- 后端一個小功能點完成天通,提交 pull request
- 審查
- 合并
- 前端拉取代碼,接入調(diào)試
- 前端提交Pull reqeust
最后是集成發(fā)布熄驼!