思考:如何寫出讓同事難以維護的程式碼?doge
來源:阿里開發者
阿里妹導讀
本文從【程式命名&註釋】【資料型別&類&物件】【控制執行流程】和【程式/結構設計】四個方面梳理了一些真實案例,相信透過這些案例你能迅速get技能:如何寫出讓同事難以維護的程式碼doge。
摘要概覽
比起什麼程式設計師刪庫跑路,我更喜歡「寫出讓同事難以維護的程式碼」,因為即使不能「名垂千古」,至少VCS可以幫你「遺臭萬年」。
要正確且健壯,就是好用; 要可讀性高,易於理解,就是好看; 要方便擴充套件和改動,就是好改;
平時不少文章都在聊“三好”的正例,今天理一些「好看」的反例,希望給讀者一些啟發和印象,避免編碼中的一些問題,爭取做個“三好程式設計師”吧。
一、程式命名&註釋
1.1教你如何挑戰維護者
容易輸入的變數名
有創意地拼寫錯誤
使用縮寫和拼音
比如:WTF,RTFSC …… (使用拼音縮寫也同樣給力,比如:BT,TMD,TJJTDS)
論註釋的重要性:不然我以為是「駕校」是一類重要客戶,要有單獨的helper
1.2嵌入式文件之殤=註釋
不要盲目修改,注意理解!!!
注意理解,你會發現其中的不同點……
「注意理解」之後,意外出現了……
程式回憶錄
long~ long ago~【狼,狼,啊狗】?
千萬注意something
實在不知道注意什麼……
用註釋保留一些秘密
二、資料型別&類&物件
2.1教教你怎麼用陣列
無所不能的多維陣列
如果你覺得二維、三維還不足夠,你可以試試四維。
仔細品一品,這個排版和換行可以教你快速數下標的方法:行號-44,比如“常駐工作城市”的下標就是25。
想清楚下標了再呼叫
一切皆物件,陣列也是物件,用就是了
2.2物件?"類"覺不愛
員工服務的四胞胎:倆哥哥service,倆妹妹helper;
——「木蘭辭」:"四"兔傍地走,安能辨我是雌雄雄雌;
三、控制執行流程
3.1開胃菜:if-else
巨大的processor。寫一個 processor,然後讓你的所有的 consumer 類都使用這個 processor,這樣你可以在這個 consumer 中整出一大堆 if…else… 語句,相當的刺激。
當return和不return混雜在一起的時候,這份刺激中又多了些驚喜……
3.2大菜:「海鮮拼盤」
下面這個600行的方法讓我學會了「截長圖」
?這是個switch-for-if-continue-return組合,很能理解「作者實在沒法把break和goto加進去」的苦衷。
——報告老師:“第四章我已經掌握了”
接下來見證遺蹟的時刻……
建議:多來來回回的讀讀這段程式碼,有助於鍛鍊眼球靈活性,並且能有效抵抗頸椎病
看一遍,想一下,case 0的時候返回啥??脖子有沒有舒服點兒?
四、程式/結構設計
認知升級
GrayService是個灰度服務,corpId是企業ID,那麼透過一次灰度放量,在腦殼裡執行一下程式,就可以完成認知升級。
CV工程師佳作
克隆和複製。為了效率,你要學會使用 copy + past,你幾乎都不用理解別人的程式碼,你就可以高效地程式設計了。
包裝,包裝,再包裝
把你所有的 API 都包裝上 6 到 8 遍,包裝深度多達 4層以上,以便找到足夠多相似的東西。
業務是否複雜,這不重要;重要的是1,2行程式碼的封裝也是要的,不包個8層封裝,怎麼能說明理解分層了呢?
還好我一屏就可以看完整個鏈路?
想必是個核心類
再多引用幾個類,我還能幹更多事!請大聲唱:我真的還想再包500類——《康熙王朝》。
羊大為美
中國人喜歡大,都是“越大越好”,大房子,大車子;而現代中國人總把‘大”放在高位,把‘大”作為對於一個事物最高的評價。像大人,大神,大聖,大仙,大中國,和別人介紹起自己的家鄉都會加上“大”字作字首。所以,從古至今,大始終貫穿著人們對於美好事物的遐想。
我想說還有大類,大方法:
不要過早的return或continue,要「V型」
V型激起我寫程式碼的慾望。
跟左邊的深V相比,右邊的就太差了,行數竟然變多了。
一張圖,一顆心,一場仗 + 一張網
一張網就是「碼網」。漁網是打魚的,碼網是打碼農。
上圖「包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.
翻譯:能看看,不能看拉倒
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027824/viewspace-2951624/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何寫出讓同事無法維護的程式碼?
- 如何寫出無法維護的程式碼
- 如何編寫難以維護的 React 程式碼?耦合通用元件與業務邏輯React元件
- 這樣可以寫出無法維護的程式碼
- 如何編寫高質量和可維護的程式碼
- 如何編寫可維護的物件導向JavaScript程式碼物件JavaScript
- 面試官:如何寫出讓 CPU 跑得更快的程式碼?面試
- 書寫可維護程式碼的重要性
- 讓 Python 程式碼更易維護的七種武器Python
- 關於提高程式碼可維護性的一點思考
- 遠離麵條程式碼:編寫可維護的 JS 程式碼JS
- 如何提高程式碼的可維護性
- PLC維護有何難處?如何實現遠端維護?
- 前端進階篇之如何編寫可維護可升級的程式碼前端
- 老碼農冒死揭開行業黑幕:如何編寫無法維護的程式碼行業
- 七種方法讓 Python 程式碼更容易維護Python
- 我寫的 Python 程式碼,同事都說好Python
- Spring程式碼生成器:JHipster生成的程式碼是難以維護還是無法立即投入生產 – N47Spring
- 老碼農冒死揭開行業黑幕:如何編寫無法維護的程式碼(上篇)行業
- 如何寫出漂亮的 JavaScript 程式碼JavaScript
- 如何寫出更好的 React 程式碼?React
- 如何寫出優雅的程式碼?
- 如何寫出整潔的程式碼
- 如何寫出更好的Java程式碼Java
- lcobucci/jwt的安裝和使用(讓天下沒有難寫和難讀的程式碼)JWT
- 編寫高質量程式碼之狀態維護
- 書寫高質量程式碼之狀態維護
- 這樣規範寫程式碼,同事直呼“666”
- [譯] 如何寫出漂亮的 JavaScript 程式碼JavaScript
- 【譯】如何寫出更好的 React 程式碼React
- 如何寫出更優質的程式碼
- [譯] 如何寫出更好的 React 程式碼?React
- 以並行思維方式思考並行
- JS 互動程式碼這樣寫可能好維護點JS
- 編寫業務邏輯程式碼,清晰可維護是很重要的
- 程式設計師如何寫出更好的程式碼程式設計師
- 程式碼質量管理——如何寫出優雅的程式碼
- DBA日常維護SQL指令碼_自己編寫的SQL指令碼