亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

如何防止代碼腐爛 -管理資料

管理資料 時(shí)間:2019-01-01 我要投稿
【www.ishadingyu.com - 管理資料】

    很多團(tuán)隊(duì)都有這個(gè)問題,一個(gè)項(xiàng)目的代碼本來開始設(shè)計(jì)得好好的,一段時(shí)間以后,代碼就會(huì)變得難以理解,難以維護(hù),難以修改,

如何防止代碼腐爛

。為什么?我一直在思考這個(gè)問題。

    讓我們先看一個(gè)人的情況。

    1.程序員的成長

    新手的代碼

   

    新手的代碼沒有經(jīng)驗(yàn),基本不考慮代碼設(shè)計(jì),代碼規(guī)模稍稍大一點(diǎn)則自己就亂了。

    進(jìn)階者的代碼

   

    小規(guī)模的時(shí)候

   

    大規(guī)模的時(shí)候

    進(jìn)階者已經(jīng)知道如何設(shè)計(jì)代碼,懂得代碼規(guī)則,但一般局限于一個(gè)模塊。規(guī)模一大,模塊間的調(diào)用就會(huì)比較混亂,難以維護(hù)。

    有經(jīng)驗(yàn)者的代碼

   

    有經(jīng)驗(yàn)者的代碼,模塊內(nèi)部代碼整潔,模塊之間層次清晰,有設(shè)計(jì)模式,有成熟的體系。可以保持長期的代碼整潔。

    那么一個(gè)團(tuán)隊(duì)里面會(huì)出現(xiàn)什么情況呢?似乎,我們只要讓一堆有經(jīng)驗(yàn)的人來開發(fā),那么代碼必然不會(huì)出什么問題?上,事實(shí)不是這樣。

    2.背景

    代碼風(fēng)格的多樣性

    有這樣的。

   

    也有這樣的

   

    放眼一看,會(huì)發(fā)現(xiàn)不同的代碼風(fēng)格,不同的設(shè)計(jì)思想,不同的設(shè)計(jì)理念。每個(gè)程序員都有自己的代碼個(gè)性。

   

    團(tuán)隊(duì)層次的差異

   

    一個(gè)團(tuán)隊(duì)內(nèi)部有新人,有熟手,有牛人。一個(gè)設(shè)計(jì)好的架構(gòu)可能會(huì)變壞。

    3.原因

    風(fēng)格的融合

    當(dāng)程序員A和程序員B在一起的時(shí)候,會(huì)有如下變化

   

    原本整潔的代碼變得不整潔了。

    進(jìn)度的壓力

   

    進(jìn)度導(dǎo)致了“飛線”的產(chǎn)生,未經(jīng)設(shè)計(jì)的代碼在時(shí)間的借口下產(chǎn)生了,

管理資料

如何防止代碼腐爛》(http://www.ishadingyu.com)。

    多個(gè)人修改一個(gè)模塊

   

    4.本質(zhì)

    所有代碼腐爛問題的本質(zhì)是溝通問題。其表現(xiàn)又都可以統(tǒng)一為修改別人的代碼。

    當(dāng)一個(gè)程序員在沒有溝通的情況下,修改另一個(gè)程序員的模塊的代碼的時(shí)候,他可能不理解此模塊的設(shè)計(jì)思路,代碼結(jié)構(gòu),邏輯結(jié)構(gòu),于是按自己的想法去修改,雖然看起來解決了眼前的問題。但是留下了一個(gè)不穩(wěn)定因素。此因素可以通過重構(gòu)來解決。但是,大家都非常的“忙”,誰也沒有空時(shí)間去Review代碼,去溝通我改了你的哪里的代碼。所以不穩(wěn)定的因素越來越多,導(dǎo)致了代碼的腐爛。

    最快腐爛的代碼,一定是很多人在修改的代碼,相反,長期由一個(gè)人來維護(hù)的代碼,就不會(huì)那么容易腐爛。因?yàn)橐粋(gè)人不存在溝通的問題,他修改代碼的時(shí)候,明確的知道自己應(yīng)該怎樣去修改,怎樣讓代碼更整潔。

    5.解決

    就一個(gè)辦法,多溝通。

    當(dāng)你工作的時(shí)候需要修改別人的代碼的時(shí)候,應(yīng)該先找這個(gè)人溝通。說清楚需要改動(dòng)的邏輯,然后盡量讓他來修改。這樣可以保證一塊代碼是由一個(gè)人維護(hù),這樣成本最少。

    如果此人真的太忙,沒有時(shí)間,那么你必須說明你的計(jì)劃,讓他做一個(gè)建議,最好能讓他給你講講此模塊的設(shè)計(jì)思路,代碼設(shè)計(jì),邏輯設(shè)計(jì),現(xiàn)在的問題,以后的計(jì)劃。保證你修改的代碼都是合理的。

    最理想的狀態(tài)就是整個(gè)團(tuán)隊(duì)的思想是高度統(tǒng)一的,N個(gè)人可以像一個(gè)人那樣去工作。這個(gè)需要團(tuán)隊(duì)長期的磨合。

    你可以會(huì)想到,我們制定一個(gè)規(guī)范不就可以了么?紙面上的規(guī)范通常是不起作用的,成功團(tuán)隊(duì)的規(guī)范是在整個(gè)團(tuán)隊(duì)達(dá)到一個(gè)很高的水平以后總結(jié)的經(jīng)驗(yàn)。與其說執(zhí)行規(guī)范,不如說是學(xué)習(xí)經(jīng)驗(yàn)。MFC的代碼像是由一個(gè)人寫出來的,Office所有產(chǎn)品都像是一個(gè)人做出來的。這就是高度的統(tǒng)一。我們把微軟的規(guī)范搬過來,不一定就有效果。

    代碼的腐爛都是由于沒有深入理解的情況下修改別人的代碼導(dǎo)致的。

    總結(jié)一下:

解決的方法就是任何修改之前確保經(jīng)過深入的溝通。

   

簡單的規(guī)則是一個(gè)模塊僅允許一個(gè)人維護(hù)。

   

理想的狀態(tài)是整個(gè)團(tuán)隊(duì)思想高度統(tǒng)一。

最新文章
推薦文章