成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序員,為什么千萬不要重寫代碼?

新聞
 程序員都有一顆工程師的心,所以當(dāng)他們到一片新的場地想做的第一件事就是,將舊的一切推倒重來。是的,他們決不會(huì)滿足于簡單的增量勞動(dòng)。

 程序員都有一顆工程師的心,所以當(dāng)他們到一片新的場地想做的第一件事就是,將舊的一切推倒重來。是的,他們決不會(huì)滿足于簡單的增量勞動(dòng)。

[[281707]]

或許這種微妙的心理定位可以解釋:為什么程序員進(jìn)入新項(xiàng)目組后寧愿丟掉舊代碼重新寫,也不愿意修修補(bǔ)補(bǔ)。他們認(rèn)為舊代碼簡直一團(tuán)糟。

但是,事實(shí)上真是這樣嗎?你之所以認(rèn)為舊代碼一團(tuán)糟,其實(shí)是由編程的一個(gè)基本定律決定的,那就是:寫代碼容易,讀代碼難。

為什么你覺得舊代碼異常混亂?因?yàn)樽x代碼更難。

這大概就是代碼Reuse難以實(shí)現(xiàn)的原因。 這就是你組里的每個(gè)人都喜歡用不同的功能將分割的字符串轉(zhuǎn)換成一個(gè)數(shù)組。比起猜測舊的功能是怎樣實(shí)現(xiàn)的,重新寫一個(gè)自己的功能要簡單和有趣多了。

作為這個(gè)公理的推論,你可以問問身邊的程序員他們正在奮戰(zhàn)的代碼怎么樣?「簡直是一塌糊涂!」他們肯定會(huì)這樣說。「我簡直想推倒重來!」

為什么認(rèn)為代碼這么糟糕呢?「額,看看這個(gè)功能,竟然有兩頁長!完全不知道這些東西為什么在這里!完全不知道這些API是干什么的。」他們會(huì)這樣回答你。

曾經(jīng),Borland的創(chuàng)始人 Philippe Kahn 當(dāng)初就是向記者們吹噓:Quattro Pro會(huì)比Microsoft Excel要好用得多,因?yàn)樗菑念^開始編寫的,全部都是新的源代碼!

但是,認(rèn)為新代碼比舊代碼好簡直就是荒謬。舊代碼是已經(jīng)運(yùn)行過的,測試過的。無數(shù)的bug在被發(fā)現(xiàn)前都上線運(yùn)行過,發(fā)現(xiàn)之后程序員們可能在花了好些日子才修復(fù)了這些bug。這種修復(fù)可能是一行代碼,也可能是幾個(gè)字符,無數(shù)的時(shí)間和精力都花在了這些bug修復(fù)上。

當(dāng)你決定拋棄這些舊代碼從零開始的時(shí)候,你也丟掉全部前任努力的結(jié)果。

新代碼一定比舊代碼好?NO,重寫可能會(huì)帶來更大的風(fēng)險(xiǎn)。

對技術(shù)領(lǐng)導(dǎo)者來說,重寫項(xiàng)目的代碼也是一個(gè)異常艱難的決定。因?yàn)閺墓緦用嬲f,重現(xiàn)代碼甚至?xí){產(chǎn)品的市場競爭力。一旦決定重寫代碼,那么與競品相比,你可能落后了2~3年——在軟件行業(yè),這時(shí)間可夠長的。

你理想中的新代碼會(huì)帶來產(chǎn)品功能的提升▼

程序員,為什么千萬不要重寫代碼?

但事實(shí)上,即便重寫的新代碼可以實(shí)現(xiàn)舊代碼的所有功能和需求,但是為產(chǎn)品帶來的市場競爭力只有邊際提升。因?yàn)橹貙懹玫男录夹g(shù)、新語言、新框架并沒有給產(chǎn)品帶來質(zhì)的飛躍。

更不用說在重寫的漫長過程中可能會(huì)遇到一些意外情況,比如:

1、缺錢:資金鏈的斷裂

程序員,為什么千萬不要重寫代碼?

2、缺人:核心程序員離職

最終導(dǎo)致效果不佳:達(dá)不到原產(chǎn)品應(yīng)有的所有功能和需求,白白浪費(fèi)了時(shí)間和金錢,也丟掉了市場競爭力。

程序員,為什么千萬不要重寫代碼?

所以重寫代碼意味著,你在把自己置身于非常危險(xiǎn)的境地,可能幾年后你也寫不出比以前更好的代碼。你只是花了一大筆錢把已經(jīng)存在的代碼又寫了一遍。

當(dāng)你覺得眼前的舊代碼很爛時(shí),該怎么辦?

你覺得舊代碼寫的很爛,那又怎樣呢?它們已經(jīng)上線,已經(jīng)在實(shí)際運(yùn)行中經(jīng)受住了考驗(yàn)。所以當(dāng)你發(fā)現(xiàn)前任留下的代碼亂七八糟的時(shí)候,不妨冷靜下來,從以下三個(gè)方面入手理解代碼、改善代碼:

