MM131美女爱做视频在线看_性强烈的欧美三级视频_男女性潮高清免费网站_日日摸日日碰夜夜爽歪歪

IT培訓(xùn)-高端面授IT培訓(xùn)機(jī)構(gòu)
云和教育:云和數(shù)據(jù)集團(tuán)高端IT職業(yè)教育品牌
  • 國(guó)家級(jí)
    全民數(shù)字素養(yǎng)與技能培訓(xùn)基地
  • 河南省
    第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
  • 鄭州市
    數(shù)字技能人才(碼農(nóng))培養(yǎng)評(píng)價(jià)聯(lián)盟

【分享】維護(hù)程序的那些樂(lè)趣

  • 發(fā)布時(shí)間:
    2014-12-17
  • 版權(quán)所有:
    云和教育
  • 分享:

很久以前,在我剛開始編寫程序,新手程序員通過(guò)編寫維護(hù)程序,以提高技能和累積經(jīng)驗(yàn)。只有老手們才寫新代碼。新手們從事調(diào)試和修正仍被公司所用的老代碼。我一直參與新項(xiàng)目的開發(fā),但是現(xiàn)在的我會(huì)專門地編寫維護(hù)程序。我參與過(guò)許多曾失敗的從零開始的“綠色”項(xiàng)目,我更傾向于軟件產(chǎn)品的調(diào)試、修正和增強(qiáng)工作。我喜歡和真正的用戶一起工作,而不是假設(shè)用戶樣例。我認(rèn)為,建立自信心,使用戶滿意我的工作,好過(guò)于去與人爭(zhēng)論軟件特性、規(guī)則說(shuō)明書、預(yù)算和進(jìn)度表等問(wèn)題。針對(duì)已有代碼,定義良好的任務(wù)優(yōu)先列表,好過(guò)于去想一些天馬行空的軟件規(guī)則說(shuō)明書。我喜歡按小時(shí)收費(fèi),而不是按照項(xiàng)目來(lái)收費(fèi),這樣用戶不會(huì)回避我的效率問(wèn)題。

我現(xiàn)在主要從事Web應(yīng)用領(lǐng)域,專門針對(duì)帶背后數(shù)據(jù)庫(kù)的網(wǎng)站。我很少去著手全新的項(xiàng)目開發(fā),但別人常常讓我去“搶救”被整壞的項(xiàng)目??蛻艉烷_發(fā)人員的決裂,常常使得產(chǎn)品代碼被棄絕了。開發(fā)人員對(duì)新產(chǎn)品投入了精力,對(duì)程序的bug和老客戶的擴(kuò)展要求置之不理。我是按小時(shí)付費(fèi)的,我拿到工作,因?yàn)槲覜](méi)有告訴客戶們他們需要拋棄所有的東西,從頭開始 — 而這點(diǎn)正是其他的顧問(wèn)所建議的。

通常,軟件使用的時(shí)間比我們當(dāng)初寫代碼時(shí)所想的時(shí)間要長(zhǎng)。直到最近,我為一個(gè)律師事務(wù)所的賬單系統(tǒng)做維護(hù)工作,該系統(tǒng)采用OMNIS 3,寫于1986年,不能在新于SE/30的Mac上運(yùn)行。依賴這些遺留系統(tǒng)客戶們會(huì)支付很多開銷,保持這些系統(tǒng)的運(yùn)行,因?yàn)樗麄儾荒苊爸L(fēng)險(xiǎn)采用新軟件產(chǎn)品,也無(wú)法支付新產(chǎn)品開發(fā)、數(shù)據(jù)遷移和人員培訓(xùn)等任務(wù)帶來(lái)的費(fèi)用。相對(duì)少許的維護(hù)費(fèi)用對(duì)于客戶們是可以接受的,但很多程序員們卻對(duì)維護(hù)工作嗤之以鼻,不管客戶是否適用,他們更喜歡開發(fā)全新的項(xiàng)目。

以下列舉了維護(hù)編程的一些好處:

學(xué)會(huì)調(diào)試

比起調(diào)試自己代碼,調(diào)試他人代碼要更認(rèn)真努力。必須一步一步追溯問(wèn)題;不能假定自己知道哪里錯(cuò)了,跳著去修改錯(cuò)誤。閱讀和調(diào)試他人代碼,會(huì)自己思考,代碼如何可行,如果不可行,而不是你知道代碼應(yīng)該可行。

學(xué)會(huì)編更好的程序

調(diào)試和擴(kuò)展好代碼比壞代碼更容易,這樣你會(huì)學(xué)會(huì)區(qū)分好代碼和壞代碼。學(xué)會(huì)解釋代碼,推理原作者的意圖。有經(jīng)驗(yàn)的程序員可以意識(shí)到好代碼為之好,壞代碼為之壞的原因。通過(guò)調(diào)試很多代碼后,方能這樣的分辨經(jīng)驗(yàn)。自己便會(huì)得出竅門,找到不熟悉代碼的根基,搜查到壞代碼的味道。

學(xué)會(huì)優(yōu)化

原程序員作者已經(jīng)做了早期優(yōu)化,因此你必須找到并處理真正影響效率和性能的瓶頸。全新開發(fā)項(xiàng)目的團(tuán)隊(duì)常常花費(fèi)很多時(shí)間和精力,擔(dān)心不切實(shí)際的性能問(wèn)題。已經(jīng)在運(yùn)行的系統(tǒng)具有真實(shí)存在的性能問(wèn)題。找到這些問(wèn)題,并解決他們,這個(gè)過(guò)程是十分有趣的,也是一項(xiàng)偉大的技能??蛻舫3W⒁獾?,而且也感激,程序員對(duì)應(yīng)用效率的提高。

