0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何吧垃圾代碼進(jìn)行垃圾分類(lèi)詳細(xì)指南說(shuō)明

馬哥Linux運(yùn)維 ? 來(lái)源:未知 ? 2019-08-03 11:25 ? 次閱讀

和大家聊了聊程序員的垃圾分類(lèi),有的程序員直呼太真實(shí),有的程序員覺(jué)得太諷刺,不應(yīng)該給程序員進(jìn)行這樣的分類(lèi)。

其實(shí)每個(gè)行業(yè)都會(huì)存在各種各樣糟糕的情況,娛樂(lè)性的分類(lèi)會(huì)將問(wèn)題放大,讓我們能站出來(lái)用另一個(gè)視角來(lái)看看,什么類(lèi)型的程序員是我們應(yīng)該避免的。

做為一名老程序員,誰(shuí)還沒(méi)有寫(xiě)過(guò)幾行垃圾代碼,我到現(xiàn)在還記得在第二家公司離職時(shí),寫(xiě)的那段超過(guò) 600 行一個(gè)方法的代碼,可以想象后面接手我工作的同事,看到那段代碼是什么樣的感受。

那段代碼已經(jīng)過(guò)去了6年多,我現(xiàn)在仍然記得,可見(jiàn)有多痛。那 600 行代碼真的巨復(fù)雜,嵌套了至少四個(gè) for 循環(huán),處理了思科 IP 話(huà)機(jī)最復(fù)雜的話(huà)費(fèi)解析功能。為什么會(huì)出現(xiàn)這樣的情況,因?yàn)闀r(shí)間!

那是我快離職的時(shí)候,領(lǐng)導(dǎo)仍然堅(jiān)持讓我工作到最后一分鐘,就是寫(xiě)這段邏輯,害怕我走了之后,短期內(nèi)沒(méi)人搞的懂這塊邏輯,所以只留了夠?qū)懘a的時(shí)間,優(yōu)化估計(jì)沒(méi)考慮。

在距離拿到離職證明還剩最后一個(gè)小時(shí),我還改了最后一個(gè) bug,其實(shí)那家公司和領(lǐng)導(dǎo)真的很不錯(cuò),只是離職交接這件事情,確實(shí)搞的有點(diǎn)小匆忙。

我一直都認(rèn)為:好的代碼是不斷優(yōu)化出來(lái)的,而不是一次敲出來(lái)的。正常情況下代碼編寫(xiě)應(yīng)該只占用30% 的工作,后面 70% 的工作就是不斷的去優(yōu)化它。

可惜的是,在中國(guó)互聯(lián)網(wǎng)目前的情況下,后面 70% 的時(shí)間被不斷壓縮到了極致。很多程序員寫(xiě)完代碼的時(shí)候,工期就到了,急匆匆的提交測(cè)試、上線(xiàn)投產(chǎn)。

在這樣的情況下,代碼質(zhì)量完美、生產(chǎn)不出問(wèn)題那就是世界第九大奇跡。中國(guó)很多互聯(lián)網(wǎng)公司老板都相信這種奇跡,這個(gè)事情本身也挺奇跡的。

有什么的環(huán)境,就會(huì)產(chǎn)生什么樣的產(chǎn)物,有時(shí)候這也是一種現(xiàn)實(shí)。

所以工作中有一些垃圾代碼也是正常的,但出現(xiàn)”虎軀一震“的代碼就比較少見(jiàn)了,對(duì)”虎軀一震“的代碼進(jìn)行分類(lèi)那就更有趣了。

有人說(shuō),垃圾代碼也是有價(jià)值的,當(dāng)然這個(gè)觀(guān)點(diǎn)我是認(rèn)可的,因?yàn)槟愕呐判刮镆彩怯袃r(jià)值的,只是這個(gè)價(jià)值用在哪里。

還有補(bǔ)充一句,文中案例均為虛構(gòu),如有巧合,請(qǐng)來(lái)打賞!

1

干垃圾 | 虎軀一震代碼