1、代碼的結(jié)構(gòu)有問題

如果一段網(wǎng)絡(luò)代碼突然彈出了自己的對話框,應(yīng)該是UI代碼需要被處理。這些問題可以被解決掉,你要一次次小心地移動(dòng)代碼,重構(gòu),改變接口。還需要一位細(xì)心的工程師立馬仔細(xì)地檢查這些改變是否有問題,從而不打擾到其他人。事實(shí)上,甚至比較大的結(jié)構(gòu)變化也可以不扔掉代碼來完成。

大牛程序員Joel Spolsky回憶說,曾經(jīng)在某個(gè)項(xiàng)目中,他和他的團(tuán)隊(duì)花了好幾個(gè)月重新架構(gòu)在一點(diǎn)上:把代碼動(dòng)來動(dòng)去、清理、創(chuàng)建有意義的基類,并創(chuàng)建了模塊之間的完美接口。但是他們始終非常小心翼翼,并沒有產(chǎn)生新的bug、也沒有丟掉任何舊代碼。

2、代碼的效率不高

曾經(jīng),Netscape的渲染代碼被傳非常緩慢。但事實(shí)上,這只會(huì)影響該項(xiàng)目的一小部分,這部分是你可以優(yōu)化甚至重寫的。你完全不必重寫全部代碼。優(yōu)化速度的1%工作量,會(huì)讓你獲得99%的爆炸性提高。

3、代碼寫得很丑

有些代碼真的寫的很丑,比如Joel曾參與一個(gè)項(xiàng)目,開始用下劃線做開始的成員變量約定,但后來改用更標(biāo)準(zhǔn)的「M_」。所以一半的功能用「_」開始,一半用「M」開始,這看起來真的很丑陋。但這個(gè)問題5分鐘就能解決,而不用從頭開始寫全部的代碼。

最后,你要記住,從頭開始再寫一遍并不意味著你會(huì)寫出比以前更好的代碼。因?yàn)槟銢]有參與到上一個(gè)版本的創(chuàng)建,所以你其實(shí)根本就不算有經(jīng)驗(yàn)。一旦你準(zhǔn)備推倒重寫,你可能會(huì)再犯一遍版本一犯過的錯(cuò),甚至?xí)a(chǎn)生更多的新問題。

面對糟糕的舊代碼,Keep Calm & Carry On !

在大型商業(yè)項(xiàng)目中,推倒重來是非常危險(xiǎn)的行為。當(dāng)然,如果你是在做實(shí)驗(yàn),想到新算法可以隨時(shí)重寫。

如果你跳槽、或剛接手一個(gè)新項(xiàng)目,面對看上去異常混亂的舊代碼,請冷靜下來,忍住推倒重寫的沖動(dòng),想想上面這些經(jīng)驗(yàn)之談。

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2015-07-28 10:28:54

程序員代碼

2018-05-07 15:59:39

代碼程序員重寫

2015-07-27 15:27:11

程序員重寫代碼

2011-12-20 09:01:25

.NET

2019-08-08 17:58:00

七夕程序員戀愛

2015-06-30 08:31:59

舊代碼重寫

2011-05-10 09:29:30

代碼重寫

2014-09-01 09:50:58

程序員

2015-11-23 17:27:19

程序員寫代碼

2012-02-21 09:22:45

2015-09-24 09:04:36

程序員

2013-10-29 10:24:31

程序員漫畫

2011-08-11 14:52:59

2015-06-05 14:15:13

程序員難升職

2011-09-18 09:42:08

程序員

2014-08-15 11:07:09

程序員

2016-03-15 08:51:12

程序員生活怪異

2012-09-06 10:30:58

2011-11-02 09:57:28

程序員

2015-09-15 09:08:58

前端程序員高薪
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 色婷婷精品国产一区二区三区 | eeuss国产一区二区三区四区 | 一级片免费在线观看 | 黄色大片毛片 | 国产精品久久久久久久久久妞妞 | 国产精品国产成人国产三级 | 午夜免费观看 | 台湾佬久久 | 亚洲iv一区二区三区 | 高清不卡毛片 | 男人的天堂中文字幕 | 羞羞视频一区二区 | 中文字字幕在线中文乱码范文 | 精品免费视频一区二区 | av午夜激情 | 成人免费视频播放 | 狠狠操狠狠 | 盗摄精品av一区二区三区 | 自拍偷拍亚洲一区 | 久久久精彩视频 | 精品乱码一区二区三四区 | 亚洲欧美在线观看 | 精品国产免费一区二区三区五区 | 国产天堂 | 国产精品资源在线 | 日韩成人在线播放 | 日韩高清www| 中文字幕视频在线看 | 国产精品一区二区福利视频 | 国产在线精品免费 | 国产精品精品久久久 | 日韩免费视频 | 日本午夜视频 | 欧美一级毛片在线播放 | 国产美女精品视频免费观看 | 欧美激情国产日韩精品一区18 | 91影院在线观看 | 久草.com| 91麻豆产精品久久久久久 | 国产精品一区二区av | 网站黄色在线免费观看 |