偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

持續(xù)更新就是給軟件項(xiàng)目的醫(yī)療保險(xiǎn)

開發(fā) 項(xiàng)目管理
想讓你的房子整潔舒適,你必須每周打掃。隨著時(shí)間的流逝,有些東西會出問題,你必須修理它或換新的。但大多時(shí)候你需要做的只是簡單的給門或窗刷一道漆就行了。

其實(shí)軟件很像房子。

想讓你的房子整潔舒適,你必須每周打掃。隨著時(shí)間的流逝,有些東西會出問題,你必須修理它或換新的。但大多時(shí)候你需要做的只是簡單的給門或窗刷一道漆就行了。

如果房子料理的好,人們就會喜歡住在里面。

[[110208]]

但想象一下,你現(xiàn)在要離開這個(gè)房子。剛開始,這個(gè)房子還會保持不錯(cuò)的外觀,室內(nèi)一切正常??墒?,一旦不再有人打掃地板或清理垃圾,房子就開始落灰積沉。一段時(shí)間后有些東西開始出問題。起初只是一些小的、不重要的東西出問題,但有一天一場暴風(fēng)襲擊了它,毀壞了很多東西。

[[110209]]

如果這些毀壞的東西沒有人來修理,房子就會持續(xù)破敗。

[[110210]]

一段時(shí)間后,房子變得破敗不堪,沒有人再愿意去哪里。人們會告訴你,與其去修好它,不如蓋個(gè)新的。

對任何軟件產(chǎn)品來說,道理是一樣的。

假設(shè)一個(gè)項(xiàng)目由你們7個(gè)人的團(tuán)隊(duì)來開發(fā)。每周你們會往里面增加新功能或修改bug。隨著項(xiàng)目的變大,你們會做一些重構(gòu)來保持軟件架構(gòu)的健康。你們會做一些遷移工作。時(shí)不時(shí)的升級軟件包來修補(bǔ)bug、安全漏洞和新功能。

之后,開發(fā)工作突然停止了。也許是上級的某個(gè)人決定不再往這個(gè)項(xiàng)目上投入更多的資金。決策者說:“這個(gè)軟件運(yùn)行的很好。我們只需要它保持這樣,我們不會再花錢來添加新功能。”

于是,你們這個(gè)團(tuán)隊(duì)被分配了其它任務(wù),這個(gè)項(xiàng)目變成了沒人照料的項(xiàng)目。系統(tǒng)目前還是正常運(yùn)行,每天都在給現(xiàn)實(shí)生活中的人們提供著服務(wù)。

幾年后,突然里面的支付系統(tǒng)出現(xiàn)異常。發(fā)生了什么?多少年都沒有人碰過這些代碼了。它怎么會突然的就不能用了呢?怎么可能?

無人照料,一場風(fēng)暴來臨了…

你需要知道,如今的軟件不再是一個(gè)自我封閉的世界。基本上所有的軟件都會和外部世界進(jìn)行交互。軟件要依賴操作系統(tǒng),硬件,很可能還會有個(gè)數(shù)據(jù)庫或其它后臺服務(wù)。甚至還依賴一些外部API。它們?nèi)渴莿討B(tài)的,不停的在變化。所以,你的軟件也需要跟著變化,這樣才能保持正常運(yùn)行。

在我們的這個(gè)例子中,是因?yàn)闅W盟通過了一個(gè)新協(xié)議來統(tǒng)一貨幣。這導(dǎo)致老的支付API不再受支持。

這看起來不像是個(gè)大問題。我們的上級決策者決定招聘一個(gè)Ruby程序員來解決這個(gè)問題。這是一個(gè)Ruby on Rails + MySQL項(xiàng)目。很普通。Ruby程序員很快就招到了,而且估計(jì)出大概一兩天就能解決問題。

然后,Ruby程序員開始查看項(xiàng)目代碼,發(fā)現(xiàn)這是一個(gè)很老的項(xiàng)目,使用的是Rails 2.x,不是Rails 3.x或4.x。不,比當(dāng)前的版本低兩個(gè)大版本號。他從來沒有用這么老的Rails版本開發(fā)過。

