一、布尔类型的利用是很随意马虎变成最烂代码的:

二、有一些毫无意义的注释:

jsp超宽自动缩略看了这段代码法式员瓦解了 网友这个比拟厉害然则我想打人 RESTful API

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

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

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

var sig = 0;

if(searchwordl.indexOf(\"大众'\"大众) &gt; -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(\公众请精确输入搜索条件\"大众);

}

if(sig == 1){

}

document.getElementById('searchword').value=searchwordl;

还有JavaScript的烂代码,这实在太多了,就不贴了。
越灵巧的措辞,越难驾驭,超级烂的代码就越随意马虎见到。

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

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

一些命名的恶习,比如“cptct”这种缩略语缩略到险些是密码电报的方法名,大概是受到Basic毒害,即便是早期的 Visual Basic 版本也在代码中逼迫履行了一些约束(如变量名的长度、模块中许可的变量数和模块的大小)。

早些年的web项目(乃至包括现在的一些小公司做的web项目),不懂解耦、不会分层,逻辑全部揉在一起,一坨屎一样。
页面模板直接访问数据库、样式代码散落在世界各地,HTML写去世在各种逻辑里。

在某些程序员眼里,“复用”==“继续”,只要有可复用的属性、公共的方法,就设法用无敌霹雳继续大法来办理,也不管适不适宜,一级又一级,末了一定是一棵伟岸无边的继续树。

无穷无尽的工具类。
这类代码比继续大法的代码好不到哪去,XXHelper、XXTools这样的静态类满山各处都是,但是复用的眼力倒是比只会继续多了一条路……

不会用标准库函数、封装好的类库。
我见过好几个这样的程序员,对付Integer、Long、Double这些数值工具类型的定义、方法险些完备不理解,倒是对String很熟习,所有的转换、校验,全部都转换成String往后完成,完成后再转回来。

上帝类。
实质是对类的职责单一不理解。
用Java、C++的程序员写出上帝类也就罢了,今年我居然听朋友说到一个写Ruby的有相称事情履历程序员写出一个巨大的上帝类来……

满大街乱跑的设计模式。
实质是过度设计。
好好一个“new Template()”非要引入工厂,再搞一个策略模式、模板模式,不过瘾,末了加上表明来实现……

大部分的JavaScript、CSS。
不阐明。

本日有同事说,代码之以是成为烂代码,很大可能是写代码的人会碰着比后来读代码的人多得多的问题,虽然写代码的人办理了大部分的问题,但是剩下的问题还是足以让代码遗臭万年。
不过我不这么看,我看到过年份比较早的VB代码、还有Delphi代码,虽然都是界面开拓用的,虽然很多理念远远不及本日,代码依然清晰易懂。

有的程序员说,工期紧、项目重,领导催得我每天吐血,迫不得已我写出了烂代码。
客不雅观缘故原由万万千万,我确实无话可说,毕竟在物质文明还非常虚弱的时候,还是不要扯精神文明的蛋。
但是,精良的程序员是有追求的,而人是会麻木的,总是把项目压力挂在嘴边的,给一个宽松的限期也不见得能如何。

还有的程序员说,唯物辩证法见告我们,任何事物都有两面性,以是我们要学习烂代码中好的设计,并且把糟糕的设计引以为戒……我说,得了吧。
烂便是烂,那么矫情干嘛!

还有便是这我总结出了一些架构视频资料和互联网公司java程序员口试涉及到的绝大部分口试题和答案做成了文档和架构视频资料还有完全高清的java进阶架构学习思维导图免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技能资料),希望能帮助到您口试前的复习且找到一个好的事情,也节省大家在网上搜索资料的韶光来学习。

资料领取办法:关注 私信关键字【资料】即可免费获取!


如果您喜好本文章,可以点击关注,每天将有更多精彩文章与您分享!