關於分支or主幹開發模式的思考
大家坐下來討論各種開發模式。
A說:我們組同時開發的feature很多,所以必須要多分支,保證各個feature之間相互不影響,能方便地開發測試交付。
B說:我不想用多分支,要不然到合併的時候就頭疼了。
C說:或者我們可以用單分支單主幹,分支上開發,主幹上測試和交付,這樣保持測試時候的穩定性,合併的代價比較少。
A說:這樣還是有衝突的,如果一個feature合併到主幹在交付前測試時,其他feature想緊急上線,或者其他線上bug需要緊急修復怎麼辦?
D說:其實更好的模式應該是主幹開發,等到要release的時候拉一個releasebranch,在releasebranch上修復測試時候發現的bug,release branch只要足夠小(2-3天),就能避免衝突和緊急事件了。
我聽著聽著覺得很神奇,其實每一種開發模式都有利弊,甚至你根本無法判斷在特定情況下哪種開發模式更好了。
好吧,那不如跳出來,我們不要考慮開發模式了。你只要從比較好的幾種方法中挑出一種就可以了。
其實在開發模式後面,更重要的是開發的意識。
比如,如果是持續整合的話,如果你能夠保證ci的程式碼不影響整個系統的現有功能,那麼無論這個程式碼是完整還是不完整的,都可以釋出,這樣,我們壓根兒不需要討論是主幹上開發還是分支上開發,單分支上開發還是多分支上開發,它們不再是一個問題。
再比如,及時ci,你如果想知道整個團隊的動向,或者說,是程式碼的動向,那麼永遠不要一直在本地默默寫程式碼,否則很久以後,你會發現你離大部隊好遠追也追不上了(當然可以追上,只要你跑得氣喘吁吁狼狽不堪)。總是在ci程式碼,人家知道你在幹嘛,你也知道部隊在哪兒。同時,千萬不要忘了上面那個比如,否則系統不work了你就麻煩了。
相關文章
- 關於OpenAI的思考:10億美金要幹啥?OpenAI
- 關於工廠模式的思考模式
- 關於開發流的一點思考
- 關於“開源”的思考
- gitlab一個分支落後於主分支,怎麼同步主分支的提交Gitlab
- 關於主資料的實踐和思考
- 關於模式爭論的一點點思考模式
- 關於研發效能提升的思考
- Java 關於策略模式+簡單工廠模式下的思考Java模式
- 關於軟體開發的一些常識和思考
- 關於面試的思考面試
- 關於Ioc的思考
- 關於weblogic server域生產模式和開發模式的轉換WebServer模式
- 【原】關於員工離職引發的思考
- 關於難點的思考
- 關於語言的思考
- 關於ETL工具的思考
- 關於Web開發中“程式=資料結構+演算法”的思考Web資料結構演算法
- iOS關於換膚和夜間模式的一些思考iOS模式
- SpringMVC的主幹SpringMVC
- 關於我們的思考——“專案開發”及讀《人月神話》有感 (轉)
- 關於研發規範化的一些思考
- 關於Roastedbeef烤牛肉USDT模式系統開發(原理)AST模式
- 關於中介軟體的思考
- 關於限流實現的思考
- 關於寫部落格的思考
- 關於Fork和Malloc的思考
- 關於Flux,Vuex,Redux的思考VueRedux
- 關於測試流程的思考
- 關於前端的思考與感悟前端
- 關於技術分享的思考
- 關於創業的思考薦創業
- 關於產品的若干思考
- 開發分支管理策略
- 主幹開發前要知道的,4錯誤認識+3優勢
- 婚戀交友原始碼開發,關於API介面安全性問題的思考原始碼API
- 關於struts開發的疑惑
- 關於開發框架的搭建框架