學(xué)會(huì)新技能和新工具

你可能不會(huì)處理現(xiàn)行使用的語(yǔ)言,但你將會(huì)學(xué)習(xí),原本并不會(huì)去學(xué)習(xí)的,語(yǔ)言、函數(shù)庫(kù)、工具、以及產(chǎn)品環(huán)境等。也會(huì)更多參與到常用主流商業(yè)工具的工作中。全新考分項(xiàng)目常常因?yàn)檫x擇語(yǔ)言和使用工具的決定而停滯不前。你不必要做這些決定,銷售給客戶,或因其受責(zé)備。你需要花時(shí)間學(xué)習(xí)晦澀的專業(yè)工具或語(yǔ)言,但這些也是值得的。大公司自有的IT部分會(huì)做自身的維護(hù)工作,但常常也會(huì)租用具有專門知識(shí)和技能的承包商。

學(xué)習(xí)估值數(shù)據(jù)和數(shù)據(jù)庫(kù)

應(yīng)用系統(tǒng)仍采用,古老的數(shù)據(jù)處理教科書中,輸入->處理過(guò)程->輸出模型。在讀懂代碼之前,你必須理解數(shù)據(jù),知道數(shù)據(jù)通過(guò)系統(tǒng)的流程。幾乎所有的應(yīng)用都采用某種數(shù)據(jù)庫(kù),常常是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(如MySQL, PostgreSQL, Oracle, SQL Server等)。有經(jīng)驗(yàn)的程序員知道關(guān)系的概念,并知道操縱產(chǎn)品數(shù)據(jù)庫(kù)。不明白數(shù)據(jù)庫(kù)的殘廢程序員常常寫出很多壞代碼,去做MBMS本來(lái)該做的事情。我經(jīng)重構(gòu)很多頁(yè)緩慢且很多錯(cuò)誤的代碼,只需要用SQL來(lái)替換它們。

客戶會(huì)肯定你所做的

你修復(fù)的每個(gè)bug,以及對(duì)人們常用應(yīng)用的提高,真正的使用者會(huì)注意到這些變化,并給與即時(shí)的反饋。當(dāng)對(duì)全新的軟件開發(fā)時(shí),每個(gè)細(xì)則的改變,延遲,額外的花費(fèi)都會(huì)引起和客戶的沖突。當(dāng)你交付所存在的實(shí)際問(wèn)題,每件事會(huì)讓你的客戶高興。

具有更好的說(shuō)明書細(xì)則和清晰的限制

比起從頭開發(fā),代碼修復(fù)和增強(qiáng)是更細(xì)致,且定義更好的任務(wù)。現(xiàn)有的代碼和環(huán)境限制了你的選擇。你必須記住解決實(shí)際問(wèn)題。你和客戶一直認(rèn)同所處理的任務(wù),導(dǎo)致誤解的機(jī)會(huì)比較少。面對(duì)新客戶,我常常要求他們列出他們軟件的前五大痛處,然后我去修復(fù)這些問(wèn)題,并應(yīng)許他們?nèi)绻覜](méi)有解決,就不需要付錢。

更容易擺脫壞客戶

我們也需要面對(duì)我們不想合作的客戶。你和這樣的客戶有大開發(fā)項(xiàng)目的合同,很難從這個(gè)關(guān)系中出來(lái),因?yàn)闀r(shí)間和金錢的投入,客戶對(duì)新系統(tǒng)有很大的期待。而維護(hù)項(xiàng)目更短期,任務(wù)更細(xì)致,你可以有很多機(jī)會(huì)終止這樣的關(guān)系,不需要破壞合同,或者損失金錢。

天生快捷

修復(fù)bug和增強(qiáng)代碼讓你能快捷的工作,不需要銷售給客戶你的方法學(xué)。他們只想很快修復(fù)問(wèn)題,你能給出增量開發(fā)的版本,與新用戶協(xié)作得出即時(shí)反饋,處理具體細(xì)節(jié)任務(wù)。

學(xué)會(huì)業(yè)務(wù)

產(chǎn)品軟件反映了一些真實(shí)的業(yè)務(wù)需求。學(xué)習(xí)什么時(shí)候軟件可以服務(wù)于業(yè)業(yè),什么時(shí)候不能。和熟悉軟件的真正的股東一起工作,這迫使你學(xué)習(xí)業(yè)務(wù)。比起編寫新的程序語(yǔ)言,知道業(yè)務(wù)應(yīng)用將有助于提高你的職業(yè)生涯。

學(xué)習(xí)人際技巧

全新項(xiàng)目開發(fā)的程序員們主要是彼此協(xié)作。新系統(tǒng)不存在真正的用戶,你得到是用戶案例和股東管理。維護(hù)型程序員和真正的用戶大交道。這些人直接與軟件的應(yīng)用、體驗(yàn)、bug打交道,知道軟件那些方面不滿足實(shí)際使用需要。學(xué)會(huì)傾聽和交談,這些人沒(méi)有跟你一樣的假設(shè)和編程文化,但可以擴(kuò)展你的視角,使你走出程序員的外殼。

會(huì)得到隨后的業(yè)務(wù)和推薦

你認(rèn)為誰(shuí)會(huì)得到更多業(yè)務(wù)和推薦:偉大的汽車銷售人員,偉大的技工?比起開發(fā)系統(tǒng),人們更需要修復(fù)和增強(qiáng)自己的軟件。對(duì)你滿意的客戶會(huì)推薦你,因?yàn)樗麄兊呐笥鸦蛲率掷镆灿小捌啤避浖到y(tǒng)。

你的工作不會(huì)被外包

但可能最終你會(huì)維護(hù)你客戶的外包實(shí)驗(yàn)的結(jié)果。