自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

代碼寫成這樣,老夫無可奈何!

開發(fā) 前端
你見過最無可奈何的代碼是什么?今天,棧長(zhǎng)就來總結(jié)一下我遇到過的一些神邏輯代碼,不一定很全,但我真心寫不出,真心讓我自嘆不如?。?/div>

 你見過最無可奈何的代碼是什么?今天,棧長(zhǎng)就來總結(jié)一下我遇到過的一些神邏輯代碼,不一定很全,但我真心寫不出,真心讓我自嘆不如啊!

[[279482]]

1、耍猴的好手段

還記得 XX 手機(jī)的搶購(gòu)活動(dòng)么,搶購(gòu)按鈕的代碼類似是這樣的:

  1. <a href="javasript:alert('搶購(gòu)結(jié)束!')">立即搶購(gòu)</a> 

活動(dòng)還沒開始就結(jié)束了。。

后面有人挖出來這段神邏輯,大家真是哭暈在廁所了,還好,搶購(gòu)買手機(jī)這種我從來不參加。。

就是在前端寫死代碼造成搶購(gòu)結(jié)束的假象,其實(shí)請(qǐng)求壓根沒有發(fā)送到服務(wù)器,或者休眠幾秒直接跳轉(zhuǎn)到搶購(gòu)結(jié)束頁(yè)面,良心點(diǎn)的,點(diǎn) 10 次有一次發(fā)到服務(wù)器就不錯(cuò)了,這樣耍猴是不是太好玩了?

眾所周知,為了提高服務(wù)器的承載能力,現(xiàn)在各類 APP、網(wǎng)頁(yè)等都會(huì)或多或少加入前端緩存,但上面這種耍猴的代碼也太無恥了。

2、豬一樣的隊(duì)友

大家有沒有見過這樣的代碼:

  1. <!-- 原價(jià) 180 元,現(xiàn)在活動(dòng)價(jià) 228 元,活動(dòng)結(jié)束后恢復(fù)原價(jià) --> 
  2. ... 

這上面的活動(dòng)價(jià)比原價(jià)還貴,真是哭笑不得……

類似這樣的代碼,一些程序員在注釋中說明活動(dòng)的內(nèi)容,又或者是把一些生產(chǎn)上環(huán)境的 IP、端口、用戶名、密碼等敏感信息把在注釋中,好隨時(shí)能切換……

真是豬一樣的隊(duì)友,這樣的程序員不開除么!?定時(shí)炸彈啊!

3、最牛逼的排序算法

據(jù)說是一個(gè)月薪 9K 的 Java 程序員,因老板讓他寫一個(gè)排序算法,然后他就寫了一段屌炸天的休眠排序算法,接著他就被老板開除了……

排序算法代碼大概是這樣的:

這段代碼的完整版解釋請(qǐng)看這篇文章:剛寫完排序算法,就被開除了…

排序排成這樣,不開除你,開除誰?

