剛寫完排序算法,就被開除了…

剛寫完這段代碼,就被開除了……java

棧長前些天剛寫完上面這篇文章,沒幾天,又來一個悲劇。。。程序員

聽說是一個月薪 9K 的 Java 程序員,因老闆讓他寫一個排序算法,而後他就寫了一段屌炸天的休眠排序算法,接着他就被老闆開除了……算法

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

這段代碼有什麼問題?多線程

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

一、循環this

二、線程休眠spa

三、多線程線程

下面貼上完整的代碼:code

/**
 * 微信公衆號: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,無語了吧?還有更多奇葩的,棧長審查代碼真心累。。。

你還見過哪些更奇葩的代碼?歡迎留言分享一下。

有共同興趣志向的,均可以關注博主的公衆號:Java技術棧(id:javastack)。

本文原創首發於微信公衆號:Java技術棧(id:javastack),轉載請原樣保留本信息。

相關文章
相關標籤/搜索