国产AV又长又大直播做爱视频,有声小说打包下载,旷世神医,怎样写网络小说,完美世界txt全集下载,欢乐颂小说结局是什么,旷世神医

新聞資訊

洞悉互聯(lián)網(wǎng)前沿資訊,探尋網(wǎng)站優(yōu)化規(guī)律。

持續(xù)繼承的好處與實(shí)踐

發(fā)表日期:2016-12-26 10:38:18   文章編輯:紅海小編   瀏覽次數(shù):0

持續(xù)集成(Continuous Integration),也就是我們經(jīng)常說(shuō)的 CI,是現(xiàn)代軟件開發(fā)技術(shù)的基礎(chǔ)。本文論述了當(dāng)前軟件開發(fā)過程中存在的問題,講解了持續(xù)集成、持續(xù)集成服務(wù)器的概念,最終探討了為什么我們需要持續(xù)集成來(lái)解決這些問題。

當(dāng)前軟件開發(fā)過程存在的問題

在沒有應(yīng)用持續(xù)集成之前,傳統(tǒng)的開發(fā)模式是這樣的:

這個(gè)過程中可能會(huì)出現(xiàn)如下問題:

1. Bug 總是在最后才發(fā)現(xiàn)

隨著軟件技術(shù)的發(fā)展,軟件規(guī)模也在擴(kuò)大,軟件需求越來(lái)越復(fù)雜,軟件已經(jīng)不能簡(jiǎn)單地通過劃分模塊的方式來(lái)開發(fā),往往需要在項(xiàng)目?jī)?nèi)部互相合作,模塊之間存在一定的依賴關(guān)系,那么早期就存在的 Bug 往往會(huì)在最后集成的時(shí)候才被發(fā)現(xiàn)。

2. 越到項(xiàng)目后期,問題越難解決

很多開發(fā)者需要在集成階段花費(fèi)大量的時(shí)間來(lái)尋找 Bug 的根源,加上軟件的復(fù)雜性,問題的根源很難定位。而且我們都清楚,間隔的時(shí)間越久,Bug 修復(fù)的成本越高,因?yàn)檫B開發(fā)人員自己都忘了當(dāng)初寫得是什么鬼代碼,從而不得不從頭閱讀代碼、理解代碼。

3. 軟件交付時(shí)機(jī)無(wú)法保障

正是因?yàn)槲覀儫o(wú)法及時(shí)修復(fù) Bug,或者是沒能在早期就修復(fù) Bug,從而令整個(gè)修復(fù) Bug 的周期拉長(zhǎng)了。不管怎么樣,我們不可能把明知存在 Bug 的軟件交付給客戶。

而且,大量沒有在前期預(yù)估到的工作量產(chǎn)生了——開發(fā)人員不得不花費(fèi)大把時(shí)間在查找 Bug 上;測(cè)試人員不斷的需要進(jìn)行回歸測(cè)試;項(xiàng)目經(jīng)理不得不疲命于該死的代碼的集成、部署這些重復(fù)性工作——最終導(dǎo)致整個(gè)項(xiàng)目的周期拉長(zhǎng),交付時(shí)間點(diǎn)往后拖。

4. 程序經(jīng)常需要變更

某些項(xiàng)目,程序會(huì)經(jīng)常需要變更,特別是敏捷開發(fā)的實(shí)踐者。由于產(chǎn)品經(jīng)理在與客戶交流過程中,往往實(shí)際的軟件就是最好的原型,所以軟件會(huì)被當(dāng)作原型作為跟客戶交流的工具。當(dāng)然,客戶最希望的當(dāng)然是客戶的想法能夠馬上反映到原型上,這會(huì)導(dǎo)致程序會(huì)經(jīng)常被修改的。那么也就意味著“分配 Bug -> 修改 Bug -> 集成代碼 -> 部署到測(cè)試服務(wù)器上 -> 集成測(cè)試”工作無(wú)形又爆增了。

5. 無(wú)效的等待變多

有可能開發(fā)在等集成其他人的模塊;測(cè)試人員在等待開發(fā)人員修復(fù) Bug;產(chǎn)品經(jīng)理在等待新版本上線好給客戶做演示;項(xiàng)目經(jīng)理在等待其他人提交代碼。不管怎么樣,等待意味低效。

6. 用戶的滿足度低

這里的用戶是廣義的,可以指最終的客戶,也可以是產(chǎn)品經(jīng)理、公司領(lǐng)導(dǎo)、測(cè)試人員,甚至可能是開發(fā)人員自己。你想想看,本來(lái)三個(gè)月做完的項(xiàng)目被拉長(zhǎng)到了九個(gè)月甚至一年,用戶能滿意嗎!產(chǎn)品經(jīng)理、公司領(lǐng)導(dǎo)經(jīng)常需要拿項(xiàng)目作為演示的原型,結(jié)果告訴我在演示前一刻發(fā)現(xiàn)還有很多 Bug 沒有解決,項(xiàng)目啟動(dòng)不了無(wú)法訪問,這叫人情何以堪。

