本文開始前,問大家一個(gè)問題,你覺得一份業(yè)務(wù)代碼,尤其是互聯(lián)網(wǎng)業(yè)務(wù)代碼,都有哪些特點(diǎn)?
我能想到的有這幾點(diǎn):
- 互聯(lián)網(wǎng)業(yè)務(wù)迭代快,工期緊,導(dǎo)致代碼結(jié)構(gòu)混亂,幾乎沒有代碼注釋和文檔。
- 互聯(lián)網(wǎng)人員變動(dòng)頻繁,很容易接手別人的老項(xiàng)目,新人根本沒時(shí)間吃透代碼結(jié)構(gòu),緊迫的工期又只能讓屎山越堆越大。
- 多人一起開發(fā),每個(gè)人的編碼習(xí)慣不同,工具類代碼各用個(gè)的,業(yè)務(wù)命名也經(jīng)常沖突,影響效率。
- 大部分團(tuán)隊(duì)幾乎沒有時(shí)間做代碼重構(gòu),任由代碼腐爛。
每當(dāng)我們新啟動(dòng)一個(gè)代碼倉庫,都是信心滿滿,結(jié)構(gòu)整潔。但是時(shí)間越往后,代碼就變得腐敗不堪,技術(shù)債務(wù)越來越龐大。
這種情況有解決方案嗎?也是有的:
- 小組內(nèi)定期做代碼重構(gòu),解決技術(shù)債務(wù)。
- 組內(nèi)設(shè)計(jì)完善的應(yīng)用架構(gòu),讓代碼的腐爛來得慢一些。(當(dāng)然很難做到完全不腐爛)
- 設(shè)計(jì)盡量簡單,讓不同層級的開發(fā)都能快速看懂并上手開發(fā),而不是在一堆復(fù)雜的沒人看懂的代碼上堆更多的屎山。
而COLA,我們今天的主角,就是為了提供一個(gè)可落地的業(yè)務(wù)代碼結(jié)構(gòu)規(guī)范,讓你的代碼腐爛的盡可能慢一些,讓團(tuán)隊(duì)的開發(fā)效率盡可能快一些。
https://github.com/alibaba/COLA
https://blog.csdn.net/significantfrank/article/details/110934799