中文原创av,日韩黄色在线视频,欧美日韩操,亚洲精品国产精品国自产网站按摩,欧美日韩国产一区二区在线观看,男人久久久,亚洲精品久久网白云av

專業(yè)信息系統(tǒng)項目管理師網(wǎng)站|培訓機構|服務商(2021信息系統(tǒng)項目管理師學習QQ群:89253946,客服QQ:800184589)

軟題庫 培訓課程
當前位置:信管網(wǎng) >> 信息系統(tǒng)項目管理師 >> 其它資料 >> 文章內容
軟件質量之路:日構建
來源:信管網(wǎng) 2011年11月22日 【所有評論 分享到微信

  日構建是一項非常基礎的軟件開發(fā)實踐,遺憾的是,并沒有多少組織真正意識到它的好處。通過本章的討論,你可以知道日構建對軟件開發(fā)的意義,了解日構建的基本情況以及如何著手進行日構建。

  什么是軟件開發(fā)的有效管理

  在一個全國性的銀行中,是什么保證復雜的資金清算的正確性的呢?每天,各個地方的網(wǎng)點在結束營業(yè)之前,需要保證賬目、資金、票據(jù)的平衡;這些網(wǎng)點的數(shù)據(jù)不斷的匯集,在每一個匯集點上都要保證賬目余額的平衡,最終完成一個銀行的一天的結算。天天如此,就像是一部設計精巧的機器一樣運作不息。不僅銀行是這樣,任何一個企業(yè)都是如此。一個小雜貨鋪的老板,也知道每天算算賬,看看今天是賺是賠。這些行為已經(jīng)成為了工作的一部分,甚至成為了一種習慣。

  軟件開發(fā)也是一樣的,必須找到一種方法,來衡量每天的工作,保證每天的工作能夠有效的持續(xù)下去,最終把軟件開發(fā)的過程變成一種內在的過程。這種方法就稱為日構建或是持續(xù)集成。

  為什么需要日構建

  日構建和持續(xù)集成是類似的,對開放源碼熟悉的人應該都知道Nightly Build。而持續(xù)集成這個詞來自XP方法,它的頻率可以比日構建更高,可以做到幾分鐘就進行一次集成,故而由此得名。在本文中,我們只討論日構建,而要將日構建轉換為持續(xù)集成是非常容易的。事實上,并沒有規(guī)定持續(xù)集成必須是以分鐘為單位進行的,如果你愿意,以一周為單位進行持續(xù)集成也是可行的。這樣區(qū)分的目的是為了更好的使用日構建或是持續(xù)集成技術:至少以天為單位,頻率越高,效果則越好。

  那么,什么是日構建呢?我們傳統(tǒng)開發(fā)軟件的流程一般是這樣,理解領域問題,然后分配任務,由不同的人負責不同的軟件部件,在開發(fā)完成之后,再把各人的部件整合起來,形成完整的軟件。這個思路看起來并沒有什么問題,但是在實踐中卻問題多多。

  首先,這種方式適合開發(fā)人員之間工作彼此沒有交集的情況,以前這種現(xiàn)象很常見,但是現(xiàn)在,隨著軟件規(guī)模的擴大、分工合作的加深,開發(fā)人員間的相互依賴程度越來越高,這種清晰的職責劃分已經(jīng)變得越來越難了。

  其次,在軟件集成時,往往會出現(xiàn)各種各樣的問題,可是卻很難發(fā)現(xiàn)到底問題在哪里?公說公有理,婆說婆有理。每個人的代碼都沒有問題,結合到一起就出現(xiàn)大量的問題。

  所以日構建就將平時難得一見的集成工作轉換成頻繁進行的一件工作,從而使得原先如同噩夢般的集成變成了一件簡單的工作。這也是很容易理解的,如果集成工作幾個月才進行一次,誰能夠記起幾個月前的細節(jié)呢?但是如果集成以天,甚至以分鐘為單位進行,排除bug就變成一件很容易的事情了。

  日構建范例

  現(xiàn)在的時間是下午的17:00,馬上就到日構建的時間了。團隊里四名程序員中的三位已經(jīng)將自己的源代碼和測試代碼提交到了一臺名為宙斯的機器上,這臺機器將負責對代碼進行日構建。在他們提交代碼之前,已經(jīng)通過了本機上的構建,并完成了測試。剩下的一位程序員似乎碰到了麻煩,他的代碼出現(xiàn)了一些問題,他現(xiàn)在需要編寫更多的測試來完善測試網(wǎng)??磥頃r間來不及了,他只能夠在明天再做提交了。由于他的代碼沒有和其他人產生依賴,所以遲些提交也沒有關系,不過他在下個工作日的時候必須仔細的將最新的源代碼檢出到本地,在版本控制工具的幫助下,這項工作是很簡單的。

  17:10,宙斯終于開始了構建的過程。他從代碼源中檢出最新代碼,然后開始編譯,構建,并執(zhí)行了所有的測試,從控制臺界面上,日構建的負責人(其中的一位程序員)似乎看到了有部分的測試沒有通過,他對剩下的人說,似乎有麻煩了。測試完成之后,將會從代碼中生成所有的API文檔,并進行代碼分析和測試覆蓋率分析,最新測試報告和各種其它的報告都將會發(fā)布到Web上。

  最后。完成構建的軟件和相關的資料已經(jīng)成功的發(fā)布了,時鐘指向17:18。"現(xiàn)在只是項目的早期,到了中后期,至少還需要20分鐘的時間",老鳥程序員告訴沒有經(jīng)驗的程序員,并讓大家去看看測試結果。一個程序員邊嘟囔,邊看log日志,"我在本機都已經(jīng)測試過了呀,怎么會有錯呢。"檢查結果發(fā)現(xiàn)是環(huán)境問題,配置文件被人改動了??磥?,集成過程中仍然少不了沖突的問題,只不過,這些問題可以被很快的發(fā)現(xiàn),并很快的得以解決。

  以上是一個典型的日構建過程,日構建的過程是完全自動化的,通過預先定義好的指令,機器將按照指令順序執(zhí)行完所有的構建步驟。日構建中涉及的步驟是可選的。

  日構建的價值

  可能有些人認為日構建過于浪費時間,但是實際上,比起最后除錯的成本來說,日構建成本是微不足道的。當然,在企業(yè)中建立日構建制度確實需要花費不少的時間,但從長遠來看,這絕對是值得的。

  從表面上看,日構建能夠減少最終的排錯成本,但這僅僅是日構建最基本的價值。實際上,日構建更為關鍵的作用是能夠引入日構建的制度。這是什么意思呢?日構建的思路將會為軟件企業(yè)的開發(fā)流程帶來變化:開發(fā)人員將會在日構建的制度下更加頻繁的協(xié)作,開發(fā)進度一目了然,軟件的質量也會更加的穩(wěn)定。

  軟件開發(fā)本身就是一項強調溝通和協(xié)作的活動。但是在日常的活動中,常常出現(xiàn)阻礙溝通的情況,例如需要溝通的雙方不在同一個地理位置、噪聲、溝通雙方的意愿等等。因此在軟件管理中需要提供一種方法,來鼓勵人們進行溝通。日構建就是其中的一種方法(但它并不是唯一的方法)。每一次的構建將會涉及到團隊中的所有成員,因此溝通是少不了的,在日構建實踐的驅動下,每位開發(fā)人員都朝著最終的目的-"成功的構建"努力。

  在Alistair Cockburn的敏捷軟件開發(fā)的第三章中,詳細的闡述了團隊溝通和協(xié)作中的相關問題。例如溝通的實質,影響溝通的各種因素,以及如何克服他們。最后,他還論述了如何促進團隊的溝通,來打造一支成功的團隊。

  在日構建的驅動下,項目的進度將會變得非常的明顯。每一天的構建結果將會通過某個渠道發(fā)布出來,團隊和團隊的老板可以看到軟件現(xiàn)在的樣子,項目的完成情況,出現(xiàn)的問題等等。這些信息構成了軟件開發(fā)的基本信息。不但可以清晰地描述出項目進度,也為管理人員安排計劃提供了基礎數(shù)據(jù)的支持。有了基本的量化數(shù)據(jù),軟件開發(fā)才不是靠拍腦袋出成果的。

  日構建的最后一個價值是提供了整合性。目前軟件開發(fā)中并沒有一種統(tǒng)一的管理軟件,未來似乎也很難做到,因為不同的軟件組織差異很大。在開發(fā)過程中,一些有價值的實踐被加入、集成到日構建的過程中,在日構建的推動下,這些優(yōu)秀實踐很容易成為開發(fā)過程的一部分。在文章倡導的另一個優(yōu)秀實踐-測試驅動開發(fā)實踐,就很容易集成到日構建中來。事實上,軟件測試是非常重要的,它已經(jīng)成為日構建成功的判別因素。

  選擇日構建還是持續(xù)集成

  雖然日構建和持續(xù)集成的本質是相同的,但是他們在集成的頻率方面的差異也導致了一些管理上的差異:

  首先,日構建樹立了一個明確的以工作日為單位的小目標,團隊的目的就是為了使代碼能夠通過每天的構建。開發(fā)人員在明確的目標的指導下,往往能夠發(fā)揮出很高的效率。持續(xù)集成則將這個頻率變得更小,只要你的代碼提交到代碼庫中,立刻就會檢驗你的成果,如果有問題,你必須立刻排除,否則,要么集成的過程無法繼續(xù),要么出錯的開發(fā)人員的信箱被集成過程中的警告信息所填滿。這種做法對團隊的要求要更高一些。對于剛剛開始接觸日構建的團隊來說,可能會手忙腳亂。

  其次,日構建有一條非常明確的分界線,開發(fā)工作要么是完成,要么是沒有完成,不存在第三種狀態(tài)。

  日構建的基礎實踐

  日構建的基礎包括三個實踐:自動構建、統(tǒng)一代碼源和集成測試。

  ● 自動構建

  自動構建的思路是通過腳本語言,而不是通過在IDE環(huán)境中點擊構建按鈕來完成項目的構建過程。日構建需要不斷的進行集成的工作,如果手工來完成這項工作,既費時,效果又不好。所以更聰明的做法是把這件工作給自動化。在早期的Unix環(huán)境中,都是采用Make編寫相應的腳本來完成構建的過程。隨著先進的IDE 環(huán)境的發(fā)展,慢慢的人們就不愿意再編寫Make腳本了??墒乾F(xiàn)在,為了自動構建的目標,我們需要回歸到手工編寫Make腳本的歷史上去。應該說,IDE環(huán)境中的構建方式側重于個人開發(fā),而自動構建則側重于團隊開發(fā)

  自動構建目標就是通過一個簡單的命令就能夠全部的構建過程。

[1]   [2]   
掃碼關注公眾號

溫馨提示:因考試政策、內容不斷變化與調整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!

信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。

信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。

相關內容

發(fā)表評論  查看完整評論  

推薦文章