国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何避免脆弱的代碼

移動(dòng)開(kāi)發(fā)
遺留代碼怎么處理?下次看情況改改就行?這樣只會(huì)讓你的代碼危險(xiǎn)越來(lái)越大!怎么辦?

[[165073]]

遺留代碼最常見(jiàn)的問(wèn)題就是脆弱性。團(tuán)隊(duì)如要修改脆弱的代碼庫(kù),必定伴隨著巨大的痛楚。在我們 ThoughtWorks 開(kāi)發(fā)產(chǎn)品的 10 年里,當(dāng)我們年復(fù)一年地盡量保持龐大代碼庫(kù)的延展性時(shí),學(xué)到了一些慘痛的教訓(xùn)。我想在本文分享我們從***挑戰(zhàn)中吸取的教訓(xùn)。聲明:我寫(xiě)下這些思考,不代表我們已經(jīng)搞定了所有問(wèn)題。我們?nèi)匀灰謸?dān)遺留代碼的痛苦,和其它團(tuán)隊(duì)一樣,我們每天都努力讓它變得更好一些。

更新所有東東,要一直更新下去

你應(yīng)該一直渴求更新依賴(lài)庫(kù)和框架。好吧,或許現(xiàn)在已成為共識(shí)。但是,10 年前很少有人這樣想。有些團(tuán)隊(duì)明白,升級(jí)是需要完成的、正確的工作,我只是懷疑,他們是否真地優(yōu)先去做了。它一直需要你認(rèn)真對(duì)待,不要拖到***,變成技術(shù)債務(wù)。原因如下:

  • 如果某項(xiàng)任務(wù)是痛點(diǎn),就要經(jīng)常去做。對(duì)于一直升級(jí)所存在的最明顯的理由之一,就在于升級(jí)會(huì)是艱難的。常常存在不可預(yù)期的、一系列被破壞的依賴(lài)。工作量通常無(wú)法知曉。經(jīng)常做,它就不再是問(wèn)題。但是,和簡(jiǎn)單的避免痛苦相比,還有更重要的原因。

  • 升級(jí)依賴(lài)項(xiàng)的另一個(gè)驅(qū)動(dòng)力,在于修復(fù)安全漏洞。現(xiàn)在和 10 年前開(kāi)發(fā)軟件,有一個(gè)***的不同,我們資源庫(kù)、框架和應(yīng)用程序的漏洞報(bào)告仿佛從未間斷過(guò)。修復(fù)漏洞,差不多總是涉及到升級(jí)某些依賴(lài)項(xiàng)。為了快速修復(fù)漏洞,升級(jí)必須容易操作。

  • 沒(méi)有定期升級(jí)操作的團(tuán)隊(duì),通常將其貼上技術(shù)債務(wù)的標(biāo)簽。盡管行業(yè)比 10 年前更樂(lè)意談起技術(shù)債務(wù),但是,說(shuō)服項(xiàng)目經(jīng)理償還技術(shù)債務(wù),仍然算得上非常艱難的對(duì)話(huà)。如果你的團(tuán)隊(duì)處于「一直升級(jí)所有東東的模式」,你就不用為了升級(jí)技術(shù)債務(wù)而展開(kāi)溝通。

關(guān)于單元測(cè)試

遺留代碼的主要痛點(diǎn)在于,做出修改需要花費(fèi)多長(zhǎng)時(shí)間。如果你打算讓代碼長(zhǎng)期運(yùn)行下去,就需要確保未來(lái)修改代碼的程序員感到完全地開(kāi)心。有一種處于優(yōu)勢(shì)的方法:極度快速、徹底的單元測(cè)試套件。

增加新功能、包括任何代碼重構(gòu),每個(gè)周期大致描述為:編寫(xiě)失敗的測(cè)試;寫(xiě)代碼;顯示綠色;搞定。如果你這樣做了,你就能一直執(zhí)行大量的單元測(cè)試,有時(shí)候是某一套針對(duì)性的測(cè)試、有時(shí)候是整個(gè)套件。如果測(cè)試不夠快,開(kāi)發(fā)周期就不會(huì)輕松。寫(xiě)代碼的體驗(yàn)不應(yīng)該是:做了一些修改,而運(yùn)行測(cè)試卻需要坐等 10 或 20 分鐘。太差勁了。

確保測(cè)試套件快速運(yùn)行,不只是與你的設(shè)計(jì)和代碼有關(guān)。誠(chéng)然,你可以做大量工作來(lái)加速測(cè)試,比如避免文件、數(shù)據(jù)庫(kù)、套接字、海量對(duì)象圖表生成等。但是還有另外的重要技巧,挑選有助于加速測(cè)試的框架和語(yǔ)言。如果你發(fā)現(xiàn)自己為了讓測(cè)試更快、而修改了框架,那么,你需要考慮不同的框架。是的,當(dāng)我正在開(kāi)發(fā)傳統(tǒng)的多頁(yè)應(yīng)用程序時(shí),下次就不可能用 Rails 開(kāi)發(fā)了。

