img

一次不太好的参赛体验,不过还是学到了很多新的东西

这个数据库比赛听说还可以?前段时间发现身边不少人都在报名参加,于是拉了两个队友就参赛了。

初赛是 miniob,实现点基础的功能然后在线测评得分。一开始写真的是折磨,单配环境都要花去不少时间。虽然官方提供了一些方法,但我在配的时候还是遇到了一些神秘的 bug… 另外,项目已有代码比较多,官方给的文档又只有那么点,研究明白整体架构也花了不少时间了(虽然最后发现这代码确实不咋的,和 15-445 之类的优质 lab 相比…) .

前面几个题基本都是边看边写,一边到处调试理清逻辑,到处下断点看调用栈研究整体框架,一边尝试加点代码看看效果如何,依据它已有的测试框架辅助判断。虽然 ob 的代码抽象程度有点高,已有的模块也比较复杂,但是只关注要实现的功能的话,还是比较好下手的。完成了前面几个简单的题目后,对整体代码也比较熟悉了,后面基本就是思考,设计,写代码,测试,逐个突破了。看了看排行榜别的队的进度,每天爆肝一下还是能进前 50 的,决赛有望!

But,到了后面别的事情有点多,感觉自己写不过来了。奈何队友也不给力,给他们分配了一些简单的任务,还详细讲解了我知道的所有东西,他们还是基本没写出东西来… 最后几天的时候别的队伍的分数都是猛猛的涨,满分的队伍也有几个,我们队还是原来我一个人爆肝的情况,排名自然就掉出前 50 了。当时正好也有别的事情要忙,看着排行榜上的卷王们,哎,摆了。

不过没想到最后出决赛名单的时候,由于有抄袭违规之类的情况有几个队伍被取消了,决赛圈的分数比我们队就高 10 分,我去,早知道还是多写一题了,太可惜啦!

当然收获还是不少的,从词法分析语法分析到查询的执行,我对数据库的整体架构应该是更熟悉了。七十多次 commit,大型项目的开发经验也收获不少。还有参赛送的周边礼品。可惜没能晋级,下次再战!