持續(xù)集成、持續(xù)集成服務(wù)器的概念

那么好了,在上面論述的這些問題中,我們發(fā)現(xiàn)有些工作是無(wú)法避免的,比如測(cè)試工作、修改程序、集成工作、部署工作。但其實(shí)在整個(gè)工作流程上,是存在可以優(yōu)化的空間的,比如,集成測(cè)試的工作是否可以提前做?可否有自動(dòng)化的手段來(lái)代替測(cè)試、集成、部署工作?圍繞這些,軟件行業(yè)的大師們提出“持續(xù)集成”口號(hào)。

1. 什么是持續(xù)集成、持續(xù)集成服務(wù)器

在軟件工程中,持續(xù)集成(CI)是指將所有開發(fā)者工作副本每天多次合并到主干的做法。 Grady Booch 在1991年的 Booch method 中首次命名并提出了 CI 的概念,盡管在當(dāng)時(shí)他并不主張每天多次集成。而 XP(Extreme programming,極限編程)采用了 CI 的概念,并提倡每天不止一次集成。

而持續(xù)集成服務(wù)器就是能夠采用自動(dòng)化的手段,來(lái)解放人的雙手,實(shí)現(xiàn)項(xiàng)目持續(xù)集成的工具。與之配套的軟件有 TeamCity、Jenkins、Go 等。

2. 怎么樣才算是“持續(xù)”

對(duì)于一天需要集成多少次數(shù),并沒有一個(gè)明確的定義。一般就是按照自己項(xiàng)目的實(shí)際需要來(lái)設(shè)置一定的頻率,少則可能幾次,多則可能達(dá)幾十次??梢栽O(shè)置按照代碼的變更來(lái)觸發(fā)集成,或者設(shè)置一個(gè)固定時(shí)間周期來(lái)集成,也可以手工點(diǎn)擊集成的按鈕來(lái)“一鍵集成”。

3. 持續(xù)集成的工作流程

持續(xù)集成的好處

1. 解放了重復(fù)性勞動(dòng)

自動(dòng)化部署工作可以解放了集成、測(cè)試、部署等重復(fù)性勞動(dòng),而且機(jī)器集成的頻率明顯可以比手工的高很多。

2. 更快地修復(fù)問題

由于持續(xù)集成更早的獲取變更,更早的進(jìn)入測(cè)試,也就能更早的發(fā)現(xiàn)問題,解決問題的成本顯著下降。

3. 更快地交付成果

及早集成、及早測(cè)試減少了缺陷遺留到部署環(huán)節(jié)的機(jī)會(huì)。在某些情況下,更早地查找錯(cuò)誤還會(huì)減少解決錯(cuò)誤所需的工作量。

如果集成服務(wù)器對(duì)代碼進(jìn)行構(gòu)建過程中發(fā)現(xiàn)錯(cuò)誤,可以及時(shí)發(fā)送郵件或者短信提供給開發(fā)人員進(jìn)行修復(fù)。

如果集成服務(wù)器在部署環(huán)節(jié)發(fā)現(xiàn)當(dāng)前版本有問題不可用,集成服務(wù)器會(huì)將部署回退到上一個(gè)版本。這樣服務(wù)器上始終都會(huì)有一個(gè)可用的版本。

4. 減少手工的錯(cuò)誤

人與機(jī)器的一個(gè)最大的區(qū)別是,在重復(fù)性動(dòng)作上,人容易犯錯(cuò),而機(jī)器犯錯(cuò)的幾率幾乎為零。所以,當(dāng)我們搭建完成集成服務(wù)器后,以后的事就交給集成服務(wù)器來(lái)打理吧。

5. 減少了等待時(shí)間

持續(xù)集成縮短了從開發(fā)、集成、測(cè)試、部署各個(gè)環(huán)節(jié)的時(shí)間,從而也就縮短了中間可以出現(xiàn)的等待時(shí)間。持續(xù)集成,意味著開發(fā)、集成、測(cè)試、部署也得以持續(xù)。

6. 更高的產(chǎn)品質(zhì)量

集成服務(wù)器往往提供 Code review、代碼質(zhì)量檢測(cè)等功能。對(duì)代碼不規(guī)范或者有錯(cuò)誤的地方會(huì)進(jìn)行標(biāo)識(shí),也可以設(shè)置郵件、短信等進(jìn)行告警。而開發(fā)人員通過 Code review 也可以持續(xù)提高編程的能力。

持續(xù)集成的最佳實(shí)踐

1. 頻繁檢出代碼

為了讓你本地的副本和代碼庫(kù)中的版本最小差異化,建議頻繁檢出代碼。有時(shí)候代碼沖突無(wú)可避免,但最小差異化最容易解決。而且,越早發(fā)現(xiàn)的問題,解決成本也最低。

2. 頻繁提交代碼

這個(gè)與第1條的原理類似,頻繁提交代碼,可以讓其他人的檢出副本和代碼庫(kù)中的版本最小差異化。

3. 減少分支,回歸主干