而接著的另一個(gè)讓他驚奇的事情是,MySQL是4.0版的,不是5.0或5.5。不,低一個(gè)大版本號!項(xiàng)目中的MySQL驅(qū)動gem使用的是一個(gè)本地(native)擴(kuò)展,無法在他的開發(fā)機(jī)上編譯,因?yàn)樗膅cc太新了。他必須降級gcc編譯器版本,才能安裝老的數(shù)據(jù)庫驅(qū)動。

我只打算講到這里。估計(jì)你已經(jīng)知道我想表達(dá)的是什么了。

因?yàn)檫@個(gè)項(xiàng)目多年無人維護(hù),導(dǎo)致現(xiàn)在即使一個(gè)很小的改動也變得異常痛苦。一個(gè)根本用不了一天的小bug修改,現(xiàn)在用去了一周時(shí)間。而且這個(gè)Ruby程序員非常不喜歡他現(xiàn)在干的活兒。其他程序員都可以使用Rails4.x里像“Turbolinks”這樣有趣的功能,而他還在跟這些老破爛打交道。他寧愿建議扔掉這個(gè)項(xiàng)目,利用現(xiàn)在的***技術(shù)重新開發(fā)一個(gè)。

教訓(xùn)是清楚的。如果你離開你的房子幾年之久,你應(yīng)該請一位家政每周清掃一次,而在軟件開發(fā)世界里,這意味著你每周都應(yīng)該花一點(diǎn)時(shí)間檢查系統(tǒng)并更新相關(guān)依賴。

很多時(shí)候都是沒有更新可用,外部世界沒有任何變化。這種情況下,5分鐘你就能維護(hù)完。

很多時(shí)候你會發(fā)現(xiàn)軟件包出現(xiàn)了一個(gè)新的補(bǔ)丁或小版本升級。這時(shí),你必須進(jìn)行升級,看看測試是否仍然能通過,系統(tǒng)是否能正常運(yùn)行。這種事情通常會花20分鐘,完全值得投入,因?yàn)檫@些升級會修補(bǔ)bug,彌補(bǔ)安全漏洞,帶來新功能特征。有些還會帶來內(nèi)存和速度的優(yōu)化。

一般每過幾個(gè)月,你依賴的數(shù)據(jù)庫或API等軟件包都會有一個(gè)大版本號的升級。替換他們可能會花數(shù)小時(shí),甚至數(shù)天。但這是值得的,因?yàn)檫@些升級會讓你的軟件保持***技術(shù),這是用來吸引有天才的程序員***的途徑,他們都是喜歡***的技術(shù),而不是一堆老代碼。有時(shí)候這些更新是必須的,如果不更新,你的應(yīng)用就無法運(yùn)行。

持續(xù)更新是為了讓軟件常年保持生命力,健康和新鮮血液。這能保證即使有業(yè)務(wù)邏輯上重大修改也能在合理的預(yù)算內(nèi)、可以接受的時(shí)間里完成。持續(xù)更新就是你的軟件項(xiàng)目的醫(yī)療保險(xiǎn)。

英文原文:Why your software project will slowly die without continuous updating

譯文鏈接:http://www.vaikan.com/why-your-software-project-will-slowly-die-without-continuous-updating/

責(zé)任編輯:林師授 來源: 外刊IT評論 編譯
相關(guān)推薦

2022-11-09 06:38:52

2015-05-22 16:41:23

2022-12-08 12:27:08

系統(tǒng)管理

2015-02-09 09:58:43

2015-07-30 11:23:18

2010-07-08 16:29:57

網(wǎng)絡(luò)產(chǎn)品醫(yī)療保險(xiǎn)思科

2022-06-30 20:47:58

區(qū)塊鏈

2015-03-18 13:48:13

2013-12-13 14:37:22

戴爾

2018-09-16 15:50:48

區(qū)塊鏈醫(yī)療健康數(shù)據(jù)

2015-02-10 14:44:55

2023-03-23 11:56:01

開源項(xiàng)目關(guān)聯(lián)模型

2015-02-06 15:19:06

2012-01-16 09:21:12

虛擬化桌面虛擬化VMware

2015-03-12 09:32:42

2021-07-26 05:44:23

數(shù)據(jù)泄露漏洞信息安全

2018-03-18 15:34:04

2011-01-20 10:20:35

ibmdwTwitter

2011-08-25 09:03:40

2012-11-29 09:49:17

軟件項(xiàng)目項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號