4、休眠的最高境界

  1. /** 
  2.  * 獲取未來幾天的日期 
  3.  * @param days 指定的天數(shù) 
  4.  * @author 微信公眾號(hào):Java技術(shù)棧 
  5.  * @return 
  6.  */ 
  7. public static Date getNextDays(int days){ 
  8.     try { 
  9.         // 休眠指定的天數(shù) 
  10.         Thread.sleep(days * 24 * 60 * 60 * 1000); 
  11.     } catch (InterruptedException e) { 
  12.         e.printStackTrace(); 
  13.     } 
  14.     // 休眠結(jié)束后返回日期 
  15.     return new Date(); 

獲取指定日期用休眠?寫完,已笑暈在廁所。。。

完整版的解釋請(qǐng)看這篇文章:剛寫完這段代碼,就被開除了……。

想離職找不到借口?

那還不容易,哥送你這段加強(qiáng)版,復(fù)制這段代碼,提交打包測(cè)試上線,坐等開除。

5、真就是假,假就是真

  1. boolean isBoy = user.isBoy() == true ? truefalse
  2. if (isBoy){ 
  3.     ... 
  4. else { 
  5.     ... 

布爾值可以直接拿來用,你硬要寫個(gè)三元表達(dá)式?年底績(jī)效考核了,代碼量有 KPI 么?

還有類似這樣的:

  1. if (xx1 == true && xx2 !=  true){ 
  2.     ... 
  3. else { 
  4.     ... 

還有這樣的:

  1. if (xx1 > xx2){ 
  2.     return true
  3. else { 
  4.     return false

寫得太優(yōu)雅了!

6、循環(huán)循環(huán)循環(huán)

  1. for (int i = 0; i < 1; i++){ 
  2.     ... 

一個(gè)循環(huán)也用循環(huán),曾經(jīng)就遇到過這么一段,不知所云了,要改這段代碼,還要把他叫在旁邊坐著,看著改才行。。

  1. for (;;){ 
  2.     ... 

死循環(huán)這么寫,我們就看不出來了么?

7、魔法值的真諦

曾經(jīng)檢查代碼時(shí),發(fā)現(xiàn)代碼中很多魔法值,叫同事要定義成公共常量,結(jié)果來了這么一段:

  1. private final static int ZERO = 0; 
  2. private final static int ONE = 1; 
  3. private final static int TWO = 2; 
  4. ... 

看到上面的常量定義,我真想打人,雖然魔法值是沒了,但又定義了一些沒有意義的常量,完全沒有理解修改魔法值的真諦,這和脫褲子放屁有什么區(qū)別?

上面還只是一個(gè)簡(jiǎn)單的示例,實(shí)際審查情況遠(yuǎn)比你想象的糟糕。

8、看花眼的參數(shù)

  1. Order order = new Order(orderNo, 1678.13, "CNY", 1, 3, "wx", 5, "1", 0, "8", 0, 1, new Date()); 

看到這樣的代碼,我也是醉醉的了。

我就見過同事寫出這樣的代碼,是趕時(shí)間呢,還是真的不會(huì)設(shè)計(jì)模式,一個(gè)構(gòu)造函數(shù)參數(shù)能寫這么多,且不說魔法值,這么長(zhǎng),看一眼都覺得頭大。

9、消失的異常

  1. try { 
  2.     ... 
  3. } catch (Exception e) {} 

程序捕捉了異常,卻不打印。

  1. try { 
  2.     ... 
  3. } catch (Exception e) { 
  4.     e.printStackTrace(); 

錯(cuò)誤是輸出來了,但沒有輸出到日志文件。

  1. try { 
  2.     ... 
  3. } catch (Exception e) { 
  4.     logger.info("...", e); 

日志級(jí)別用的不對(duì),去錯(cuò)誤日志文件里面死活找不著錯(cuò)誤日志。

上面的種種不規(guī)范的寫法,在生產(chǎn)環(huán)境出現(xiàn)問題時(shí),一方面導(dǎo)致排查問題艱難,另一方面,監(jiān)控系統(tǒng)也不能及時(shí)地監(jiān)控到異常。

10、神奇的if

最后一個(gè)了,壓軸了。。

來,我們一起賞析下這段神奇的 if 代碼:

  1. if(user.getFirstName() != null
  2.     if(user.getMiddleName() != null
  3.         if(user.getLastName() != null
  4.             if(user.getNickName() != null
  5.                 if(user.getShortName() != null
  6.                     if(user.getFullName() != null
  7.                         if(user.getFamilyName() != null
  8.                             if(user.getEnglishName() != null
  9.                                 ... 
  10.                                 return true
  11. return false;       

這段代碼夠奇葩了吧,一個(gè) if 能搞定的非要寫這么長(zhǎng),還縮進(jìn)得這么有層次感。。

小結(jié)

寫神邏輯代碼的人才這么多,找問題、解決問題真是太難了。

 

責(zé)任編輯:華軒 來源: Java技術(shù)棧
相關(guān)推薦

2019-06-25 10:09:42

Web攻擊機(jī)器學(xué)習(xí)網(wǎng)絡(luò)攻擊

2013-09-15 22:10:48

2021-03-16 09:40:06

手機(jī)APP應(yīng)用程序安全

2015-04-17 15:29:37

2014-09-02 10:51:19

IT技術(shù)支持職場(chǎng)

2020-04-16 14:40:02

翻譯機(jī)工具開發(fā)者

2018-09-03 23:41:24

運(yùn)營(yíng)商套餐移動(dòng)網(wǎng)絡(luò)

2009-03-04 09:47:56

微軟操作系統(tǒng)windows

2014-11-20 09:55:13

編程

2017-09-15 10:23:06

可視化Bug數(shù)據(jù)分析

2018-12-14 08:29:56

CPU編程x86

2017-11-02 15:44:11

內(nèi)存降價(jià)價(jià)格

2009-03-13 17:33:06

2011-12-05 13:33:26

2020-07-07 10:55:01

C++C語(yǔ)言代碼

2022-11-24 13:36:23

網(wǎng)絡(luò)信息

2014-07-28 10:57:56

傲游瀏覽器

2011-11-08 11:32:51

微軟Android

2012-11-07 09:51:59

Amazon宕機(jī)

2017-07-21 10:30:01

Linux故障解決思路
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)