雖然代碼管理工具都支持分支的概念,但應(yīng)盡量減少其使用。假設(shè)有多個(gè)分支并行,應(yīng)及早將變更集成到主干中,而不是同時(shí)維護(hù)軟件的多個(gè)版本。主干作為軟件開發(fā)的工作版本。

4. 使用自動(dòng)化構(gòu)建

可以使用 Maven、Ant 等來(lái)實(shí)現(xiàn)自動(dòng)化構(gòu)建,這些工具可以幫助你在構(gòu)建過程中實(shí)現(xiàn)自動(dòng)化測(cè)試。前提是你有寫單元測(cè)試用例,比如 JUnit 等。

5. 提交自測(cè)

在提交工作之前,每個(gè)程序員必須本地集成所有的代碼,做一個(gè)完整的構(gòu)建和運(yùn)行,并通過所有單元測(cè)試。這樣就減少了集成測(cè)試在集成服務(wù)器上構(gòu)建失敗的風(fēng)險(xiǎn)。

6. 當(dāng)前狀態(tài)對(duì)于每個(gè)人都可見

集成服務(wù)器在持續(xù)集成過程中發(fā)現(xiàn)問題,應(yīng)能發(fā)送告警給相關(guān)的干系人。同時(shí),也可以在墻上等醒目的位置設(shè)置一個(gè)大屏顯示器,將集成服務(wù)器的狀態(tài)實(shí)時(shí)展現(xiàn)在大屏上,方便提醒組員“趕緊回去解決問題”!

持續(xù)集成可能會(huì)面臨的挑戰(zhàn)

1. 團(tuán)隊(duì)人員思想上的抵觸

針對(duì)這個(gè)問題,可以通過設(shè)置一定的持續(xù)集成技術(shù)培訓(xùn)、宣講得到改觀。

2. 管理層的抵觸

針對(duì)這一點(diǎn),可以從開發(fā)人員的成本和持續(xù)集成的投入(軟硬件)的成本上兩者做下估算。

3. 生產(chǎn)環(huán)境的復(fù)雜

目前,這個(gè)是最麻煩的,還在研究中。初步設(shè)想是讓政務(wù)外網(wǎng)開辟一個(gè)白名單,給持續(xù)集成服務(wù)器設(shè)置一個(gè)單獨(dú)的通道。只是思路,未驗(yàn)證。

當(dāng)然,考慮到目前的工作的實(shí)際,可以先持續(xù)部署軟件到自己公司的演示服務(wù)器上,這樣,起碼先解決了客戶和產(chǎn)品經(jīng)理溝通所使用的原型問題。 畢竟,客戶真實(shí)使用的軟件在更新的頻率上可以適度的放寬。

一鍵分享到:
返回列表

News

行業(yè)資訊

提供網(wǎng)站建設(shè)相關(guān)資訊、互聯(lián)網(wǎng)行業(yè)資訊、網(wǎng)站設(shè)計(jì)知識(shí)、空間域名郵箱、網(wǎng)站解決方案、常見問題、簽約新聞等

做網(wǎng)站要有創(chuàng)新意識(shí)

2016-11-18 23:32:44

做網(wǎng)站要有創(chuàng)新意識(shí)

立異于軟件業(yè),就比方錢于社會(huì)人,立異不是全能的,沒有立異卻是萬(wàn)萬(wàn)不能的??墒橇愐蚕箦X相同,不是說(shuō)有就有,乃至不能說(shuō)跟自個(gè)努力有決議聯(lián)系。所以許多時(shí)分,媒體...

網(wǎng)站建設(shè)公司所面臨的困境

2016-11-18 23:36:31

網(wǎng)站建設(shè)公司所面臨的困境...

教學(xué)構(gòu)造單一   人才才能弱化   如今,我國(guó)軟件人才的培育首要依托規(guī)范院校的學(xué)歷教學(xué),集中在本科期間。據(jù)統(tǒng)計(jì),我國(guó)當(dāng)時(shí)軟件從業(yè)人員約有40萬(wàn)...

網(wǎng)站建設(shè)公司的明天

2016-11-18 23:37:58

網(wǎng)站建設(shè)公司的明天

在前不久的殺毒廠商降價(jià)熱潮后,有人提出這個(gè)疑問?國(guó)內(nèi)通用軟件廠商在將來(lái)的存活點(diǎn)終究在哪里?之所以用“存活點(diǎn)”這個(gè)詞匯來(lái)形容,是因?yàn)楦鴮?duì)于個(gè)人...

2017年網(wǎng)站建設(shè)人才需求增加

2016-11-18 23:39:36

2017年網(wǎng)站建設(shè)人才需求增加...

《復(fù)興軟件工業(yè)舉動(dòng)大綱》日前正式發(fā)動(dòng)。2002年9月18日,國(guó)務(wù)院辦公廳轉(zhuǎn)發(fā)了《復(fù)興軟件工業(yè)舉動(dòng)大綱(2002年至2005年)》(國(guó)辦發(fā)〔2002〕47號(hào))(以下簡(jiǎn)稱《舉動(dòng)大綱...