这几天,又发生了一个悲剧。..据说他是一名Java程序员,月薪9K。因为老板让他写一个排序算法,他接着写了一段蛰伏的排序算法,然后就被老板炒掉了……排序算法的代码大概是这样的:这段代码哪里出了问题?这个程序员就更蠢了。他使用了如此多的概念来对可以用一行简单的Arrays.sort来完成的事情进行排序。把完整代码贴在循环线程睡眠多线程下面:/***WeChat公众号:JavaTechnologyStack*/publicclassArraySortimplementsRunnable{privateintnumber;publicArraySort(intnumber){this.number=number;}publicstaticvoidmain(String[]args){int[]numbers=newint[]{102,338,62,9132,580,666};for(intnumber:numbers){newThread(newArraySort(number)).start();}}@Overridepublicvoidrun(){try{Thread.sleep(this.number);System.out.println(this.number);}catch(InterruptedExceptione){e.printStackTrace();}}}好在数量少,好在sleep是毫秒级的。如果数字很大,如果睡眠时间是秒,那么排序需要多长时间?按理说他的程序没问题,为什么老板要开除他?应用程序出现bug不是很正常吗?但他的排序思想,绝对不可能写出这么隐蔽的bug,创造性地发明了“休眠排序”算法。我不知道系统中有多少这样的陷阱。如果他不被解雇,谁应该被解雇?或许他应该看看这篇关于排序的文章:《图文带你了解 8 大排序算法》。说起这个程序员,让我想起最近review代码时的几个坑,真是哭笑不得。..例1:if(flag==false){returntrue;}else{returnfalse;}不可以直接返回flag吗?这样写,逻辑就写错了。例2:if(...)abc多段代码,if不加{},然后格式化成:if(...)abc,导致业务逻辑严重bug,无语?精彩的还有很多,看代码真的很累。..