虎軀一震?被嚇一跳算不算?反正我再看到那段代碼,我的表情大概是這樣的:

有一次我開(kāi)了一個(gè)網(wǎng)站,網(wǎng)頁(yè)半天沒(méi)有反應(yīng),頁(yè)面的右下面有一個(gè)”清理緩存“的超鏈接,于是就好奇的點(diǎn)了一下,沒(méi)想到它立刻就彈出了清理完成!

作為一名老司機(jī),習(xí)慣性的按下了:Ctrl+Shit+I 快捷鍵,就發(fā)現(xiàn)了下面這段牛X的代碼。

清理緩存

仔細(xì)查看了代碼還發(fā)現(xiàn)有這樣一個(gè)函數(shù),del_yeye(); 一時(shí)看不出來(lái)這是要干嘛,跟著代碼查過(guò)去發(fā)現(xiàn)是:

parent().parent().remove();

合著是要?jiǎng)h除爺爺,方法命名很形象、很具體,給五星好評(píng)!心中升起一片由衷的佩服,果然乃我輩之將才!

當(dāng)然我們后端程序員也不能示弱,就比如下面這段示例,代碼簡(jiǎn)潔,命名規(guī)范,沒(méi)個(gè)三五年經(jīng)驗(yàn)寫(xiě)不出來(lái)這種代碼。

這是一名資深程序員的素養(yǎng)。

當(dāng)我在知乎看到這個(gè)分享,才明白我國(guó)的編程大任,已經(jīng)順利的傳遞到了祖國(guó)的花朵。以下是小咔的經(jīng)歷:

我曾經(jīng)在我們學(xué)校辦公室里看見(jiàn)一個(gè)六年級(jí)小學(xué)生熟練的在文本文檔里敲出三行

:startstartcmdgotostart

我當(dāng)時(shí)就震驚了

然后再看他熟練的放到c盤(pán)里,改后綴為bat,然后在桌面上新建個(gè)快捷方式,更改圖標(biāo),重命名為“六年級(jí)教案大全”?!

當(dāng)我下次再見(jiàn)到他時(shí),他竟然帶著兩個(gè)人一起把整個(gè)辦公室的電腦都創(chuàng)建了這個(gè)鬼東西???

可以想象的是,這位小朋友前途一片光明。

干代碼建議處理措施:不建議、不倡導(dǎo),但可以在自己家的電腦試用!

2

濕垃圾 | 風(fēng)騷代碼

寫(xiě)這么騷的代碼,你們領(lǐng)導(dǎo)知道嗎?

比如這個(gè)程序員,寫(xiě)了一段自動(dòng)呼叫電話(huà)的程序,是這樣的:

chara;printf(“請(qǐng)輸入您要呼叫的號(hào)碼\n”);scanf(“%char”,&a);printf(“error!\n”);printf(“系統(tǒng)異常,自動(dòng)轉(zhuǎn)呼!\n”);printf(“正在撥號(hào):110”);

不知道用戶(hù)看到這段提示的時(shí)候,內(nèi)心是不是這樣:

當(dāng)然在我們這行,沒(méi)有最騷只有更騷,據(jù)說(shuō)下面這段代碼是 AI 最核心的代碼,價(jià)值1個(gè)億!!

其實(shí)我只想拿它試試能不能拿它融到一個(gè)小目標(biāo)!

濕代碼建議處理措施:發(fā)揚(yáng)光大!

3

有害垃圾 | 毀滅性代碼

三行代碼教你做人:

dropdatabaserm-rf/shutdown-hnow

竟然有程序員找到了更牛逼的玩法,比如

sudochmod-R000/

這些代碼看了不止會(huì)虎軀一震,心里還會(huì)一揪,這是在誘導(dǎo)犯罪呀。

網(wǎng)上流傳著一段【C++黨】變量定義

#defineintdouble#definetruefalse#definemaxmin#defineminmax

果然是奇才,這種牛逼的方案完全可以推廣到 PythonJava ,PHP ,Golang...,并且把它打成組件包的時(shí)候,不知道會(huì)發(fā)生什么。

