成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于前端的技術(shù)債務(wù)

546669204 / 2204人閱讀

摘要:最近一段時(shí)間,經(jīng)??吹郊夹g(shù)債務(wù)相關(guān)文章,最近也是參與了技術(shù)債務(wù)的清理。但是本文的背景是在一些大型的前端項(xiàng)目中技術(shù)債務(wù)的產(chǎn)生隨著前端復(fù)雜度的增加,技術(shù)債務(wù)就開始慢慢的在浮現(xiàn)出來。

最近一段時(shí)間,經(jīng)常看到技術(shù)債務(wù)相關(guān)文章,最近也是參與了技術(shù)債務(wù)的清理。所以從參與者的角度介紹下遇到債務(wù)問題和對于技術(shù)債務(wù)的理解

其實(shí)在于前端領(lǐng)域,技術(shù)債務(wù)的相對較少,因?yàn)榍岸擞幸粋€(gè)特點(diǎn)就是隨著功能和設(shè)計(jì)的升級,相對容易重構(gòu)。

但是本文的背景是在一些大型的前端項(xiàng)目中

技術(shù)債務(wù)的產(chǎn)生

隨著前端復(fù)雜度的增加,技術(shù)債務(wù)就開始慢慢的在浮現(xiàn)出來。特別是系統(tǒng)級別的單頁面應(yīng)用,功能不斷的疊加,技術(shù)不斷的更新,架構(gòu)不斷的升級,技術(shù)債務(wù)就暴露出來了。

舉一個(gè)例子(如有雷同,表示慰問):
最開始嘗試mvc時(shí),使用了backbone開發(fā)單頁面,然后一年后,發(fā)現(xiàn)angularjs特別火,而且調(diào)研發(fā)現(xiàn)這種mvvm模式更加提高效率,這時(shí)項(xiàng)目中一些新的模塊開始都用上了angularjs,然后隨著時(shí)間的推移,發(fā)現(xiàn)angularjs存在性能瓶頸,這時(shí)發(fā)現(xiàn)reactjs的虛擬dom和單向數(shù)據(jù)流很好,然后繼續(xù)在新模塊中引入。然后某一天,回頭一看。。。WTF。。。發(fā)現(xiàn)架構(gòu)混亂,維護(hù)困難,新業(yè)務(wù)開展困難等等。。。

如上面的例子,架構(gòu)的升級,新技術(shù)的引入,特別容易引發(fā)技術(shù)債務(wù)的出現(xiàn)。
正如我之前的文章《如何在大公司成長》提到的,在成熟的系統(tǒng)中引入新技術(shù)其實(shí)是一個(gè)挑戰(zhàn)非常大的事情,因?yàn)槭紫饶惚仨毧刂坪眉夹g(shù)債務(wù)。
因?yàn)樵趨柡Φ募軜?gòu)師也無法設(shè)計(jì)一個(gè)面向未來可以一直不變的框架,再流行的模式也會(huì)不斷演變。如果解決不好新舊的過度就很容易出現(xiàn)上面的情況。

可以直白的說,在越復(fù)雜的系統(tǒng)上面開發(fā),就是帶著越重的腳鐐在跳舞。

再舉一個(gè)例子,也是引發(fā)技術(shù)債務(wù)的一種情況:
由于進(jìn)度的原因,不得不使用一些hack的方式(而不是從根源解決)去完成任務(wù),然后在沒有來得及刪掉這種hack方式前,有其他人在你的基礎(chǔ)上繼續(xù)迭代和模仿,最后變得想去掉這種hack方式都去不掉。

技術(shù)債務(wù)的定義

什么樣的問題稱之為技術(shù)債務(wù),我和網(wǎng)上觀點(diǎn)有些不同。對于一些編程習(xí)慣,編碼方式,有異味的代碼等等,我認(rèn)為這些應(yīng)該屬于代碼素養(yǎng)的范疇,這些可以不斷改善,而且完全可以小范圍的重構(gòu)解決,不會(huì)形成疊加效應(yīng)。
我理解的技術(shù)債務(wù)是它的存在影響了整個(gè)系統(tǒng)的效率和阻礙了系統(tǒng)的發(fā)展,隨著系統(tǒng)復(fù)雜度的增加,問題會(huì)不斷的被放大。
下面一一說明,并且配合舉例

技術(shù)債務(wù)的影響

影響日常的開發(fā)效率
我認(rèn)為這個(gè)應(yīng)該屬于最嚴(yán)重的影響,由于債務(wù)的原因,嚴(yán)重拖慢了開發(fā)效率,導(dǎo)致開發(fā)人員開法困難。

舉例:
兩個(gè)模塊共用一個(gè)修改組件,由于兩個(gè)模塊底層依賴不一樣,導(dǎo)致需要重復(fù)開發(fā)兩次。而且每一次需求升級,都是兩次的重復(fù)開發(fā)。這種情況的結(jié)果直接導(dǎo)致人力成倍翻倍。