還需要考慮應(yīng)用程序的大小。當(dāng)某個(gè)代碼庫(kù)處于一定規(guī)模時(shí),就需要規(guī)劃好切分方案。這也是讓你充分理解某塊代碼的唯一方法。找到分割項(xiàng)目的切入點(diǎn),這不同于學(xué)術(shù)上的工作,你需要投入大量時(shí)間折騰代碼、研究各種地方、再設(shè)計(jì)、重構(gòu)。一直讓快速的測(cè)試套件迅速地驗(yàn)證你的工作,將使這份工作輕松幾個(gè)數(shù)量級(jí)。

實(shí)際上,「幾個(gè)數(shù)量級(jí)」更像是夸張。如果你需要切分龐大的代碼庫(kù),并忍受著痛苦的、龜速的單元測(cè)試套件,嗯,你可能會(huì)被困住。我們正在痛苦地得到教訓(xùn)。因此,盡力確保單元測(cè)試要快,并且在開(kāi)發(fā)機(jī)器上以單一線(xiàn)程運(yùn)行。

「抽象分支」不應(yīng)該是常態(tài)

運(yùn)行時(shí)間長(zhǎng)的產(chǎn)品,經(jīng)歷了很多技術(shù)領(lǐng)導(dǎo)。某些類(lèi)型的技術(shù)領(lǐng)導(dǎo),剛一接手,就抱怨現(xiàn)有產(chǎn)品的不足,并馬上想開(kāi)發(fā)新的產(chǎn)品。這沒(méi)錯(cuò)。時(shí)髦的技術(shù)不總是糟糕的。對(duì)于長(zhǎng)時(shí)間存在的代碼庫(kù),它需要新的活力,產(chǎn)生足夠能量,淘汰不能勝任的地方。我想提兩個(gè)重要的點(diǎn)。

新接手的技術(shù)領(lǐng)導(dǎo),在和團(tuán)隊(duì)一起工作兩到三個(gè)月之前,不要輕易摒棄任何技術(shù)。有太多的情景需要理解。新接手的技術(shù)領(lǐng)導(dǎo)需要學(xué)會(huì)站在團(tuán)隊(duì)和代碼庫(kù)的角度考慮。團(tuán)隊(duì)和技術(shù)領(lǐng)導(dǎo)需要建立信任和節(jié)奏。短暫地停留是為了更好的決定。

利用抽象分支,是替換新技術(shù)的經(jīng)典方法(長(zhǎng)期分支的荒謬性之外):

  • 組件 X 前面放置一個(gè)抽象。

  • 組件 Y 做為 X 的替換品,被引入。

  • 抽象智能地路由到 X 或 Y。

  • X 逐步被廢棄掉。

  • X 被移除;或許抽象也被移除了。

有很多次,我都看不到這個(gè)過(guò)程能夠順利走完,因?yàn)橐瞥f組件*** 20% 的工作太難了。你簡(jiǎn)直想象不到,年復(fù)一年地用多種方式做這項(xiàng)工作有多么痛苦。它減緩了所有工作,還讓士氣消沉。抽象分支屬于優(yōu)秀的模式,他也是我做這種組件替換工作的唯一方式。但是,它需要團(tuán)隊(duì)的完全承諾,即,在既定時(shí)間內(nèi),淘汰舊組件。

技術(shù)債務(wù)會(huì)殺了你

僅僅因?yàn)槲覀冞@里過(guò)多地討論了技術(shù)債務(wù),并不能為償還技術(shù)債務(wù)提供任何擔(dān)保。有一點(diǎn)是肯定的,任由技術(shù)債務(wù)積壓下去,只會(huì)使其變得無(wú)法償還。「先放一放。我們先做其它緊急需求,它被記下來(lái)了,我們回頭再搞。」,這話(huà)很容易說(shuō)出口。同時(shí),它可能算得上明智決定。但是,那些所謂的緊急需求永遠(yuǎn)沒(méi)有結(jié)束的那一天。緊急清單只會(huì)越變?cè)介L(zhǎng)。

狀況會(huì)惡化下去。據(jù)我經(jīng)驗(yàn)看,當(dāng)技術(shù)債務(wù)積壓增長(zhǎng)過(guò)于頻繁時(shí),團(tuán)隊(duì)將趨向于放棄償還,團(tuán)隊(duì)感到失望,開(kāi)發(fā)人員不能達(dá)到流動(dòng),業(yè)務(wù)也獲取不到新的價(jià)值。關(guān)于如何避免不可逾越的技術(shù)債務(wù),我做過(guò)一些思考。