真正的程序員都是要給自己留后路的,比如上線(xiàn)后甲方突然說(shuō)程序運(yùn)行效率太低了,突然要求項(xiàng)目響應(yīng)速度提升十倍!作為一名年輕的程序員,可會(huì)能哭暈在甲方爸爸的辦公室。

但是對(duì)于一個(gè)資深的程序員來(lái)講,這個(gè)都不是事兒!一行代碼搞定所有性能優(yōu)化問(wèn)題,并且可以按照百分比進(jìn)行定制!

這就是一名資深程序員的價(jià)值!

有害代碼建議處理措施:建議啟動(dòng)垃圾回收機(jī)制!

4

可回收垃圾 | 可回收代碼

一個(gè)關(guān)于for循環(huán)的凄美愛(ài)情故事

男孩

for(;;)printf("ILOVEYOU\n");

女孩回復(fù)

for(;;)printf("ILOVEYOU\n");

個(gè)人覺(jué)得,循環(huán)一百次的時(shí)候,應(yīng)該一個(gè) Thread.sleep() 或者 break,不然看著好像有點(diǎn)累。

還有一名網(wǎng)友的經(jīng)歷:

我原話(huà)和他說(shuō),你判斷一下這些參數(shù)是否為空,不為空,就存庫(kù),懂嗎?

他答,懂。

后來(lái),我轉(zhuǎn)過(guò)來(lái)看他代碼

StringA=parm.get("A");StringB=parm.get("B");

上頭是我接的參數(shù)(不是源碼)

以下是他寫(xiě)的,除了參數(shù)名不一樣,完全沒(méi)改

if('A'=='空'){}else{System.out.println("存入A");}if('B'=='空'){}else{System.out.println("存入B");}

我看完愣了一下,問(wèn),寫(xiě)完了么?

他說(shuō),差不多了。。。

然后我啥也沒(méi)說(shuō),默默接過(guò)來(lái),把代碼寫(xiě)完,然后給頭說(shuō)了

第二天,這小伙就接到HR通知,明天不用來(lái)了。

其實(shí)這個(gè)程序員還是可以在培養(yǎng)的,也就錯(cuò)了兩個(gè)地方而已,這個(gè)老程序員太認(rèn)真了。

可回收垃圾建議處理措施:回收加工再利用。

5

牛逼的代碼

其實(shí)人生中最牛逼的代碼是:

publicclassTest{publicstaticvoidmain(String[]args){System.out.println(“HelloWorld”);}}

當(dāng)輸出了 Hello World 的時(shí)候,18歲的我感覺(jué)到了自己與同齡人的不同,那種自豪感,那種快樂(lè)油然而生。仿佛那不是一段冷冷的代碼,而是我人生的方向標(biāo)。至此,紀(jì)念我程序生涯的開(kāi)始。

在我 22 歲的時(shí)候,又通過(guò)一段代碼,成功脫單........,代碼運(yùn)行后的效果圖如下:

當(dāng)然為了大家的單身事業(yè),我在網(wǎng)上尋找了很久,找到一份成品,需要的朋友可以在公號(hào)內(nèi)回復(fù):表白,即可獲取。

6

結(jié)束語(yǔ)

其實(shí)各個(gè)公司都存在一定的祖?zhèn)鞔a,這些代碼就是一個(gè)垃圾寶庫(kù),有時(shí)候你根本不知道它是在干嘛,甚至覺(jué)得它幾百年可能都沒(méi)有使用過(guò),但最關(guān)鍵是不敢動(dòng)!

別問(wèn)我怎么知道的!

自此以后,遇到一些看著很奇怪的代碼壓根兒碰都不敢碰。

有時(shí)候心血來(lái)潮改點(diǎn)東西……代碼從頭錯(cuò)到尾……

有時(shí)候當(dāng)你只刪了一行代碼時(shí),可能會(huì)發(fā)生下面這種情況

你說(shuō)哪家公司完全沒(méi)有垃圾代碼,我是不信的!如果有,那就是剛成立的。

