人(rén)
已閱讀(dú)
已閱讀(dú)
APP開(kāi)發如(rú)何做(zu&₹ò)好(hǎo)代碼分(fēn)支管理(lǐ)
來(lái)源:lexintech.com 發∏≥ 布時(shí)間(jiān):2018-05-23
APP開(kāi)發程序員(yuán)在使用(yòng)代碼版本管理(lǐ)分(f↑♠ēn)支的(de)時(shí)候,一(yī)般使用(yòng)三種分(×←fēn)支類型:主幹分(fēn)支、特性分(fēn)支、發布分(✘¶$fēn)支,以及三條基本規則。

規則一(yī),開(kāi)始工(gōng)作(zuò)前,從γ€(cóng)主幹創建特性分(fēn)支。
每當開(kāi)始一(yī)件(jiàn)新的(de)工(gōng)★©ε♥作(zuò)項(比如(rú)新的(de)功能(néng)σ₽←€或是(shì)待解決的(de)問(wèn)題)的(de)時(shí)候γ"σ,從(cóng)代表最新已發布版本的(de)主幹上(shàng₩♥₩)創建一(yī)個(gè)特性分(fēn)支,然後在這(zhè)個(gè♥ )分(fēn)支上(shàng)提交代碼修改。也(yě)就(jiù)是(shìλ₩)說(shuō),每個(gè)工(gōng)作(zuò)項(可(kě)以≤$π是(shì)一(yī)個(gè)人(rén)完成,或是(shì)多(♥ <βduō)個(gè)人(rén)協作(zuò)完成)對(duì)應一(yī♣£)個(gè)特性分(fēn)支,所有(yǒu)的(de)修改都(dōu∑£§)不(bù)允許直接提交到(dào)主幹。
規則二,通(tōng)過合并特性分(fēn)支,形成發布分(fēn)✘λ®支。
先将已經完成的(de)特性分(fēn)支合并回±→公共主線(即開(kāi)發分(fēn)支),然後從(cóng)公共主÷α±€線拉出發布分(fēn)支。
首先,發布分(fēn)支的(de)用(yòng)途 ∑±可(kě)以很(hěn)靈活。基礎玩(wán)法是(shì)将每條發布分Ω (fēn)支與具體(tǐ)的(de)環境相(xiàng)對(du<↓ì)應,比如(rú)release/tes≥×₩♠t分(fēn)支對(duì)應部署測試環境,release/prod ε↑分(fēn)支對(duì)應線上(shàng)正式環境等∏§★©等,并與流水(shuǐ)線工(gōng)具相₽≥(xiàng)結合,串聯各個(gè)環境上(shàng)的≥λ÷(de)代碼質量掃描和(hé)自(zì)動化(huà)測試關卡,将産出的(deαλ)部署包直接發布到(dào)相(xiàng)應環境上(shàng₩♣←")。進階點的(de)玩(wán)法是(shì)将一(yī)個(gè)發布分(<₩fēn)支對(duì)應多(duō)個(gè)環©←境,比如(rú)把灰度發布和(hé)正式發布串在一(yī)起,中↓ 間(jiān)加上(shàng)人(rén)工(gōng)驗收的(de)步©÷&←驟。高(gāo)級的(de)玩(wán)法呢₹♦↓(ne),要(yào)是(shì)按叠代計(jì)劃來(lái)關聯特性分(↑γ±™fēn)支,創建出以叠代演進的(de)固定發布分(fēn)支,再把一(π♥©♥yī)系列環境都(dōu)串在這(zhè)個(gè)發布分(fēn)支的σ (de)流水(shuǐ)線上(shàng),就(jiùλ☆↑)有(yǒu)點經典持續集成流水(shuǐ)線的(de)味道(dào)了 δ↕•(le)
其次,發布分(fēn)支的(de)特性組成是(shì)動态的(de)♥↕♠←,調整起來(lái)特别容易。在一(yī)∏×↔些(xiē)市(shì)場(chǎng)瞬息萬變的(de)¶φε互聯網企業(yè),以及采用(yòng)“敏捷運作(zuò)&rd£•quo;的(de)乙方企業(yè)經常會(huì)遇到(∏'<dào)這(zhè)種情況,已經完成就(ji₩♥ù)等待上(shàng)線的(de)需求,随時(shí)可(kě)能☆ ♥♦(néng)由于市(shì)場(chǎng)策略調整或者 <甲方的(de)一(yī)個(gè)臨時(shí)決定,★α€其中某個(gè)功能(néng)忽然要(y♣÷÷ào)求延遲發布或者幹脆不(bù)要(yào)了(le)。再或者是(sσ↔₹hì)某個(gè)特性在上(shàng)線©✔∑♣前發現(xiàn)存在嚴重的(de)開(kāi÷♠)發問(wèn)題,需要(yào)排除。按往常的(de)做(♣✔£zuò)法,這(zhè)時(shí)候就(jiù)要(yào)來(lái)手€ε工(gōng)“剔代碼”了(le),将已經合并到∑♥∞(dào)開(kāi)發分(fēn)支或者主幹☆ §分(fēn)支的(de)相(xiàng)關提交一✘$¶(yī)個(gè)個(gè)剔除出去(qù),做(zuò)過的(d ₽e)同學都(dōu)知(zhī)道(dào)很(hěn)σ•≤'麻煩。
規則三,發布到(dào)線上(shàng)正式環境後,合并相(xiàn≠✘∑g)應的(de)發布分(fēn)支到(dào)主σ✘幹,在主幹添加标簽,同時(shí)删除該₩↑發布分(fēn)支關聯的(de)特性分(fēn)支。
當一(yī)條發布分(fēn)支上(shà♥>λ¥ng)的(de)流水(shuǐ)線完成了(le)一₩±π(yī)次線上(shàng)正式環境的(de)部署,就(>©∏σjiù)意味著(zhe)相(xiàng)應的(de)功↓¥↔能(néng)真正的(de)發布了(le),↓此時(shí)應該将這(zhè)條發布分(fēn)支合并到(dào)主幹¶§。為(wèi)了(le)避免在代碼倉庫裡(lǐ)堆積大(d£© à)量曆史上(shàng)的(de)特性分' (fēn)支,還(hái)應該清理(lǐ)掉已經上(π¥shàng)線部分(fēn)特性分(fēn)支。主幹分♥↕(fēn)支上(shàng)的(de)最新版本始終與線上(shàng)版★γα本一(yī)緻,如(rú)果要(yào)回溯曆史版本€Ω∞≤,隻需在主幹分(fēn)支上(shàng)找到(dào)相(xiàγ↔ng)應的(de)版本标簽即可(kě)。
- 上(shàng)一(yī)篇:APP開(kāi)發的(de)産品設計(jì)如(rú)何才能(néng)打動γ$σ客戶
- 下(xià)一(yī)篇:如(rú)何才能(néng)開(kāi)發λ®•↕出一(yī)個(gè)優秀的(de)APP産品
- > 開(kāi)發網站(zhàn)或APP是(shì)用(yòn₹←g)JAVA好(hǎo)還(hái)是(shì)PHP好(hǎo)?
- > 找外(wài)包公司開(kāi)發APP有(yǒu)哪些(xiē)λ↕注意事(shì)項?
- > 想創業(yè),别再盲目開(kāi)發APP了(le)!
- > 開(kāi)發一(yī)個(gè)APP多(duōλ÷)少(shǎo)錢(qián)?
- > 開(kāi)發一(yī)個(gè)APP多(duō)€β少(shǎo)錢(qián)?
- > 跟外(wài)包公司合作(zuò)怎麽樣才能(né© ng)做(zuò)好(hǎo)一(yī)款APP λ?