程序員「迷惑代碼」大賞

談到程序員,對於外行人來講一向的印象就是格子衫大褲衩外加人字拖,蓬頭(禿頭)垢面黑眼圈,還有就是「人傻錢多死得快」🤣,這是外界對程序員固有的思想,可是做爲新世紀的程序員,咱們可沒那麼邋遢,白襯衫西裝褲黑皮鞋,整潔的髮型,這纔是新一代碼農😎前端

那對於咱們內行人來講呢天天接觸最多的就是代碼,代碼是程序員的一輩子摯友,一入代碼深似海,因此代碼也是評判一個程序員水平的標準。代碼的簡潔程度,API使用,代碼邏輯,註釋等都是評定代碼的好壞...代碼讓人看了舒服就是好代碼。java

可是不一樣的程序員在職業生涯的不一樣階段可能會寫出不一樣水平程度的代碼,今天咱們就來欣賞一下幾段使人迷惑的代碼,無關品評,博你一笑,有則改之無則加勉。程序員

 

No.1

這段代碼從redis獲取一個set數據類型的集合,拿到全部集合元素smembers,而後迭代,使用一個int型的count計數器記錄元素個數,而後返回。web

乍一看,這段代碼沒什麼問題,對吧?仔細一看,就發現這段代碼這樣寫好傻啊!😵面試

最明顯的就是使用迭代的方式計算元素個數,怕是不知道java中set集合有一個叫作size()的方法吧,直接就能返回元素個數啦。而後吶?還有沒有問題,熟悉redis的讀者都知道redis的set數據類型也有本身的API啊,咱們想得到元素個數直接jedis.scard(key)就OK啦。暈,既然用redis了,怎麼不想着把redis的基本使用搞搞清楚呢。加油啊,老弟redis

 

No.2

再來看下第二段代碼,這段代碼的大體意思是記錄某個業務功能的每個月的用戶訪問量,首先接收一個前端上送的月份值,拼接成一個key,而後獲取當前用戶的用戶ID,把用戶ID存到redis的set數據類型中(自動去重),而後再經過scard返回用戶訪問量(在被告知有scard這個命令後學會用啦)。數組

乍一看,這段代碼沒什麼問題吧,該用的API都用了,不再是傻傻的循環統計用戶數了。沒那麼簡單吧,把業務邏輯先和產品經理確認清楚吧老弟。相同的月份每一年都有,第二年怎麼辦呢?月度訪問量一直都能查看嗎仍是過一段時間看不了以前月份的了?這些都是要確認清楚的。緩存

No.3

繼續看第三段代碼,大體意思是要從 itemList 中剔除掉一些元素,哪些元素呢,就是元素的 code 屬性不在 codeSet 中的元素,經過兩個for循環,首先遍歷itemList取出每一個元素,拿出來元素的code屬性再遍歷 codeSet ,判斷相同時把元素添加到新的list中 。app

。。。內層循環不必,codeSet.contains(code);一個API就搞定了,判空什麼的也沒加。分佈式

上面三個是本人親身經歷,公司新來的同事(兩個多月了)寫完代碼讓我進行代碼檢查發現了幾個比較低級的錯誤,來時經理告訴我這是高級人員讓我帶帶,代碼寫的可不高級啊。

 

No.4

第四段這個吧,以前在網上流傳過一段時間,說是去面試作的筆試題,題目是對給定的int數組進行排序。

這樣寫的哥們腦洞真的大,關鍵是還實現了

哈哈。。。不知是段子仍是真的。。

 

No.5

第五段是前端的HTML,這段代碼有一種哲學在裏面。邏輯毫無漏洞,爲何說我代碼不行。兄弟應對客戶提出的【清緩存】的需求,怪不得你寫代碼快呢。

哈哈,欺負客戶不懂代碼嗎?

 

No.6

這段代碼思路也是異常清奇,大佬是在佩服!

 

No.7

還有人說沒有人在註釋裏對話嗎?好比一我的說:

//這一段是誰寫的?

而後另外一我的在下面接:

//是我,怎麼了

而後故事就開始了…

No.8

聽女友講,他們公司有一女開發,作個一簽到送積分的活動,寫了倆接口給前端調,一個簽到接口,一個加積分的接口,簽到成功後告訴前端成功了,前端再調加積分的接口。

 

END

項目組中各個開發的水平不一,看到「迷惑」的代碼你們也不要驚慌,若是知道是誰寫的就偷偷告訴他吧。你還知道哪些搞笑代碼呢,留言評論吧。

以上就是今天的所有內容了,本文無關品評,博你一笑,有則改之無則加勉。但願各位都寫出優質代碼,走向人生巔峯!!


往期熱文:

歡迎關注,謝謝支持

相關文章
相關標籤/搜索