读书人

史下最烂的代码

发布时间: 2012-12-23 11:28:15 作者: rapoo

史上最烂的代码

其实本没有什么代码是“史上最烂”的,要有也只有“史上更烂”的,我想随便说说这个话题,也是源自豆瓣的一个讨论。事实上,系统复杂了被骂代码烂是一件司空见惯的事情。当然,也有一些短小的代码片段,就足以看出代码作者是个不怎么样的人。

布尔类型的使用是很容易变成最烂代码的:

123if (isTrue()) ????if (isTrue()) ????????doSomething();123if(boolVal == true) { ????..... }

有一些毫无意义的注释:

1return 1; // 返回 1123//如果标志为真,就返回trueif(flag)????return true;

更无意义的是这样的变量命名:

12public static final int ONE = 1;public static final int TWO = 2;

也有人说,最烂的代码片段应该是这样的才对:

123456789????????????????????????????????}????????????????????????????}????????????????????????}????????????????????}????????????????}????????????}????????}????}}

还有曾经被骂到遍体流脓的12306.cn,代码节选:

12345678910111213141516171819202122232425262728293031323334var sig = 0;if(searchwordl.indexOf("'") > -1 || searchwordl.indexOf("\"") > -1 || searchwordl.indexOf("%") > -1 || searchwordl.indexOf("#") > -1 || searchwordl.indexOf("&") > -1 || searchwordl.indexOf("*") > -1 || searchwordl.indexOf("(") > -1 || searchwordl.indexOf(")") > -1 || searchwordl.indexOf("@") > -1 || searchwordl.indexOf("`") > -1 || searchwordl.indexOf("/") > -1 || searchwordl.indexOf("\\") > -1 || searchwordl.indexOf(",") > -1 || searchwordl.indexOf(".") > -1 || searchwordl.indexOf("=") > -1 || searchwordl.indexOf("<") > -1 || searchwordl.indexOf(">") > -1)sig = 1;?searchwordl=searchwordl.replace("'","");? //searchwordl=searchwordl.replace(" ","");searchwordl=searchwordl.replace("%","");searchwordl=searchwordl.replace("#","");searchwordl=searchwordl.replace("&","");searchwordl=searchwordl.replace("*","");searchwordl=searchwordl.replace("(","");searchwordl=searchwordl.replace(")","");searchwordl=searchwordl.replace("@","");searchwordl=searchwordl.replace("`","");searchwordl=searchwordl.replace("/","");searchwordl=searchwordl.replace("\\","");searchwordl=searchwordl.replace(",","");searchwordl=searchwordl.replace(".","");searchwordl=searchwordl.replace("=","");searchwordl=searchwordl.replace("<","");searchwordl=searchwordl.replace(">","");if(searchwordl == '请输入搜索条件'){????alert("请输入搜索条件");????return false;}if(searchwordl == ''){????alert("请正确输入搜索条件");????return false;}if(sig == 1){????alert("请正确输入搜索条件");????return false;}document.getElementById('searchword').value=searchwordl;

还有JavaScript的烂代码,这实在太多了,就不贴了。越灵活的语言,越难驾驭,超级烂的代码就越容易见到。

Tiago Fernandez做过一个投票,选举最烂的Java API:

史下最烂的代码

公式是:score = (I can live with) + (Painful * 2) + (Crappy * 3) + (Hellish * 4)

结果,你猜到了吗?

史下最烂的代码

Java的框架多、语法严格,对于限制那些要来搞破坏的程序员确实有帮助。但是真要搞破坏,要限制还是限制不住。以前我接触过一个Portlet扩展类,一共好几千行,当时觉得这代码已经够烂了。可是后来我看到了5000多行的存储过程,还有7000多行的jsp页面——我以前以为Java程序员的破坏力要远远小于C/C++程序员。看来,也不尽然。

我的经历中接触到的烂代码,最常见的大概包括下面几种:

读书人网 >编程

热点推荐