警告:文中所有代碼均收集于網(wǎng)絡(luò),文中故事皆為虛構(gòu),如果雷同,請(qǐng)來(lái)贊賞。

請(qǐng)勿將文中代碼應(yīng)用于任何場(chǎng)景中,個(gè)人娛樂(lè)謹(jǐn)慎嘗試??!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29806

    瀏覽量

    268106
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68234
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    949

    瀏覽量

    29744

原文標(biāo)題:程序員垃圾代碼分類(lèi)指南

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人工智能分類(lèi)垃圾桶原理

    人工智能分類(lèi)垃圾桶原理,Hello,大家好,作者終于考完研了,現(xiàn)在開(kāi)始更新自己以前的科研項(xiàng)目來(lái)供大家一起學(xué)習(xí)參考,開(kāi)源共享,,歡迎加油一起學(xué)習(xí),一起開(kāi)源中國(guó)。今天共享的開(kāi)源項(xiàng)目是,利用python中
    發(fā)表于 07-21 07:48

    基于51單片機(jī)的一個(gè)語(yǔ)音識(shí)別分類(lèi)智能垃圾桶設(shè)計(jì)

    編寫(xiě)語(yǔ)音模塊(部分代碼)語(yǔ)音模塊串口調(diào)試結(jié)果51單片機(jī)代碼(部分代碼)項(xiàng)目展示基本介紹這個(gè)一個(gè)基于51單片機(jī)做的一個(gè)語(yǔ)音識(shí)別分類(lèi)智能垃圾桶,
    發(fā)表于 11-18 07:19

    垃圾分類(lèi)系統(tǒng)機(jī)械結(jié)構(gòu)是怎樣去設(shè)計(jì)的

    垃圾分類(lèi)系統(tǒng)機(jī)械結(jié)構(gòu)是怎樣去設(shè)計(jì)的?垃圾分類(lèi)系統(tǒng)的上下位機(jī)是如何進(jìn)行通信的?
    發(fā)表于 12-21 06:43

    芯片裝進(jìn)垃圾桶 物聯(lián)網(wǎng)助力垃圾分類(lèi)

    單位(小區(qū)) 試點(diǎn)垃圾分類(lèi)的進(jìn)展情況如何?帶著這些問(wèn)題,記者近日走訪(fǎng)了福田區(qū)多個(gè)分類(lèi)試點(diǎn)單位,就垃圾分類(lèi)工作的開(kāi)展、進(jìn)展、困難等
    發(fā)表于 12-06 18:00 ?521次閱讀

    如何使用機(jī)器視覺(jué)技術(shù)進(jìn)行垃圾分類(lèi)

    垃圾一直是讓各個(gè)國(guó)家頭疼的問(wèn)題,尤其對(duì)于人口過(guò)億的人口大國(guó)。其中,垃圾分類(lèi)被視為一項(xiàng)有效的推廣措施,不過(guò),并非所有人明確「可回收」與「不可回收」的定義,或者說(shuō)對(duì)垃圾需要有更清晰的劃分。
    的頭像 發(fā)表于 07-06 11:13 ?6362次閱讀

    如何利用物聯(lián)網(wǎng)為垃圾分類(lèi)

    物聯(lián)網(wǎng)的應(yīng)用,使智能垃圾分類(lèi)回收機(jī)能對(duì)各種垃圾進(jìn)行精準(zhǔn)分類(lèi)、分析、跟蹤以及處理等。
    發(fā)表于 07-08 14:16 ?4961次閱讀

    “你是什么垃圾?”垃圾分類(lèi)機(jī)器人是否成為未來(lái)垃圾分類(lèi)的福音?

    “你是什么垃圾?”這是上海乃至全國(guó)大媽的垃圾拷問(wèn)通用語(yǔ),垃圾分類(lèi)機(jī)器人能否成為未來(lái)垃圾分類(lèi)的人類(lèi)
    的頭像 發(fā)表于 07-17 14:53 ?2891次閱讀

    人都分不好垃圾,機(jī)器能分好嗎?

    垃圾分類(lèi)可以更好地保護(hù)我們的環(huán)境衛(wèi)生,為了讓大家能夠正確對(duì)垃圾進(jìn)行分類(lèi),官方發(fā)布了垃圾
    的頭像 發(fā)表于 07-18 11:37 ?7546次閱讀

    垃圾分類(lèi)”火了!垃圾分類(lèi)企業(yè)準(zhǔn)備好了嗎?

    最近“垃圾分類(lèi)”火了,皆因在上海正式將垃圾分類(lèi)入法后,全國(guó)46城也將逐步建立生活垃圾處理系統(tǒng),而上海之后最快行動(dòng)的是北京。
    的頭像 發(fā)表于 07-22 11:39 ?3203次閱讀

    “VR”和“垃圾分類(lèi)”的合作

    “VR”和“垃圾分類(lèi)”的跨界合作
    的頭像 發(fā)表于 08-26 16:10 ?2876次閱讀

    “全國(guó)垃圾分類(lèi)”服務(wù)上線(xiàn)微信 可查看生活垃圾分類(lèi)標(biāo)準(zhǔn)和投放要求

    12月1日,《生活垃圾分類(lèi)標(biāo)志》標(biāo)準(zhǔn)正式實(shí)施。原本隨手一丟的垃圾,如今讓很多人犯了難。好消息是,微信如今也能“查垃圾”了”。
    的頭像 發(fā)表于 12-20 09:02 ?2235次閱讀

    人工智能是如何將垃圾分類(lèi)

    AI識(shí)別垃圾,主要是通過(guò)對(duì)攝像機(jī)對(duì)垃圾中的物品進(jìn)行識(shí)別,一旦識(shí)別到其他垃圾,設(shè)備將會(huì)自動(dòng)報(bào)警提示用戶(hù),從而讓用戶(hù)對(duì)垃圾
    發(fā)表于 03-01 17:17 ?4768次閱讀

    這款智能垃圾分類(lèi)箱跟普通的垃圾箱有何區(qū)別?

    新投入使用的這款智能垃圾分類(lèi)箱跟普通的垃圾箱有何區(qū)別?眾所周知,垃圾可分為可回收物、易腐垃圾、其他垃圾
    的頭像 發(fā)表于 04-26 09:58 ?5018次閱讀

    垃圾代碼應(yīng)該怎么寫(xiě)

    在 GitHub 上有一個(gè)新項(xiàng)目,它描述了「最佳垃圾代碼」的十九條關(guān)鍵準(zhǔn)則。從變量命名到注釋編寫(xiě)。這些準(zhǔn)則將指導(dǎo)你寫(xiě)出最亮眼的爛代碼。 為了保持與原 GitHub 項(xiàng)目一致的風(fēng)格,下文沒(méi)有進(jìn)行
    的頭像 發(fā)表于 01-18 11:08 ?1962次閱讀

    VR環(huán)保教育 | 全民垃圾分類(lèi)虛擬仿真互動(dòng)體驗(yàn),游戲化場(chǎng)景輕松學(xué)會(huì)垃圾分類(lèi)

    在我們的日常生活中,垃圾分類(lèi)已成為一項(xiàng)重要的公民責(zé)任。然而,由于缺乏對(duì)垃圾分類(lèi)的深入理解和相關(guān)知識(shí),許多人在實(shí)踐中往往感到困惑和挫敗。為了解決這個(gè)問(wèn)題,一種創(chuàng)新的解決方案應(yīng)運(yùn)而生:全民
    的頭像 發(fā)表于 08-28 15:41 ?910次閱讀
    VR環(huán)保教育 | 全民<b class='flag-5'>垃圾</b><b class='flag-5'>分類(lèi)</b>虛擬仿真互動(dòng)體驗(yàn),游戲化場(chǎng)景輕松學(xué)會(huì)<b class='flag-5'>垃圾</b><b class='flag-5'>分類(lèi)</b>