最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

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

2023-06-27 16:10 作者:阿里云  | 我要投稿

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


摘要概覽

比起什么程序員刪庫跑路,我更喜歡「寫出讓同事難以維護(hù)的代碼」,因為即使不能「名垂千古」,至少VCS可以幫你「遺臭萬年」。

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

說回正題,前幾天在家附近的一個小學(xué)校旁邊散步,突然聽到某個學(xué)生說“上學(xué)期我是‘三好學(xué)生’,xxxx”。想了想,學(xué)生有“三好”,那么程序員“三好”是什么?

我認(rèn)為程序員的“三好”是「好用」,「好看」,「好改」。這個是說程序員的代碼:

  • 要正確且健壯,就是好用;

  • 要可讀性高,易于理解,就是好看;

  • 要方便擴(kuò)展和改動,就是好改;


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

一、程序命名&注釋

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

容易輸入的變量名

比如:Fred,asdf單字母的變量名。

比如:a,b,c,x,y,z(如果不夠用,可以考慮 a1,a2,a3,a4,….)


有創(chuàng)意地拼寫錯誤

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


使用縮寫和拼音

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

論注釋的重要性:不然我以為是「駕?!故且活愔匾蛻簦袉为?dú)的helper



1.2嵌入式文檔之殤=注釋

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

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



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

程序回憶錄


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

千萬注意something


實在不知道注意什么……



用注釋保留一些秘密


二、數(shù)據(jù)類型&類&對象

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

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

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

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


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


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



2.2對象?"類"覺不愛

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

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


??

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

3.1開胃菜:if-else

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


?

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


?


3.2大菜:「海鮮拼盤」

下面這個600行的方法讓我學(xué)會了「截長圖」


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

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


接下來見證遺跡的時刻……

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


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

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

認(rèn)知升級

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



CV工程師佳作

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


??

包裝,包裝,再包裝

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


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

還好我一屏就可以看完整個鏈路??

想必是個核心類

再多引用幾個類,我還能干更多事!請大聲唱:我真的還想再包500類——《康熙王朝》?。

?

羊大為美

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

我想說還有大類,大方法:


不要過早的return或continue,要「V型」

V型激起我寫代碼的欲望。


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

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

一張網(wǎng)就是「碼網(wǎng)」。漁網(wǎng)是打魚的,碼網(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.

下圖「類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.

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


思考:如何寫出讓同事難以維護(hù)的代碼?的評論 (共 條)

分享到微博請遵守國家法律
攀枝花市| 镇原县| 庄浪县| 佛教| 黄浦区| 抚松县| 隆化县| 邹平县| 康乐县| 宝丰县| 泗水县| 沙坪坝区| 阿克苏市| 延寿县| 岚皋县| 文登市| 西平县| 陆川县| 丰城市| 岑溪市| 丰镇市| 溧阳市| 华坪县| 腾冲县| 阿尔山市| 汪清县| 手游| 邯郸县| 龙岩市| 黎平县| 华亭县| 彰化县| 龙南县| 平武县| 三台县| 吴江市| 新巴尔虎左旗| 绥宁县| 永春县| 枣庄市| 渑池县|