老代碼,到底能不能動(dòng)

2023-10-28    分類(lèi): 網(wǎng)站建設(shè)

你入職一家新單位,被告知需要維護(hù)一個(gè)老產(chǎn)品,經(jīng)理找質(zhì)管給你開(kāi)通了SVN權(quán)限,告訴你遷出哪個(gè)分支,然后告訴你說(shuō),就在這個(gè)分支上改,添加一個(gè)新接口,以便支持H5 Video。

于是你開(kāi)始看代碼,云山霧罩,各種痛苦,完全搞不懂業(yè)務(wù)邏輯和代碼的關(guān)系,也鬧不明白這塊代碼為什么這么寫(xiě)那塊代碼是幾個(gè)意思。你去問(wèn)進(jìn)來(lái)5個(gè)多月還沒(méi)轉(zhuǎn)正的老同事,他告訴你他也不懂,讓你湊合著加個(gè)新接口實(shí)現(xiàn)了功能就行。加了新功能就行。

你去問(wèn)干了快一年的資格更老的同事,他叮囑你千萬(wàn)別動(dòng)里面的代碼,千萬(wàn)別管里面什么樣,就在外面包一層,先交付新功能,其它的有時(shí)間再說(shuō),里面的邏輯十年沒(méi)人動(dòng)過(guò)了,沒(méi)有一個(gè)人能說(shuō)清楚怎么回事,你要是改,一不留神就遍地狼煙。

你怎么辦?

正方觀點(diǎn):不能動(dòng)——“我還有老婆和孩子”

@Mangiacapra

動(dòng)完之后,會(huì)不會(huì)只剩下刪庫(kù)跑路這個(gè)結(jié)果了。

@李傅博

不動(dòng)才10個(gè)bug,動(dòng)完1000個(gè)bug。

@qqwenqqqi 

·理想的維護(hù)狀態(tài)

用適配器的思維進(jìn)行一點(diǎn)一點(diǎn)的重構(gòu),盡可能的熟悉業(yè)務(wù)邏輯,找出業(yè)務(wù)邏輯的缺陷,接著寫(xiě)文檔,干擦屁股的活兒(這是在時(shí)間有限,只維護(hù)這一項(xiàng)產(chǎn)品的時(shí)候)最后這個(gè)項(xiàng)目就可以隨意的揉捏了。

·普遍的狀態(tài)

當(dāng)然上面說(shuō)的情況是理想狀態(tài),但是一般老板和pm有時(shí)間預(yù)算的,在這種情況下,普遍只有先從經(jīng)理說(shuō)的分支哪兒入手,嘗試寫(xiě)H5 VIdeo code. 最后出來(lái)的結(jié)果有可能有bUG。只有bUG出現(xiàn)了從點(diǎn)到面去維護(hù)了,因?yàn)橄茸尞a(chǎn)品上線就是金錢(qián)。

·boss希望的狀態(tài)

1.如果是希望快速的開(kāi)發(fā)出來(lái)走第普遍狀態(tài)解決

2.如果是希望走產(chǎn)品質(zhì)量?jī)?yōu)先走理想狀態(tài)重構(gòu)解決

·閑談

從接手這個(gè)項(xiàng)目開(kāi)始,你會(huì)發(fā)現(xiàn)代碼不可控是多么的糾結(jié)和無(wú)奈,你在該基礎(chǔ)上開(kāi)發(fā)就很容易有bUG。所以接手這個(gè)項(xiàng)目的第一思維就是獲取代碼的控制權(quán)!從這個(gè)角度解釋就會(huì)發(fā)現(xiàn):代碼的易讀性多么的重要,要寫(xiě)通用的代碼,寫(xiě)規(guī)范的代碼,項(xiàng)目文檔對(duì)交接是多么的重要。你為公司擦屁股,雖然是吃力不討好的活兒,但這是對(duì)自己的負(fù)責(zé),對(duì)公司的負(fù)責(zé),對(duì)下一任程序員的負(fù)責(zé)。你不擦屁股,總有人擦屁股,優(yōu)質(zhì)的程序員普遍具有擦一切屁股的能力,還熱衷于擦屁股。

反方觀點(diǎn):文檔會(huì)過(guò)時(shí),代碼不會(huì)說(shuō)謊

@安曉輝,CSDN知名博主

一旦老代碼沒(méi)人能夠把握,這些作為資產(chǎn)的代碼實(shí)際上已經(jīng)丟了,不再有價(jià)值增長(zhǎng),原本的優(yōu)勢(shì)隨著同行們百舸爭(zhēng)流的追趕漸漸失去。這是對(duì)企業(yè)是一種損失。讀程序員其實(shí)也是一種損失。

自己不寫(xiě)文檔卻老抱怨別人的代碼沒(méi)文檔,而碰見(jiàn)了有文檔的代碼卻又往往棄文檔如敝履。業(yè)界的代碼和文檔,少見(jiàn)匹配的。我們只能接受這個(gè)現(xiàn)實(shí):代碼即文檔。

對(duì)維護(hù)老產(chǎn)品的程序員來(lái)講,弄明白產(chǎn)品設(shè)計(jì)邏輯和代碼實(shí)現(xiàn)邏輯是非常重要的,就只要如下兩個(gè)辦法:找到熟悉產(chǎn)品的前輩,讓他給你講講。如果你找了產(chǎn)品經(jīng)理,他只能告訴產(chǎn)品設(shè)計(jì)上如何如何。如果你找了程序員,他通常會(huì)說(shuō)就是這樣那樣,然后說(shuō)一句高深莫測(cè)又拉仇恨的話:看看代碼就明白了。自己啃代碼,啃代碼,啃代碼。

所以,也可能有在外圍包裝的辦法,比如你封裝一個(gè)本地的HTTp Server,用舊ApI拿到數(shù)據(jù)作為HTTp流轉(zhuǎn)發(fā)一下就能支持H5 Video標(biāo)簽了。也可能很多情況都存在折衷的替代辦法。

然而,能弄懂代碼是如何實(shí)現(xiàn)產(chǎn)品和業(yè)務(wù)的,還是有非常重要的好處——對(duì)程序員來(lái)講很重要的好處:文檔是會(huì)過(guò)時(shí)的,代碼是不會(huì)說(shuō)謊的,讀懂代碼,你就真真正正明白了業(yè)務(wù)是如何實(shí)現(xiàn)的。對(duì)于沒(méi)人敢動(dòng)而又核心的老代碼,你搞明白了,就占領(lǐng)了戰(zhàn)略要地,唯有掌握核心業(yè)務(wù)和代碼,才能彰顯自己的價(jià)值。

除此之外,讀代碼也是非常重要的學(xué)習(xí)途徑,尤其是經(jīng)歷過(guò)線上考驗(yàn)的代碼,必然尤其過(guò)人之處。在閱讀的過(guò)程中,我們可以學(xué)到很多東西,既可以學(xué)到業(yè)務(wù),也可以學(xué)到設(shè)計(jì)。只要有心,處處都是成長(zhǎng)的機(jī)會(huì)。最不濟(jì),也鍛煉了閱讀代碼的能力,庖丁解牛之技成了,也可以在將來(lái)以無(wú)刃入有間,發(fā)揮用武之地。

當(dāng)前標(biāo)題:老代碼,到底能不能動(dòng)
分享鏈接:http://www.bm7419.com/news31/291281.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站策劃網(wǎng)站維護(hù)、電子商務(wù)商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)