時下大多數(shù)開發(fā)人員對持續(xù)集成(Continuous Integration,CI)的基本原理已經(jīng)很熟悉,但是他們中只有一小部分人能夠從優(yōu)化CI設(shè)置中徹底受益。毫無疑問,一個有效的持續(xù)集成環(huán)境可以幫助你的團(tuán)隊節(jié)省時間、金錢甚至減少存有的顧慮。通過持續(xù)集成,我們可以更早地發(fā)現(xiàn)bug,更輕松地找出導(dǎo)致其發(fā)生的原因并終有效地解決。持續(xù)集成可以更好地管理源代碼,更有效地使用自動化分析工具,鼓勵編寫好的測試,跟蹤進(jìn)度以及突破開發(fā)人員活動中的瓶頸。持續(xù)集成可以讓部署過程更簡單且發(fā)布過程更加平穩(wěn)和可靠。借助于CI,管理者可以得到更多的圖表,了解到更多的信息,而開發(fā)者可以專注于開發(fā)而不用過多交流,也更加高興。換句話說,如果不使用持續(xù)集成,那么好比用記事本編寫代碼來開發(fā)軟件,雖然可行,但是太低效了。

  在本文中,來自Wakaleo咨詢公司的首席咨詢師John Smart,將給我們介紹如何把持續(xù)集成由一個名義上的定時作業(yè),變?yōu)殚_發(fā)活動中一個有效、而且能提高生產(chǎn)力的“中樞”。

  持續(xù)溝通流

  一個良好的敏捷開發(fā)環(huán)境本質(zhì)特征是盡可能的大化小組成員間的信息流。每一個開發(fā)人員都需要盡快地知道何時構(gòu)建過程失敗,或者何處改動可能會對應(yīng)用程序質(zhì)量造成不良影響。如果構(gòu)建過程失敗了,那么首要工作是要知道做了什么改動,以及為什么做這些改動:所有的這些信息都應(yīng)當(dāng)在開發(fā)人員敲擊幾下鍵盤后能通過直接的方式獲得。

  即便是基本的CI設(shè)置,它也會在構(gòu)建失敗后給開發(fā)人員發(fā)送電子郵件。其實我們只需要下一點點功夫,能比現(xiàn)在做得更好。一個良好設(shè)置的持續(xù)集成服務(wù)器應(yīng)該像團(tuán)隊溝通中的中樞一樣工作。除了簡單地發(fā)送電子郵件進(jìn)行提醒外,其實還有很多事情可以做,例如現(xiàn)代CI工具中的許多特性??這些特性可以更平穩(wěn)、更有效地向開發(fā)人員反映代碼改動和構(gòu)建失敗的情況。

  電子郵件大概是CI提醒方式中古老也是常使用的方式了,只是因為它非常普遍而且易于建立。盡管如此,事實上電子郵件是一個相對低效的提醒機(jī)制。當(dāng)構(gòu)建過程失敗時,你希望被盡快地通知到,越快越好。如果因為電子郵箱客戶端的更新而等上15分鐘的話,那么可能浪費(fèi)掉了開發(fā)時間。除此之外,電子郵件通常很容易讓開發(fā)人員分心。在企業(yè)里,每天的非緊急的或是不重要的電子郵件都會有很多。事實上許多的開發(fā)人員都禁用電子郵件提示,只是在中定時地去檢查幾次郵件。

  即時消息相對而言則是一個更加合適的提醒方式,有好幾個原因。重要的原因是,即時消息是(幾乎是)即時的。你不再需要因為電子郵件客戶端在服務(wù)器中檢查新郵件而等上10分鐘,使用即時消息,你能被立即通知到。它比電子郵件更加方便,而且閱讀起來也更快。不僅如此,來自構(gòu)建服務(wù)器的IM消息也會得到相關(guān)的重視,而不會淹沒在大量無用的其它信息中。

  當(dāng)事件發(fā)生后,使用快速即時信息和花上10到15分鐘使用電子郵件也許只相差幾分鐘,但千萬不要低估這幾分鐘的重要性。那幾分鐘足夠讓一個開發(fā)人員丟失重點,并轉(zhuǎn)移到其它的一些事情上,結(jié)果導(dǎo)致了開發(fā)人員很難回到上下文中去修復(fù)問題。

  使用即時消息的另外一個好處在于它可以擴(kuò)展到桌面以外的應(yīng)用。像BeeJive這樣的應(yīng)用程序可以將即時消息用到移動設(shè)備諸如Blackberries(黑莓)和iPhones上。這樣的話,即使開發(fā)人員不在辦公室,也能收到至關(guān)重要的構(gòu)建失敗提醒。

  即時消息提醒比起電子郵件,可以更多的與CI服務(wù)器進(jìn)行交互。作為一個溝通的中介,即時消息要比電子郵件更加的自然,它還可以進(jìn)行比 Subversion 提交信息還要多的交互。通過利用即時消息,如今的一些CI工具不僅僅可以發(fā)送提醒,還可以讓開發(fā)人員更輕松地與構(gòu)建服務(wù)器以及其他組員進(jìn)行交互與交流。

  當(dāng)然,即時消息不是僅有的另一種可用提醒方式。如果想讓大家注意到構(gòu)建信息的話,好采用一種能夠融入相應(yīng)企業(yè)文化的提醒機(jī)制。例如,一些公司使用社交網(wǎng) 絡(luò)的工具例如Twitter,作為一個有效的內(nèi)部交流渠道。對于這些組織而言,使用Twitter也可以算是一種有效的構(gòu)建提示方法了。

  保持構(gòu)建過程高效率

  持續(xù)集成環(huán)境的一個首要目標(biāo)是要保證開發(fā)過程的順利進(jìn)行,并且避免由集成問題帶來的障礙和開發(fā)延期。當(dāng)集成問題突然出現(xiàn)時,開發(fā)人員應(yīng)當(dāng)有義務(wù)盡快的去提交一些代碼來解決這個問題,以避免影響到其他開發(fā)人員。如果沒有持續(xù)集成環(huán)境,開發(fā)人員通常會在集成問題上卡住而找不到一個解決方案(“嘿,它在我的機(jī)器上能運(yùn)行啊!”)。

  想讓開發(fā)過程一直保持好的狀態(tài),那么團(tuán)隊成員(尤其是團(tuán)隊領(lǐng)頭人,流程專家等)需要能夠監(jiān)測構(gòu)建過程,這樣他們可以識別定位出日常生活里降低開發(fā)人員效率的問題。其中好的方法是去了解如何好地使用構(gòu)建感測。