大概是2013年深圳某个小公司做的一个外包,是个Web的MIS系统。甲方要界面改版,
但是乙方不想接这个活,于是变成了私活。打开页面一看,除了90年代末风格,初看只是
丑了点,并没有多么惊人。
直到打开代码开始分析的时候,我伙呆!先来点小槽点
1. header和side nav全部是用frame嵌入的
2. josn这个单词看起来很眼熟是吧^_^
3. 所有的js和css都是直接写页面内的
4. 海量onclick=xxx和attr代替css
5. js是没有封装的,一个函数可以好几百行
6. ajax取来的数据不是json,是要eval才能反序列化的js
7. ajax对应的后端是自己纯手动拼出来的字符串
真正雷人的是,这家伙不懂什么是循环,也不懂什么是对象
比如这样一个数据模型
class Student {
int id;
int age;
String name;
}
前端需要的是一个班级的所有人的信息,正常人应该会返回类似这种结构
{
error: 0,
data: [{"id": 1, "age": 15, "name": "Tom"}, ...],
// data: {"1": {"id": 1, "age": 15, ...}, ...},
}
你绝对想象不到这个人是怎么传的...,给你涨涨姿势
{'TotalCount': 3,
'data1': [{'age1': 15, 'name1': 'Tom'},
{'age2': 14, 'class1': 2013, 'class2': 2014, 'name2': 'Jack'}],
'data2': [{'age3': 14, 'name3': 'Jerry'},
{'age4': 15, 'name4': 'Peter'},
{'age5': 13, 'name5': 'Joey'}],
'data3': [{'age6': 15, 'name6': 'Barry'}]}
其中data1里出现的class1和class2是无关信息,但是也掺杂其中
数据定义是神奇的和雷人的,数据的解析更是雷声不停呐。
解析这种数据的时候,这货竟然可以几乎不用循环,你们行吗?
因为这个班的人数是固定的,学号是固定的,所以...
全部靠
if (key == "age1") {
} else if (key == "age2") {
} ....
else if (key == "age100") {
}
你没看错,有多少个学生就有多少个if-else,页面上的dom自然是提前写死的,
也是这样人肉生成的,css也是写上n个一模一样的,就这样一个页面撑到几千行了,
其实是功能很简单的页面,改版后html+css+js总共也不到原来1/10的代码
怪不得原来那家公司不接这个改版,做这个的人跑路了,其它人谁肯擦?
--
FROM 218.82.251.*