学校网站源码
我们学校那套老网站源码,学校是网站2013年一个外包公司留下的。PHP写的源码,连框架都没用,学校全是网站原生代码,注释还全是源码拼音。我去年接手维护的学校时候,光是网站读懂那个登录逻辑就花了三天。你猜怎么着?源码密码加密用的是MD5,连盐都没加。学校这放在现在,网站简直是源码裸奔。
但就是学校这么个破源码,硬是网站撑了十年。全校三千多师生的源码成绩查询、课表下载、通知发布,全跑在这上面。最神奇的是,它居然没崩过。我翻过服务器日志,最狠的一次是选课当天,同时在线两千人,数据库连接池直接打满,但它就是没宕机。你说气不气人?我后来用Spring Boot重写过一版,自认为优化得挺好,结果一上线就内存溢出,查了半天是连接没释放。
老代码里有个函数叫get_stu_info(),里面套了七层if-else,每个分支还都不一样。我试着重构,发现根本动不了——每个分支都对应着不同年级的特殊逻辑,比如说2016级以前的学生,学号是10位,之后变成12位,还混着几个专升本进来的,学号格式又不一样。你要是把这些分支合并了,保准有人的成绩查不出来。
后来我学聪明了,不重写了。就给它打补丁。加了个Redis缓存层,把热门查询扛住;再用Nginx做了个反向代理,把静态资源全扔CDN上。数据库还是那个MySQL 5.5,连字符集都是latin1,存中文全靠UTF-8转义。我给领导提过建议,说这玩意儿该换了,他反问我一句:换了你保证不出事?我哑了。确实,谁也不敢保证。
有意思的是,这源码里藏了不少前任维护者的痕迹。有个文件叫backup_2016_final_v3.php,点开一看,里面全是注释掉的代码,中间夹着一行:// 别删这个,删了教务处的报表就导不出来了。还有一段在send_notice()函数里,写着// 这里不要用mail(),会被当垃圾邮件,用smtp。这些留言就像路标,告诉你哪些坑前人踩过。
前几天,学校说要搞智慧校园,新系统终于批下来了。我负责对接旧数据,打开那个老数据库,看着一张张表名全是tb_开头的,字段命名乱七八糟,有的叫name,有的叫xm,还有的直接叫col1。我一边导数据一边想,这破源码就像学校的老教学楼,墙皮掉了,水管锈了,但里面每一间教室都坐着人,每一盏灯都亮着。你说它落后?可它从来没耽误过事。
最后我留了个心眼,把整套源码连同服务器镜像,打包存到了私有仓库里。不是怕新系统不行,是怕万一哪天需要查个十几年前的记录,还得靠它。这玩意儿丑,但它是活的。
(责任编辑:热点)














