【經(jīng)驗(yàn)分享】企業(yè)大型代碼倉(cāng)庫(kù)管理實(shí)踐

資料來(lái)源:Sourcegraph
關(guān)于大型代碼庫(kù)管理的關(guān)鍵問(wèn)題探討

(文末獲取報(bào)名入口)
1、首要問(wèn)題:擴(kuò)展性
——————————
Google 資深軟件工程師Titus 負(fù)責(zé)管理 大型C++ 代碼庫(kù),大約十億行代碼中的四分之一他認(rèn)為“一旦進(jìn)入百萬(wàn)行代碼領(lǐng)域,最重要的事情就是如何進(jìn)行擴(kuò)展?!?/span>

Titus Winters/ Google 資深軟件工程師
“很多構(gòu)建系統(tǒng)、CI 系統(tǒng)、版本控制策略、版本控制系統(tǒng)的固有問(wèn)題可能會(huì)出現(xiàn)。你亟需找到一個(gè)好用的構(gòu)建系統(tǒng),如果你的構(gòu)建系統(tǒng)是以函數(shù)式編程語(yǔ)言模型為基礎(chǔ),而非命令式編程語(yǔ)言模型,這個(gè)系統(tǒng)就具有了一個(gè)強(qiáng)大的功能,我們可以自由地對(duì)這些構(gòu)建進(jìn)行緩存、分發(fā),構(gòu)建速度、可依賴性和復(fù)制性也得到提升。一旦具備了這些功能,你構(gòu)建的CI 管道也是可靠的……”
2、困難重重的依賴關(guān)系處理
——————————
Marc 是Mathworks(Matlab的創(chuàng)建者)資深架構(gòu)師,具有 25 年的代碼工作經(jīng)驗(yàn)熟悉數(shù)百萬(wàn)行代碼項(xiàng)目,并擅長(zhǎng)處理依賴項(xiàng)難題:

“隨著代碼量的不斷增長(zhǎng),性能、分區(qū)、穩(wěn)固性都是挑戰(zhàn)不斷。代碼數(shù)量增多,使上層和底層操作系統(tǒng)都會(huì)變得緊張,同時(shí)很多工具也會(huì)不堪重負(fù)。這種負(fù)擔(dān)會(huì)進(jìn)一步影響 CPU,調(diào)試所需的 RAM 量?!?/span>
代碼之間依賴度過(guò)高,那么編碼任務(wù)就永無(wú)止境。你無(wú)法做到改變共享模塊,同時(shí)不造成其他破壞。更可怕的是,你也不知道你破壞了什么。當(dāng)然,這并不全是真實(shí)情況,你可能熟悉你正在處理的類,也了解其中的依賴關(guān)系。但是你如何在數(shù)百萬(wàn)行代碼中進(jìn)行追蹤呢?編譯器中的工具可能可以幫點(diǎn)小忙,但這遠(yuǎn)不夠用…… ”
3、如何有效利用微服務(wù)
——————————
盡管微服務(wù)和大型代碼很少放在一起討論,但在過(guò)去十年中,微服務(wù)流行的部分原因,是其有效地管理了大型代碼。但在大型代碼庫(kù)中使用微服務(wù)是否會(huì)付出代價(jià)是需要關(guān)注的問(wèn)題。關(guān)于微服務(wù)不同經(jīng)歷的專家給出了不同的使用建議。
除此之外,如何保證設(shè)計(jì)文檔實(shí)時(shí)更新、分支合并與代碼重構(gòu)、瀑布式開發(fā) vs. 敏捷開發(fā)等話題都將被探討。
如何理解與處理依賴關(guān)系?
如何正確靈活利用微服務(wù)?
代碼庫(kù)內(nèi)部更改——文檔代碼化實(shí)操方法。
分支合并與代碼重構(gòu)關(guān)鍵技巧。
搞定大型代碼項(xiàng)目開發(fā)工具推薦
關(guān)于大型代碼庫(kù)管理的方方面面,參與8月9日 Incredibuild主辦的線上圓桌論壇,獲取答案。
報(bào)名活動(dòng),參與直播間抽獎(jiǎng)!
Incredibuild 開發(fā)者定制T恤
<developement_never_stops>


活動(dòng)及禮物詳情,請(qǐng)?zhí)砑覲enny微信咨詢
