MiniSQL的验收结束了,回想一下这段经历,也有几分感慨,于是写下这篇像是日记一样的东西,记录一下此刻的心情。
一开始拿到整个框架的时候,因为拖了很久没有开工,真的是不知道从何下手,光是一个自定义的bitmap,我都要看几遍才知道它里面定义的函数是干嘛用的,五一那几天真的是在电脑前一坐就是一整天,经常是坐到晚上9点,饿得发昏然后出去吃点东西。
相对扎实的代码功底最终还是为我阅读整个框架提供了一定的保障,在没有架构图的情况下,我还是把各个类之间的关系摸了个大概,但也仅限于此,后面的进展也并不如我想象般顺利,中间的进度一再停滞,而且由于各种其他事情的安排,让整个项目又被搁置了下来,当我再度拾起它的时候,离DDL已仅有不到两周(这是整个夏学期的大项目),此时我想的是,去网上找过去几年的代码抄一下吧,起码先让他能跑起来,好消息是,我确实找到了几乎相同的代码仓库,坏消息是,我没写的地方都是不同的。
本着“代码裁缝”的精神,我把不同的地方的代码删删改改缝缝补补,试图塞进框架里,然而,各种各样奇奇怪怪的错误蜂拥而至,当我最为得力的助手——GPT4也无法给出答案的时候,我曾一度陷入破防阶段,我曾一度想过放弃——这不就占总评18分么,有些地方不能用就不能用吧,大不了让他扣分——然后又在挣扎,我这门课摆烂,是否会影响我转专业?老师看到我这门课糟糕的成绩,是否会认为我不适合这个学科?想到这里,我甚至陷入了深深的自我怀疑,难道我的上限就止步于此了吗,那些曾经的骄傲是否只是一个自大者的年少轻狂?……再说了,这也不是我一个人的作业,我摆烂了我的队友怎么办?
这里就不得不提一嘴我的队友毓哥。毓哥是我高中一起打过竞赛的学长,转专业到CS,他对数据库相关原理的理解确实比我透彻,而且做事效率很高,重点是,项目开发流程,代码风格都很规范,和他合作真的非常幸运。
又说回来,在这种浮躁的焦虑下,我的进度迟迟没有推进,想要改bug,然而却又不愿意沉下心来思考问题出在哪里,就是用不同的写法试来试去,结果就是增加了越来越多新的bug,在仅剩1周的时候,我猛地意识到这样不行,这样只是在浪费时间,于是,我咬着牙给自己安排了一整天的时间,强迫自己去认真阅读每一行代码,去揣测每一个成员函数的设计用意,这个过程真的很痛苦,痛苦到几乎摧毁我过去对于软件开发领域的全部热爱:很多的成员函数定义的不明所以,很多的变量之间仿佛毫无逻辑。我好像面对着一盘散沙,不知道怎么才能把他们组织到一起。
真正的转变发生在写 BPlusTree
的时候,前面提到我在当一个“代码裁缝”,然而这一部分内容被做了修改,我只能通过把一些“过时”的代码修改一通,试图让他可以运行,然而现实很残酷,别说跑通测试了,就连编译都过不去,直到我在写 LeafPage
的 KeyIndex
函数时,注释里写了“二分查找”,而Copy来的代码中写的是顺序查找,我当时想的是,只把这一部分内容改掉应该很容易吧?于是我就开始改,但是 template<typename TKey>
在代码中被替换成了 GenericKey
,为了修改,我就点进了 GenericKey
的定义,结果看到的是这样一段代码:
|
|
一个长度为 0 的数组?我上网搜了搜相关的用法,柔性数组,一个之前未曾见过的东西出现在搜索结果,而且看起来使用的还很普遍,看到解释后的一瞬间我就惊叹于这种巧思的精妙与优美。
这直接促使我能够沉下心来去读原本一点看不进去的代码,不知不觉间就沉醉于框架作者宛如魔术师一般精妙的设计之中,我开始一点一点的修复被我的“裁缝行为”摧毁得零零碎碎的逻辑,打断点,看memory view,打Log,说来惭愧,一直以来在“教”人调试的我,直到今天才真正用上这些调试工具。
我完全没有发现我完全沉浸在了完善整个逻辑的过程中,那些原本被我以为是一盘散沙的东西逐渐被我串联起来,每次看到一个一开始不知道有什么用的函数或者变量在某个时候自然而然地被使用的时候,那种感觉真的是一种难以形容的美妙,最后,当整个逻辑链跑通的时候,我真的感受到了一种非常非常令人陶醉的感觉,好像一本逻辑严密的小说的伏笔被层层回收,那种感觉真的很难形容,也就是在这时候,我发现并不是我不会写,而是……emm……
现在各种AI工具层出不穷,原来一个小时的工作量,现在用AI只需3分钟就能做完,我一边说着物欲横流人心浮躁,一边加入着物欲横流人心浮躁的队伍,我惊讶的发现我已经很少思考,任何需要认真思考的东西,我要么抄答案应付了事,要么用AI替我决策,我精妙的提升引导AI回答的技术,掌握各种prompt,只是为了让AI给我更好的答案,但却没有耐心去判断AI生成的内容是否有逻辑问题,当我发现这一点的时候,我真的沉默了,我在批判的,在讥讽的,原来就是我自己,我也会成为那种丧失思考能力,被困在精妙的数字囚笼中的人么……我庆幸我还保有对一直以来的爱好的坚持,这份浮躁并没有将其摧毁,它反而唤醒了我,让我意识到自己正在逐步成为一个没有思想的人,但愿我能够一直保持这份热爱。