丨持續(xù)集成本身就是寫代碼的一個(gè)環(huán)節(jié)_第1頁
丨持續(xù)集成本身就是寫代碼的一個(gè)環(huán)節(jié)_第2頁
丨持續(xù)集成本身就是寫代碼的一個(gè)環(huán)節(jié)_第3頁
丨持續(xù)集成本身就是寫代碼的一個(gè)環(huán)節(jié)_第4頁
丨持續(xù)集成本身就是寫代碼的一個(gè)環(huán)節(jié)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

交付一個(gè)可運(yùn)行的軟件,通常不是靠程序員奮戰(zhàn)就能完成的,它是開發(fā)團(tuán)隊(duì)協(xié)作的結(jié)果。我們大多數(shù)人都工作在一個(gè)團(tuán)隊(duì)中,那我們寫的代碼是不是能夠自然而然地就和其他人的代碼配合到一起呢?顯然沒那么簡單。但是集成這件事情,該誰做,該怎么做呢?我不知道你有沒有思考過這個(gè)問題。在開始這個(gè)2009年,我在一個(gè)大公司做咨詢。對(duì)接合作的部門里有很多個(gè)小組,正在共同研發(fā)一個(gè)項(xiàng)目。他們工作流程是,先開發(fā)一個(gè)月,等到開發(fā)階段告一段落,大項(xiàng)目經(jīng)理再把各個(gè)小組最精銳成員調(diào)到一起開始集成。對(duì)他們來說,集成是一件大事,難度很大,所以要精英來做。這個(gè)項(xiàng)目是用C語言編寫的,所以,集成的第一步就是編譯。大家把各個(gè)小組寫好的說,“聯(lián)調(diào)”階段更像是場“”。為什么?你想想,一個(gè)大部門有若干個(gè)團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)都在為同一個(gè)項(xiàng)目進(jìn)行代碼開發(fā),周期為一個(gè)月。這一個(gè)月期間,所有團(tuán)隊(duì)的程序模塊匯一起,體量會(huì)非常龐大。那么這些內(nèi)容中,出現(xiàn)錯(cuò)誤需要改動(dòng)的可能性也就非常大,需要改動(dòng)的量也就非常大。因此他們集成“聯(lián)調(diào)”所需要的時(shí)間也會(huì)非常長。即便他們調(diào)動(dòng)各組精英,完成一次項(xiàng)目集成的時(shí)間至少也需要2~3天,改動(dòng)量稍大,可能就要一周了。雖然我不知道你所處公司的現(xiàn)狀是什么樣的,但大概率地說,你在職業(yè)生涯中,會(huì)遇到過類似的場景。那怎么去解決這個(gè)問題呢?這是一個(gè)行業(yè)中常見的痛點(diǎn),所以,就會(huì)有人不斷地嘗試改進(jìn),最先取得的突破是“每日構(gòu)1996年,SteveMcConnel了一本著作《RapidDevelopment》,國內(nèi)譯作《快速軟件開發(fā)》。在這本書中,作者首次提出了解決集成問題的優(yōu)秀實(shí)踐:DailyBuild,每日這在當(dāng)時(shí)的人看來,已經(jīng)是“驚為天人”了。就像上面提到的例子一樣,當(dāng)時(shí)的人普遍存在一種錯(cuò)誤認(rèn)知:集成不是一件容易的事,需要精英參與,需要很長時(shí)間,如果每天都進(jìn)行集成,這是想都不敢想的事情。你會(huì)看到,對(duì)比最后做集成和每日構(gòu)建,這兩種不同的做法都是在處理改動(dòng)量和集成時(shí)間的關(guān)系。只不過,一個(gè)是朝著“長”的方向在努力,一個(gè)則瞄準(zhǔn)“短”的方向。最后的事實(shí)證明,“長”的成了惡性循環(huán),“短”的成了最佳實(shí)踐。碼,這個(gè)就要去集成呢?顯然,這在真實(shí)工作中是行不通的。一個(gè),定期去源碼服務(wù)器上拉代碼,出現(xiàn)程序更新時(shí),就自動(dòng)完成構(gòu)建。后來,人們發(fā)現(xiàn)這段與任何具體項(xiàng)目都是無關(guān)的。于是,把它進(jìn)一步整理并發(fā)布出來,2000MartinFowler章“ContinuousIntegration”。之后一年,由MartinFowler所在的ThoughtWorks公司發(fā)布了市面上第一款持續(xù)集成服務(wù)器CruiseControl。CruiseControl可謂是持續(xù)集成服務(wù)器的鼻祖,后來市面上的服務(wù)器MarinFowler的文章和首款持續(xù)集成服務(wù)器的問世,讓軟件行業(yè)對(duì)持續(xù)集成進(jìn)行了更為深入的探討,人們對(duì)于持續(xù)集成的認(rèn)知程度一路走高,持續(xù)集成服務(wù)器成為了開發(fā)團(tuán)隊(duì)在集成階段最得心應(yīng)手的工具。圍繞著持續(xù)集成的一系列行為準(zhǔn)則逐漸成型。以至于發(fā)展到2006年,MartinFowler不得不重寫了“ContinuousIntegration”這篇文這不難理解,每日構(gòu)建的概念雖然早早就提出來了,但在那個(gè)時(shí)期,行業(yè)里真正踐行每日構(gòu)建的公司并不多,其根本原因就在于,每日構(gòu)建最初都是一些指導(dǎo)原則,缺乏工具的支持。而每日構(gòu)建和持續(xù)集成最根本的區(qū)別在于構(gòu)建時(shí)機(jī),而這只是持續(xù)集成服務(wù)器的一個(gè)配置選項(xiàng)而已。這個(gè)項(xiàng)目是我在2009MartinFowler下“ContinuousIntegration”已經(jīng)過去了9過去了3McConnell13即便以當(dāng)時(shí)的時(shí)間坐標(biāo)系來看,這個(gè)項(xiàng)目的集成實(shí)踐水平至少行業(yè)10年以上。沒錯(cuò),時(shí)至今日,持續(xù)集成早就是成熟得不能再成實(shí)踐了。然而,據(jù)我所知,許多公司依然處于集成要依賴于“”的蠻荒階段。雖然我們?cè)谕粋€(gè)時(shí)代碼做開發(fā),但在技術(shù)實(shí)踐層面,不同的團(tuán)隊(duì)卻仿佛不同的也許,目前國內(nèi)對(duì)于持續(xù)集成的實(shí)踐水平還處于較為原始的狀態(tài),這是個(gè)壞消息。但好消息是,我們可以通過的學(xué)習(xí),對(duì)集成有足夠的了解,從而一步到位地進(jìn)入到最先進(jìn)的狀態(tài)中。無需停留在以精英為的集成時(shí)代,也可以完全不理會(huì)每日構(gòu)建,我希望你擁有這個(gè)時(shí)代基于這樣的理解,我們就不能再說代碼寫完了,就差集成了,因?yàn)檫@不叫開發(fā)的完成。一個(gè)好的做法是盡早把代碼和已有代碼集成到一起,而不應(yīng)該等著所有代碼都開發(fā)完了,再去做在軟件開發(fā)中,編寫代碼是很重要的一環(huán),但程序員的交付物并不應(yīng)該是代碼,而是一個(gè)可工作的軟件。當(dāng)我們?cè)谝粋€(gè)團(tuán)隊(duì)中工作的時(shí)候,把不同人的代碼放在一起,使之成為一個(gè)可工作軟件的過程就是集成。在很長一段時(shí)間內(nèi),集是軟件行業(yè)的難題,改動(dòng)量和集成時(shí)間互相影響。幸運(yùn)的是,不同的人在不同的方向嘗試著改變,結(jié)果,同時(shí)加大改動(dòng)量和集成時(shí)間的人陷入了泥潭,而調(diào)小這兩個(gè)參數(shù)的人看到了曙光。每日構(gòu)建作為早期的一種“最佳實(shí)踐”被提了出來,但因?yàn)樗旧隙际窃瓌t,沒有得到廣泛的應(yīng)用。當(dāng)人們進(jìn)一步“調(diào)小”參數(shù)后,誕生了一個(gè)更極致的實(shí)踐:持續(xù)集成,也就是每次提交代碼都進(jìn)行集成。真正讓持續(xù)集成成為行業(yè)最佳實(shí)踐的是,MartinFowler的文章以及持續(xù)集成服務(wù)器。持續(xù)集成的思維讓我們認(rèn)識(shí)到,開發(fā)和集成可以合二為一。我們應(yīng)該把開發(fā)的完成定義為代碼已經(jīng)集成起來,而站在的角度,我們應(yīng)該盡早提交自己的代碼,早點(diǎn)開始集成。 歸科技所有 不得售賣。頁面已增加防盜追蹤,將依法其上一篇04|下一篇06|言言 12曾經(jīng)參與過一個(gè)項(xiàng)目,印三地開發(fā),開發(fā)測試產(chǎn)品加起來可能過百吧。當(dāng)時(shí),我們中做到這一步,其實(shí)不算什么,但是已經(jīng)超過國內(nèi)80%的水平了。然后我們還會(huì)構(gòu)建王小 releasetag 4公司一部分人在這邊做開發(fā),另一部分在做開發(fā),每到集成,想到的頭疼的問題一 3 2猿工 git,Jenk

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論