好多好多年的码农,来记录一下好多好多年前写下的蠢蠢的代码
1.萌新语言混乱
那还是IE6的年代,那还是model1的年代。jsp打天下,在里面掺杂着css、html、javascript、java等多种语言。才入职的萌新接到了第n个需求。要求将table中的row隔行换色,用javascrip实现。开心的写下了类似如下的代码。
<script language="javascript">
function xxxxxx(){
var rowsSize =10;
for(int i=0;i<rowsSize;i+=){
if(i%2==0){
//XXXXXXXX
}else{
//XXXXXXXX
}
}
}
</script>
乍一看逻辑没问题吧,但是就实现不了要的效果。请来老师傅调试了两小时.....
javascrip里面没有int,没有任何一个时刻那么恨弱数据类型.......
2.不讲武德大乱斗
后来吧,大家觉得jsp太弱比了,出现了model2,mvc啥的。各种设计模式开始各种露头,前端影响最大的莫过于jQuery的出现。一个$('#id')太帅了有么有。俺也想用jQuery啊,但是项目组架项目经理不让添加jQuery库啊,只允许使用YUI。于是在小小的公共js里添加了小小的一行代码。
function $(id) {
return document.getElementById(id);
}
var id = $("id");
终于有一天,项目经理扛不住大家的呼声,准备集成jQuery。但是他不知道我上面代码的存在^_^.于是诡异的一幕出现了,$('#id')死活取不到值。项目经理开始加班集成jQuery。两天后项目经理无奈的说,大家用jQuery的时候,取值的时候不要用$符号,用 jQuery('#id')。
后来过了有半年,有个小孩来接我的班。他看代码的时候问我。为啥别人代码里jQuery取值都不用$符,而你用$符?我给他留下了一个神秘的笑...
多少年以后,老项目经理联系到我(找到我那段代码了)....
3.又见死循环
后来model2越来越成熟了,ssh大行其道。hibernate多爽啊,不用写sql实现增删改查。但是实际情况吧,推崇不写sql的hibernate的我感觉挺傻的,谁家的业务就让你写单表的增删改查啊。接到一个需求,当某工单状态变为xx的时候,更新相关其他工单的状态为xx 。
//源代码肯定是没了。大概就这么个意思
List<ID> ids = Hutil.exceuteHql("select xx.id from xx where xx.status=?",xx);
String updateHql="update xx set status=2";
if(ids.size()>0){
updateHql =updateHql+" where xx.id in"+StringUtil.list2String(lds,',');
}
Hutil.exceuteHql(updateHql);
懂代码的大概都看明白了,update数据没添加where条件。但是结果可能和你想象的不一样。因为程序本身是逻辑bug,不是程序bug,它是能运行的。测试同学在测试环境测试他都能正常用的(测试环境数据量小)。但是到生产环境,数据有几百万,update执行不动了...当运营人员点了保存按钮之后,就是无限制的等待....所有人一起等待(锁表,当时的数据库是Informix)..... 所有 业务都停了。大牛们其上,查了一天,终于找到这段代码....
4.一切为了甲方
公司决定我能抗点事了,派到某地航天做外包项目。实现了一个奇葩的需求。代码放在那正常项目里,看起来就很蠢。需求是领导不会使用浏览器的刷新功能。要求在页面上添加一个刷新按钮,还要红色好找...
<!DOCTYPE html>
<html>
<head>
<style>
.myButton {
background-color: red;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
}
</style>
</head>
<body>
<button class="myButton" id="refreshButton">刷新页面</button>
<script>
document.getElementById("refreshButton").addEventListener("click", function() {
location.reload();
});
</script>
</body>
</html>
大概是这样子
5.眼中有码心中无码