和大家聊了聊程序員的垃圾分類,有的程序員直呼太真實(shí),有的程序員覺得太諷刺,不應(yīng)該給程序員進(jìn)行這樣的分類。
其實(shí)每個行業(yè)都會存在各種各樣糟糕的情況,娛樂性的分類會將問題放大,讓我們能站出來用另一個視角來看看,什么類型的程序員是我們應(yīng)該避免的。
做為一名老程序員,誰還沒有寫過幾行垃圾代碼,我到現(xiàn)在還記得在第二家公司離職時,寫的那段超過 600 行一個方法的代碼,可以想象后面接手我工作的同事,看到那段代碼是什么樣的感受。
那段代碼已經(jīng)過去了6年多,我現(xiàn)在仍然記得,可見有多痛。那 600 行代碼真的巨復(fù)雜,嵌套了至少四個 for 循環(huán),處理了思科 IP 話機(jī)最復(fù)雜的話費(fèi)解析功能。為什么會出現(xiàn)這樣的情況,因為時間!
那是我快離職的時候,領(lǐng)導(dǎo)仍然堅持讓我工作到最后一分鐘,就是寫這段邏輯,害怕我走了之后,短期內(nèi)沒人搞的懂這塊邏輯,所以只留了夠?qū)懘a的時間,優(yōu)化估計沒考慮。
在距離拿到離職證明還剩最后一個小時,我還改了最后一個 bug,其實(shí)那家公司和領(lǐng)導(dǎo)真的很不錯,只是離職交接這件事情,確實(shí)搞的有點(diǎn)小匆忙。
我一直都認(rèn)為:好的代碼是不斷優(yōu)化出來的,而不是一次敲出來的。正常情況下代碼編寫應(yīng)該只占用30% 的工作,后面 70% 的工作就是不斷的去優(yōu)化它。
可惜的是,在中國互聯(lián)網(wǎng)目前的情況下,后面 70% 的時間被不斷壓縮到了極致。很多程序員寫完代碼的時候,工期就到了,急匆匆的提交測試、上線投產(chǎn)。
在這樣的情況下,代碼質(zhì)量完美、生產(chǎn)不出問題那就是世界第九大奇跡。中國很多互聯(lián)網(wǎng)公司老板都相信這種奇跡,這個事情本身也挺奇跡的。
有什么的環(huán)境,就會產(chǎn)生什么樣的產(chǎn)物,有時候這也是一種現(xiàn)實(shí)。
所以工作中有一些垃圾代碼也是正常的,但出現(xiàn)”虎軀一震“的代碼就比較少見了,對”虎軀一震“的代碼進(jìn)行分類那就更有趣了。
有人說,垃圾代碼也是有價值的,當(dāng)然這個觀點(diǎn)我是認(rèn)可的,因為你的排泄物也是有價值的,只是這個價值用在哪里。
還有補(bǔ)充一句,文中案例均為虛構(gòu),如有巧合,請來打賞!
1
干垃圾 | 虎軀一震代碼
虎軀一震?被嚇一跳算不算?反正我再看到那段代碼,我的表情大概是這樣的:
有一次我開了一個網(wǎng)站,網(wǎng)頁半天沒有反應(yīng),頁面的右下面有一個”清理緩存“的超鏈接,于是就好奇的點(diǎn)了一下,沒想到它立刻就彈出了清理完成!
作為一名老司機(jī),習(xí)慣性的按下了:Ctrl+Shit+I 快捷鍵,就發(fā)現(xiàn)了下面這段牛X的代碼。
仔細(xì)查看了代碼還發(fā)現(xiàn)有這樣一個函數(shù),del_yeye(); 一時看不出來這是要干嘛,跟著代碼查過去發(fā)現(xiàn)是:
parent().parent().remove();
合著是要刪除爺爺,方法命名很形象、很具體,給五星好評!心中升起一片由衷的佩服,果然乃我輩之將才!
當(dāng)然我們后端程序員也不能示弱,就比如下面這段示例,代碼簡潔,命名規(guī)范,沒個三五年經(jīng)驗寫不出來這種代碼。
這是一名資深程序員的素養(yǎng)。
當(dāng)我在知乎看到這個分享,才明白我國的編程大任,已經(jīng)順利的傳遞到了祖國的花朵。以下是小咔的經(jīng)歷:
我曾經(jīng)在我們學(xué)校辦公室里看見一個六年級小學(xué)生熟練的在文本文檔里敲出三行
:startstartcmdgotostart
我當(dāng)時就震驚了
然后再看他熟練的放到c盤里,改后綴為bat,然后在桌面上新建個快捷方式,更改圖標(biāo),重命名為“六年級教案大全”?!
當(dāng)我下次再見到他時,他竟然帶著兩個人一起把整個辦公室的電腦都創(chuàng)建了這個鬼東西???
可以想象的是,這位小朋友前途一片光明。
干代碼建議處理措施:不建議、不倡導(dǎo),但可以在自己家的電腦試用!
2
濕垃圾 | 風(fēng)騷代碼
寫這么騷的代碼,你們領(lǐng)導(dǎo)知道嗎?
比如這個程序員,寫了一段自動呼叫電話的程序,是這樣的:
chara;printf(“請輸入您要呼叫的號碼\n”);scanf(“%char”,&a);printf(“error!\n”);printf(“系統(tǒng)異常,自動轉(zhuǎn)呼!\n”);printf(“正在撥號:110”);
不知道用戶看到這段提示的時候,內(nèi)心是不是這樣:
當(dāng)然在我們這行,沒有最騷只有更騷,據(jù)說下面這段代碼是 AI 最核心的代碼,價值1個億!!
其實(shí)我只想拿它試試能不能拿它融到一個小目標(biāo)!
濕代碼建議處理措施:發(fā)揚(yáng)光大!
3
有害垃圾 | 毀滅性代碼
三行代碼教你做人:
dropdatabaserm-rf/shutdown-hnow
竟然有程序員找到了更牛逼的玩法,比如
sudochmod-R000/
這些代碼看了不止會虎軀一震,心里還會一揪,這是在誘導(dǎo)犯罪呀。
網(wǎng)上流傳著一段【C++黨】變量定義
#defineintdouble#definetruefalse#definemaxmin#defineminmax
果然是奇才,這種牛逼的方案完全可以推廣到 Python ,Java ,PHP ,Golang...,并且把它打成組件包的時候,不知道會發(fā)生什么。
真正的程序員都是要給自己留后路的,比如上線后甲方突然說程序運(yùn)行效率太低了,突然要求項目響應(yīng)速度提升十倍!作為一名年輕的程序員,可會能哭暈在甲方爸爸的辦公室。
但是對于一個資深的程序員來講,這個都不是事兒!一行代碼搞定所有性能優(yōu)化問題,并且可以按照百分比進(jìn)行定制!
這就是一名資深程序員的價值!
有害代碼建議處理措施:建議啟動垃圾回收機(jī)制!
4
可回收垃圾 | 可回收代碼
一個關(guān)于for循環(huán)的凄美愛情故事
男孩
for(;;)printf("ILOVEYOU\n");
女孩回復(fù)
for(;;)printf("ILOVEYOU\n");
個人覺得,循環(huán)一百次的時候,應(yīng)該一個 Thread.sleep() 或者 break,不然看著好像有點(diǎn)累。
還有一名網(wǎng)友的經(jīng)歷:
我原話和他說,你判斷一下這些參數(shù)是否為空,不為空,就存庫,懂嗎?
他答,懂。
后來,我轉(zhuǎn)過來看他代碼
StringA=parm.get("A");StringB=parm.get("B");
上頭是我接的參數(shù)(不是源碼)
以下是他寫的,除了參數(shù)名不一樣,完全沒改
if('A'=='空'){}else{System.out.println("存入A");}if('B'=='空'){}else{System.out.println("存入B");}
我看完愣了一下,問,寫完了么?
他說,差不多了。。。
然后我啥也沒說,默默接過來,把代碼寫完,然后給頭說了
第二天,這小伙就接到HR通知,明天不用來了。
其實(shí)這個程序員還是可以在培養(yǎng)的,也就錯了兩個地方而已,這個老程序員太認(rèn)真了。
可回收垃圾建議處理措施:回收加工再利用。
5
牛逼的代碼
其實(shí)人生中最牛逼的代碼是:
publicclassTest{publicstaticvoidmain(String[]args){System.out.println(“HelloWorld”);}}
當(dāng)輸出了 Hello World 的時候,18歲的我感覺到了自己與同齡人的不同,那種自豪感,那種快樂油然而生。仿佛那不是一段冷冷的代碼,而是我人生的方向標(biāo)。至此,紀(jì)念我程序生涯的開始。
在我 22 歲的時候,又通過一段代碼,成功脫單........,代碼運(yùn)行后的效果圖如下:
當(dāng)然為了大家的單身事業(yè),我在網(wǎng)上尋找了很久,找到一份成品,需要的朋友可以在公號內(nèi)回復(fù):表白,即可獲取。
6
結(jié)束語
其實(shí)各個公司都存在一定的祖?zhèn)鞔a,這些代碼就是一個垃圾寶庫,有時候你根本不知道它是在干嘛,甚至覺得它幾百年可能都沒有使用過,但最關(guān)鍵是不敢動!
別問我怎么知道的!
自此以后,遇到一些看著很奇怪的代碼壓根兒碰都不敢碰。
有時候心血來潮改點(diǎn)東西……代碼從頭錯到尾……
有時候當(dāng)你只刪了一行代碼時,可能會發(fā)生下面這種情況
你說哪家公司完全沒有垃圾代碼,我是不信的!如果有,那就是剛成立的。
警告:文中所有代碼均收集于網(wǎng)絡(luò),文中故事皆為虛構(gòu),如果雷同,請來贊賞。
請勿將文中代碼應(yīng)用于任何場景中,個人娛樂謹(jǐn)慎嘗試??!
-
AI
+關(guān)注
關(guān)注
87文章
31535瀏覽量
270343 -
代碼
+關(guān)注
關(guān)注
30文章
4828瀏覽量
69055 -
程序員
+關(guān)注
關(guān)注
4文章
953瀏覽量
29856
原文標(biāo)題:程序員垃圾代碼分類指南
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
人工智能分類垃圾桶原理
基于51單片機(jī)的一個語音識別分類智能垃圾桶設(shè)計
垃圾分類系統(tǒng)機(jī)械結(jié)構(gòu)是怎樣去設(shè)計的
芯片裝進(jìn)垃圾桶 物聯(lián)網(wǎng)助力垃圾分類
如何使用機(jī)器視覺技術(shù)進(jìn)行垃圾分類
如何利用物聯(lián)網(wǎng)為垃圾分類
“你是什么垃圾?”垃圾分類機(jī)器人是否成為未來垃圾分類的福音?
人都分不好垃圾,機(jī)器能分好嗎?
“垃圾分類”火了!垃圾分類企業(yè)準(zhǔn)備好了嗎?
“全國垃圾分類”服務(wù)上線微信 可查看生活垃圾分類標(biāo)準(zhǔn)和投放要求
人工智能是如何將垃圾分類的
這款智能垃圾分類箱跟普通的垃圾箱有何區(qū)別?
垃圾代碼應(yīng)該怎么寫
VR環(huán)保教育 | 全民垃圾分類虛擬仿真互動體驗,游戲化場景輕松學(xué)會垃圾分類
![VR環(huán)保教育 | 全民<b class='flag-5'>垃圾</b><b class='flag-5'>分類</b>虛擬仿真互動體驗,游戲化場景輕松學(xué)會<b class='flag-5'>垃圾</b><b class='flag-5'>分類</b>](https://file1.elecfans.com/web2/M00/A0/4B/wKgZomTsTyOAJ78PAAE8JETY0LM517.png)
評論