<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          思考:如何寫(xiě)出讓同事難以維護(hù)的代碼?doge

          共 4510字,需瀏覽 10分鐘

           ·

          2023-05-20 22:10

          743f89dac23ffc90de645db622526d9e.webp

          導(dǎo)讀


          本文從【程序命名&注釋】【數(shù)據(jù)類(lèi)型&類(lèi)&對(duì)象】【控制執(zhí)行流程】和【程序/結(jié)構(gòu)設(shè)計(jì)】四個(gè)方面梳理了一些真實(shí)案例,相信通過(guò)這些案例你能迅速get技能:如何寫(xiě)出讓同事難以維護(hù)的代碼doge。

          摘要概覽

          比起什么程序員刪庫(kù)跑路,我更喜歡「寫(xiě)出讓同事難以維護(hù)的代碼」,因?yàn)榧词共荒堋该骨Ч拧梗辽賄CS可以幫你「遺臭萬(wàn)年」。

          ?本文從【程序命名&注釋】【數(shù)據(jù)類(lèi)型&類(lèi)&對(duì)象】【控制執(zhí)行流程】和【程序/結(jié)構(gòu)設(shè)計(jì)】四個(gè)方面梳理了一些真實(shí)案例,相信通過(guò)這些案例你能迅速get技能:如何寫(xiě)出讓同事難以維護(hù)的代碼doge。? 說(shuō)回正題,前幾天在家附近的一個(gè)小學(xué)校旁邊散步,突然聽(tīng)到某個(gè)學(xué)生說(shuō)“上學(xué)期我是‘三好學(xué)生’,xxxx”。想了想,學(xué)生有“三好”,那么程序員“三好”是什么? 我認(rèn)為程序員的“三好”是「好用」,「好看」,「好改」。這個(gè)是說(shuō)程序員的代碼:
          • 要正確且健壯,就是好用;
          • 要可讀性高,易于理解,就是好看;
          • 要方便擴(kuò)展和改動(dòng),就是好改;

          平時(shí)不少文章都在聊“三好”的正例,今天理一些「好看」的反例,希望給讀者一些啟發(fā)和印象,避免編碼中的一些問(wèn)題,爭(zhēng)取做個(gè)“三好程序員”吧。

          一、程序命名&注釋

          1.1教你如何挑戰(zhàn)維護(hù)者

          容易輸入的變量名

          比如:Fred,asdf單字母的變量名。 比如:a,b,c,x,y,z(如果不夠用,可以考慮 a1,a2,a3,a4,….)

          有創(chuàng)意地拼寫(xiě)錯(cuò)誤

          比如:SetPintleOpening, SetPintalClosing,這樣可以讓人很難搜索代碼。 ?

          42d1b354916f41e8526cf342e0bb950f.webp

          使用縮寫(xiě)和拼音

          比如:WTF,RTFSC …… (使用拼音縮寫(xiě)也同樣給力,比如:BT,TMD,TJJTDS)

          論注釋的重要性:不然我以為是「駕校」是一類(lèi)重要客戶(hù),要有單獨(dú)的helper

          7c002bee29b71348a812b1216695c34a.webp


          1.2嵌入式文檔之殤=注釋

          不要盲目修改,注意理解!!!

          注意理解,你會(huì)發(fā)現(xiàn)其中的不同點(diǎn)……

          de4d7e0f1a0439098ff4c5d660f325fe.webp

          「注意理解」之后,意外出現(xiàn)了……

          8e9bf5aa74682bbe46e005e490f1df1c.webp

          程序回憶錄

          long~ long ago~【狼,狼,啊狗】??

          72b998aa4c3ddc14e9e72809ee6dd29c.webp

          千萬(wàn)注意something

          實(shí)在不知道注意什么……

          0bbe2574597af5b80a764aac57406a68.webp

          用注釋保留一些秘密

          4397926f716abf62797681df296ee0f3.webp

          二、數(shù)據(jù)類(lèi)型&類(lèi)&對(duì)象

          2.1教教你怎么用數(shù)組

          無(wú)所不能的多維數(shù)組

          如果你覺(jué)得二維、三維還不足夠,你可以試試四維。

          仔細(xì)品一品,這個(gè)排版和換行可以教你快速數(shù)下標(biāo)的方法:行號(hào)-44,比如“常駐工作城市”的下標(biāo)就是25 ?。

          bff79dcabc776eccc4254e21ec44904c.webp

          想清楚下標(biāo)了再調(diào)用

          一切皆對(duì)象,數(shù)組也是對(duì)象,用就是了

          c831d9bab2ef15eaaba4b76bb6eca859.webp


          2.2對(duì)象?"類(lèi)"覺(jué)不愛(ài)

          員工服務(wù)的四胞胎:倆哥哥service,倆妹妹helper;

          ——「木蘭辭」:"四"兔傍地走,安能辨我是雌雄雄雌;

          e245bed11b97f0503eb542e471fd965b.webp??

          三、控制執(zhí)行流程

          3.1開(kāi)胃菜:if-else

          巨大的processor。寫(xiě)一個(gè) processor,然后讓你的所有的 consumer 類(lèi)都使用這個(gè) processor,這樣你可以在這個(gè) consumer 中整出一大堆 if…else… 語(yǔ)句,相當(dāng)?shù)拇碳ぁ?/span>

          eede8a10694a0ca4e7547202fc56899e.webp

          3c70216e9aaca13b977c5029a11515d7.webp?

          當(dāng)return和不return混雜在一起的時(shí)候,這份刺激中又多了些驚喜……

          64de74535440be6ef375f3774dcb6c81.webp?


          3.2大菜:「海鮮拼盤(pán)」

          下面這個(gè)600行的方法讓我學(xué)會(huì)了「截長(zhǎng)圖」

          c6cf2c3211eb9dde77e50538b59fbe8d.webp

          ??這是個(gè)switch-for-if-continue-return組合,很能理解「作者實(shí)在沒(méi)法把break和goto加進(jìn)去」的苦衷。

          ——報(bào)告老師:“第四章我已經(jīng)掌握了”

          fca4740d5f278c0091c9077738934dad.webp

          接下來(lái)見(jiàn)證遺跡的時(shí)刻……

          建議:多來(lái)來(lái)回回的讀讀這段代碼,有助于鍛煉眼球靈活性,并且能有效抵抗頸椎病

          c38e9bb40584b48cf205171bff830974.webp

          看一遍,想一下,case 0的時(shí)候返回啥???脖子有沒(méi)有舒服點(diǎn)兒?

          四、程序/結(jié)構(gòu)設(shè)計(jì)

          認(rèn)知升級(jí)

          GrayService是個(gè)灰度服務(wù),corpId是企業(yè)ID,那么通過(guò)一次灰度放量,在腦殼里執(zhí)行一下程序,就可以完成認(rèn)知升級(jí)。

          6f96f6b3cb3d05d7c5322957a3d40161.webp


          CV工程師佳作

          克隆和拷貝。為了效率,你要學(xué)會(huì)使用 copy + past,你幾乎都不用理解別人的代碼,你就可以高效地編程了。

          32a6d28c155c2b131e5f5f75030cf168.webp

          522a6b29f5b2289c84ea60ac460acb05.webp? ?

          包裝,包裝,再包裝

          把你所有的 API 都包裝上 6 到 8 遍,包裝深度多達(dá) 4層以上,以便找到足夠多相似的東西。

          7140662c235d321f6e73cf91e5338362.webp

          業(yè)務(wù)是否復(fù)雜,這不重要;重要的是1,2行代碼的封裝也是要的,不包個(gè)8層封裝,怎么能說(shuō)明理解分層了呢?

          還好我一屏就可以看完整個(gè)鏈路??

          7d33c77910847579be200bd87b2c56d0.webp?


          想必是個(gè)核心類(lèi)

          再多引用幾個(gè)類(lèi),我還能干更多事!請(qǐng)大聲唱:我真的還想再包500類(lèi)——《康熙王朝》 ?。

          d27a432e3c938c02753d7411bad1e470.webp?

          羊大為美

          中國(guó)人喜歡大,都是“越大越好”,大房子,大車(chē)子;而現(xiàn)代中國(guó)人總把‘大”放在高位,把‘大”作為對(duì)于一個(gè)事物最高的評(píng)價(jià)。像大人,大神,大圣,大仙,大中國(guó),和別人介紹起自己的家鄉(xiāng)都會(huì)加上“大”字作前綴。所以,從古至今,大始終貫穿著人們對(duì)于美好事物的遐想。

          我想說(shuō)還有大類(lèi),大方法:

          43284ffebf04446371833cfcd781fda2.webp


          不要過(guò)早的return或continue,要「V型」

          V型激起我寫(xiě)代碼的欲望。

          34b8b7250cb77dbf2956353a55badd6b.webp

          跟左邊的深V相比,右邊的就太差了,行數(shù)竟然變多了。

          f67b8f4f17f326d3f0d27fcadea9e329.webp

          一張圖,一顆心,一場(chǎng)仗 + 一張網(wǎng)

          一張網(wǎng)就是「碼網(wǎng)」。漁網(wǎng)是打魚(yú)的,碼網(wǎng)是打碼農(nóng)。

          上圖「包Cyclic」:Calculates the number of packages which each package directly or indirectly depends on, and which in turn directly or indirectly depend on it.

          下圖「類(lèi)Cyclic」:Calculates the number of classes or interfaces which each class directly or indirectly depends on, and which in turn directly or indirectly depend on it.

          Note:Such cyclic dependencies may result in code which is difficult to understand and test.

          翻譯:能看看,不能看拉倒

          d036a4b5e7cdad9ece940bff462cda9e.webp

          d58a3750d70ceb59115abe6280b4bf58.webp

          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看黄色日逼视频 | 2020伊人网 | 影音先锋色网 | 一级a做一级a做片性视频视频在线 | 91久久久久久久久久免费视频 |