提高了開發(fā)人員的學(xué)習(xí)成本
這也是對于工程效率的影響,由于技術(shù)債務(wù)的積累,導(dǎo)致開發(fā)人員需要花更多的時(shí)間去理解開發(fā)任務(wù),需要更多的時(shí)間學(xué)習(xí)理解。

舉例
由于歷史原因,同樣一個(gè)組件/模塊有兩種實(shí)現(xiàn)方式,新同學(xué)在選擇時(shí)第一感覺就是迷茫,亂,煩躁,不知所措,還需要花人力去了解哪個(gè)更加合適,哪個(gè)會(huì)有什么樣的坑等等,如果選擇錯(cuò)誤了,還需要花無謂的時(shí)間重做。

持續(xù)的影響網(wǎng)站性能
債務(wù)的積累必定是一些遺留問題,特點(diǎn)就是隨著時(shí)間,會(huì)越來越多,越來越復(fù)雜,越來越不敢砍掉。直接導(dǎo)致的問題就是,遺留代碼太多,這些代碼都是對線程的無謂消耗。最后的結(jié)果就是網(wǎng)站越來越慢

舉例
控件最初使用的是1.0版本,換2.0時(shí),由于舊的業(yè)務(wù)沒有隨著升級,就導(dǎo)致系統(tǒng)里面ui庫多版本,這樣,ui初始化就需要初始化兩份,而且合并打包的時(shí)候,代碼也會(huì)多出很多。

容易觸發(fā)bug
舊代碼的錯(cuò)誤使用,或者使用不當(dāng),經(jīng)常會(huì)導(dǎo)致一些莫名其妙的bug,而且極其難定位。

舉例
在開發(fā)中不小心使用了舊代碼的一些功能,而其他人員在清理或者修改重構(gòu)時(shí)沒有考慮,直接就會(huì)間接的產(chǎn)生bug。也是因?yàn)檫@種原因,舊代碼也越來越不敢清理

成為了業(yè)務(wù)規(guī)劃的瓶頸
由于一些架構(gòu)因素,導(dǎo)致某些業(yè)務(wù)功能無法實(shí)現(xiàn),或者實(shí)現(xiàn)起來的成本特別高。

舉例
兩個(gè)模塊由于底層的技術(shù)架構(gòu)不同,如果pm希望模塊間有一些數(shù)據(jù)的互通,或者功能的互相調(diào)用,這種需求就是受到技術(shù)的限制而實(shí)現(xiàn)不了(當(dāng)然可以通過一些hack或者非常規(guī)方式實(shí)現(xiàn),但是每一次hack都是一次新債務(wù)的產(chǎn)生)

如何避免技術(shù)債務(wù)

技術(shù)債務(wù)能避免嗎?
我覺得不可能,因?yàn)殡S著復(fù)雜度的增長,債務(wù)也在慢慢增長,只是快和慢的問題,也許你今天寫的一個(gè)完美的功能,一年以后,對于新的架構(gòu)就是一個(gè)債務(wù),因?yàn)榧夹g(shù)在不斷再更新?lián)Q代,沒有任何一種模式是銀彈。
如果非要有一種辦法避免,我能想到的就拒絕新技術(shù)引入,一種模式堅(jiān)持到底,但這肯定是不實(shí)際。

所以個(gè)人覺得對于技術(shù)債務(wù)
我們首先我們需要認(rèn)識到債務(wù)的存在,最好有一個(gè)債務(wù)管理機(jī)制。例如有一個(gè)債務(wù)范圍的控制,當(dāng)影響面達(dá)到一定程度,就必須去清理。
其次認(rèn)識到清理債務(wù)對當(dāng)下的收益可能不明顯,但是收益在未來會(huì)不斷放大,所以對于債務(wù)的清理,我們必須要去面對,而不是逃避。
最后,還需要在平時(shí)的開發(fā)中,有技術(shù)債務(wù)的意識,例如,臨時(shí)方案真的是臨時(shí)的嗎?開發(fā)出來的代碼可維護(hù)嗎?

微信公眾號

博客地址

http://tangguangyao.github.io/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86143.html