一個(gè)良好的開(kāi)發(fā)團(tuán)隊(duì),不會(huì)一而再、再而三地以技術(shù)債務(wù)為借口。當(dāng)團(tuán)隊(duì)意識(shí)到,同種技術(shù)債務(wù)重復(fù)出現(xiàn)時(shí),就必須向前推動(dòng),并很快將其融入到日常工作中去。

我的同事 Badri 建議,團(tuán)隊(duì)必須就共同承擔(dān)技術(shù)債務(wù)達(dá)成一致。任何人無(wú)權(quán)讓代碼庫(kù)變得更糟、而讓整個(gè)團(tuán)隊(duì)隨后為此買(mǎi)單。

更重要的是,技術(shù)領(lǐng)導(dǎo)和產(chǎn)品領(lǐng)導(dǎo)需要彼此信任。雙方都不應(yīng)該玩「我說(shuō)了算」的把戲。好的技術(shù)領(lǐng)導(dǎo)理解業(yè)務(wù)的優(yōu)先級(jí),好的產(chǎn)品經(jīng)理看重能夠交付的價(jià)值。雙方均需要探討風(fēng)險(xiǎn)、成本和收益。如果你無(wú)法交付,你的技術(shù)債務(wù)就轉(zhuǎn)變成了業(yè)務(wù)問(wèn)題,對(duì)每個(gè)人都沒(méi)有好處。

顯然,為了編寫(xiě)長(zhǎng)期存在的代碼,一個(gè)團(tuán)隊(duì)還有大量工作要做:為閱讀代碼的人寫(xiě)代碼,不要自作聰明,經(jīng)常想想你未來(lái)的同事。我樂(lè)于聽(tīng)到你的想法。

責(zé)任編輯:倪明 來(lái)源: 臘八粥
相關(guān)推薦

2014-01-22 09:45:40

2022-01-13 09:14:48

車(chē)聯(lián)網(wǎng)汽車(chē)智能

2021-06-30 08:00:00

代碼DI開(kāi)發(fā)

2020-01-03 08:34:18

pandas代碼開(kāi)發(fā)

2022-05-17 21:14:34

多云架構(gòu)身份識(shí)別

2023-06-21 10:09:50

2013-08-23 13:50:44

創(chuàng)業(yè)創(chuàng)業(yè)文化

2017-10-20 10:19:49

Kotlin語(yǔ)言陷阱

2023-07-25 16:47:17

Serverless架構(gòu)

2012-11-08 09:43:12

編程語(yǔ)言技術(shù)開(kāi)發(fā)代碼重構(gòu)

2019-03-29 15:38:33

2013-03-25 10:15:57

2021-03-01 15:52:14

開(kāi)源開(kāi)源軟件陷阱

2014-10-15 10:01:12

2024-07-11 11:42:09

2022-04-08 08:00:00

NFT數(shù)字資產(chǎn)騙局

2018-09-10 13:13:54

云計(jì)算公共云成本

2022-05-26 09:51:50

JavaScrip內(nèi)存泄漏

2010-01-12 09:22:19

云計(jì)算

2024-07-01 08:00:00

點(diǎn)贊
收藏

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

