要炸了!剛寫完這段程式碼,就被開除了

千鋒Python唐小強發表於2019-11-22

這幾天,又來了一個悲劇。。。

據說是一個月薪 9K 的 Java 程式設計師,因老闆讓他寫一個排序演算法,然後他就寫了一段屌炸tian休眠排序演算法,接著他就被老闆開除了……

排序演算法程式碼大概是這樣的:

要炸了!剛寫完這段程式碼,就被開除了

這段程式碼有什麼問題?

這個程式設計師更屌啊,數字排序,用一行簡單的 Arrays.sort 就搞定的東西,他竟用到了這麼多概念。

1、迴圈

2、執行緒休眠

3、多執行緒

下面貼上完整的程式碼:

/**
 * 微信公眾號:Java技術棧
 */
public class ArraySort implements Runnable {
 private int number;
 public ArraySort(int number) {
 this.number = number;
 }
 public static void main(String[] args) {
 int[] numbers = new int[]{102, 338, 62, 9132, 580, 666};
 for (int number : numbers) {
 new Thread(new ArraySort(number)).start();
 }
 }
 @Override
 public void run() {
 try {
 Thread.sleep(this.number);
 System.out.println(this.number);
 } catch (InterruptedException e) {
 e.printStackTrace();
 }
 }
}

還好是數字小啊,還好休眠是毫秒啊,要是數字大,要是休眠時間是秒,那要等多少休眠時間才能排序完?

按道理,他的程式也沒問題啊,老闆為什麼要開除他?應用程式中出 BUG 不是很正常的事嗎?但他這種排序思維,能寫出這樣的隱藏 BUG 也是絕了,創造性的發明了 "休眠排序" 演算法,系統裡面還不知道有多少這樣的坑,不開除他開除誰啊?

或許他應該看一下排序這篇文章:《圖文帶你瞭解 8 大排序演算法》。

說到這個程式設計師,讓我想起了最近審查程式碼時候的幾個坑,真是讓人哭笑不得。。。

示例1:

if(flag == false){
 return true;
} else {
 return false;
}

直接 return flag 不行?寫這麼繞,還把邏輯寫錯了。

示例2:

if(...)
 a
 b
 c

多段程式碼,if 不加 {},後面格式化成了:

if(...)
 a
b
c

這樣導致業務邏輯有嚴重的 BUG,無語了吧?還有更多奇葩的,審查程式碼真心累。。。

你還見過哪些更奇葩的程式碼?歡迎留言分享。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2665391/,如需轉載,請註明出處,否則將追究法律責任。

相關文章