相關(guān)文章

  • 我們來聊聊技術(shù)債務(wù)

    摘要:用不了多久,我們就會(huì)發(fā)現(xiàn)我們已經(jīng)無力償還這份技術(shù)債務(wù)啦,只能重構(gòu)啦。當(dāng)然,最重要的其實(shí)是把技術(shù)債務(wù)的重要性提到一個(gè)被認(rèn)可的位置上。切記一些重要的技術(shù)債務(wù)遠(yuǎn)遠(yuǎn)比開發(fā)新系統(tǒng)的優(yōu)先級要高很多。 技術(shù)債務(wù) 「技術(shù)債務(wù)」是開發(fā)團(tuán)隊(duì)在設(shè)計(jì)或架構(gòu)選型時(shí),從短期效應(yīng)的角度選擇了一個(gè)易于實(shí)現(xiàn)的方案。但從長遠(yuǎn)來看,這種方案會(huì)帶來更消極的影響,亦即開發(fā)團(tuán)隊(duì)所欠的債務(wù)。 簡單的說就是為了快速地解決問題,而采取...

    he_xd 評論0 收藏0
  • 我們來聊聊技術(shù)債務(wù)

    摘要:用不了多久,我們就會(huì)發(fā)現(xiàn)我們已經(jīng)無力償還這份技術(shù)債務(wù)啦,只能重構(gòu)啦。當(dāng)然,最重要的其實(shí)是把技術(shù)債務(wù)的重要性提到一個(gè)被認(rèn)可的位置上。切記一些重要的技術(shù)債務(wù)遠(yuǎn)遠(yuǎn)比開發(fā)新系統(tǒng)的優(yōu)先級要高很多。 技術(shù)債務(wù) 「技術(shù)債務(wù)」是開發(fā)團(tuán)隊(duì)在設(shè)計(jì)或架構(gòu)選型時(shí),從短期效應(yīng)的角度選擇了一個(gè)易于實(shí)現(xiàn)的方案。但從長遠(yuǎn)來看,這種方案會(huì)帶來更消極的影響,亦即開發(fā)團(tuán)隊(duì)所欠的債務(wù)。 簡單的說就是為了快速地解決問題,而采取...

    Doyle 評論0 收藏0
  • 我們來聊聊技術(shù)債務(wù)

    摘要:用不了多久,我們就會(huì)發(fā)現(xiàn)我們已經(jīng)無力償還這份技術(shù)債務(wù)啦,只能重構(gòu)啦。當(dāng)然,最重要的其實(shí)是把技術(shù)債務(wù)的重要性提到一個(gè)被認(rèn)可的位置上。切記一些重要的技術(shù)債務(wù)遠(yuǎn)遠(yuǎn)比開發(fā)新系統(tǒng)的優(yōu)先級要高很多。 技術(shù)債務(wù) 「技術(shù)債務(wù)」是開發(fā)團(tuán)隊(duì)在設(shè)計(jì)或架構(gòu)選型時(shí),從短期效應(yīng)的角度選擇了一個(gè)易于實(shí)現(xiàn)的方案。但從長遠(yuǎn)來看,這種方案會(huì)帶來更消極的影響,亦即開發(fā)團(tuán)隊(duì)所欠的債務(wù)。 簡單的說就是為了快速地解決問題,而采取...

    lanffy 評論0 收藏0
  • 項(xiàng)目開發(fā)中技術(shù)債務(wù)產(chǎn)生原因與避免

    摘要:什么是技術(shù)債務(wù)由于團(tuán)隊(duì)在開始新項(xiàng)目的時(shí)候,舊項(xiàng)目的任何未完成的事情都會(huì)形成技術(shù)債務(wù)。技術(shù)債務(wù)產(chǎn)生原因有哪些原因技術(shù)債務(wù)的產(chǎn)生原因是多方面的,其形成的過程和生活中所擔(dān)的債務(wù)形成的過程具有非常大的相似性。 什么是技術(shù)債務(wù)? 由于團(tuán)隊(duì)在開始新項(xiàng)目的時(shí)候,舊項(xiàng)目的任何未完成的事情都會(huì)形成技術(shù)債務(wù)。比如代碼不規(guī)范,需要進(jìn)行代碼重構(gòu)的重構(gòu)債務(wù);比如設(shè)計(jì)上未完成的設(shè)計(jì)債務(wù),等等,統(tǒng)歸于技術(shù)債務(wù)。 而...

    djfml 評論0 收藏0
  • 項(xiàng)目開發(fā)中技術(shù)債務(wù)產(chǎn)生原因與避免

    摘要:什么是技術(shù)債務(wù)由于團(tuán)隊(duì)在開始新項(xiàng)目的時(shí)候,舊項(xiàng)目的任何未完成的事情都會(huì)形成技術(shù)債務(wù)。技術(shù)債務(wù)產(chǎn)生原因有哪些原因技術(shù)債務(wù)的產(chǎn)生原因是多方面的,其形成的過程和生活中所擔(dān)的債務(wù)形成的過程具有非常大的相似性。 什么是技術(shù)債務(wù)? 由于團(tuán)隊(duì)在開始新項(xiàng)目的時(shí)候,舊項(xiàng)目的任何未完成的事情都會(huì)形成技術(shù)債務(wù)。比如代碼不規(guī)范,需要進(jìn)行代碼重構(gòu)的重構(gòu)債務(wù);比如設(shè)計(jì)上未完成的設(shè)計(jì)債務(wù),等等,統(tǒng)歸于技術(shù)債務(wù)。 而...

    zhou_you 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<