国产激情在线| 羞羞视频立即看| 亚洲伦理网站| 精品国产一区二区三区av性色| 丝袜国产免费观看| 欧美国产视频在线| 亚洲图片都市激情| 天堂成人国产精品一区| 国产精品12| 欧美在线观看天堂一区二区三区| 欧美亚洲视频在线看网址| 四虎影视精品永久在线观看| 亚洲美女www午夜| а√在线中文网新版地址在线| 欧美久久高跟鞋激| 都市激情在线视频| 欧美日韩在线免费| 三区在线观看| 日本高清不卡一区| 亚洲精品视频在线免费| 精品久久久久久中文字幕一区奶水| 午夜两性免费视频| 国产精品亲子伦对白| 国产wwwxx| 国产精品不卡一区| 精品少妇一区二区三区在线| av成人免费在线| 成年人视频观看| 久久久久久久久97黄色工厂| 欧美成人xxxxx| 国产日韩av一区| 2020中文字幕在线| 一区二区久久久| 满满都是荷尔蒙韩剧在线观看| 亚洲h在线观看| 成人全视频高清免费观看| 日韩欧美在线播放| 日韩精品黄色| 欧美本精品男人aⅴ天堂| mm视频在线视频| 国产一区二区三区视频在线观看 | 久久精品盗摄| 最近看过的日韩成人| 床上的激情91.| 久草在在线视频| 亚洲一二三四在线| eeuss影院在线播放| 日韩美女一区二区三区四区| 在线日本欧美| 国产99久久精品一区二区永久免费| 天天射—综合中文网| 日本欧美精品久久久| 99久久久免费精品国产一区二区| 情侣黄网站免费看| 亚洲v中文字幕| 黑人另类精品××××性爽| 日韩在线免费视频| 国产成人调教视频在线观看| 久久精品第九区免费观看| 成人午夜在线免费| 中文字幕在线观看| 日韩高清人体午夜| 亚洲日产av中文字幕| 久久久久网址| 国产精品丝袜黑色高跟| 国内av一区二区三区| 亚洲免费视频一区二区| 韩日一区二区三区| 一本色道久久99精品综合| 国产精品美日韩| 91在线中字| 欧美亚洲在线视频| 另类小说视频一区二区| 国产a级网站| 亚洲精品久久久久| 日本不卡电影| 国产激情在线看| 色综合久久综合| 成人在线视频www| 国产一区二区黄色| 中文字幕一区二区三区在线不卡| 天堂av最新在线| 国产脚交av在线一区二区| 国产在线视频精品一区| 在线观看你懂| 久久偷看各类女兵18女厕嘘嘘| 欧美日韩理论| 男人插曲女人视频免费| 亚洲国产日韩欧美综合久久| 欧美激情偷拍自拍| av网站在线观看不卡| 欧美精品v国产精品v日韩精品| 欧美性生活一级片| www.xxx麻豆| 精品少妇一区二区三区视频免付费 | 久久久五月婷婷| 岛国成人毛片| 国产精品久久久久久久久久久久久久| 国产福利一区二区三区| 三区四区电影在线观看| 国产精品精品国产| 国产亚洲成年网址在线观看| 手机在线观看av网站| 精品伦理一区二区三区| 婷婷综合另类小说色区| 另类春色校园亚洲| 男人亚洲天堂网| 原创国产精品91| 乱一区二区av| 亚洲七七久久综合桃花剧情介绍| 91久久精品国产91久久| 樱桃视频在线观看一区| 美女日韩一区| 精品国产一二三四区| 亚洲精品粉嫩美女一区| 九色在线视频蝌蚪| 色七七影院综合| 亚洲影院久久精品| 国产精一区二区三区| 97电影在线看视频| 97免费视频在线| 国产精品一品视频| sm久久捆绑调教精品一区| 日本不卡免费新一二三区| 欧美日韩成人综合| 狠狠色丁香婷婷综合| 岛国最新视频免费在线观看| 国产精品video| 国产精品看片你懂得| www一区二区三区| 97xxxxx| 欧美精品在线免费| 最新高清无码专区| 91一区二区| 久cao在线| 国产资源在线免费观看| 国产精品美女www| 欧美成人免费小视频| 特黄aaaaaaaaa毛片免费视频| 亚洲人线精品午夜| 欧美午夜宅男影院| 性感美女久久精品| 午夜亚洲福利老司机| 亚洲女人****多毛耸耸8| 中文字幕国产一区| 亚洲成人免费观看| 在线欧美小视频| 亚洲色图13p| 欧美激情在线狂野欧美精品| 久久国产精品 国产精品| 日韩亚洲欧美一区二区| eeuss影院www在线播放| 国产精品白浆| 久久机这里只有精品| 一本到不卡精品视频在线观看| 韩国精品久久久999| 男人j进女人j| 欧美一区免费视频| 国产精品一区二区av| 欧美黑人国产人伦爽爽爽| 亚洲欧美中文另类| 蜜臀久久99精品久久久无需会员 | 国产91一区| 欧美熟乱15p| 久久久久久久久丰满| 日韩二区三区四区| 国产精品天美传媒| 欧美日韩精品是欧美日韩精品| 亚洲欧洲日产国产网站| 欧美又大又硬又粗bbbbb| 成人xxxxx色| 成人小视频在线观看免费| 黑森林福利视频导航| 日韩av高清在线| 自拍视频在线看| 国产人妖ts一区二区| 日韩电影在线观看电影| 久久蜜桃av一区精品变态类天堂| 日本久久一区二区| 国产亚洲欧美一区在线观看| 国产一区二区91| 西西人体一区二区| 一区二区三区四区日韩| 黄色大片在线免费观看| 欧美黄色直播| 国产精品久久久久久久久粉嫩av | 欧美视频在线免费| 亚洲精品一区二区三区婷婷月| 国产精品国产三级国产aⅴ9色| 和岳每晚弄的高潮嗷嗷叫视频| 日韩毛片在线一区二区毛片| 男人亚洲天堂| 日韩成人午夜电影| 在线精品视频免费观看| 亚洲3p在线观看| 国产午夜伦鲁鲁| 久久av影院| 国产 欧美在线| 日韩精品www| 免费看啪啪网站|