关于我二次开发qduoj的那些天

老实说我并不觉得自己是什么技术大咖,开发这个也只是因为老师给了一个本创的题目让我们去做。当然,我并没有立即着手去做(因为懒😅),后续有个学长找我做一个oj的外包才开始一点点的去做,过程大概就像这篇博客里写的基于qduoj的二次开发

在二次开发的过程中最轻松的时候就是按照开发文档部署的时候,真的有手就行,根本不要脑子。看到一个oj网站,在自己的部署下可以通过浏览器访问的时候心里真的很开心。虽然自己并没有做什么事情,但是那种感觉真的很奇妙。自己在接下来的二次开发中也遇到了不少问题,但是在解决问题之后的那种轻松感,就像是在绵绵阴雨之后难得遇见晴天时的喜悦。

因为这个oj的后端是基于Django的,之前没有了解过,所以还是自己学了一点,而且因为它需要安装的包还是蛮多的,所以本地运行的时候还是蛮麻烦的。还有本地运行前端代码的时候,下面的这个代码运行还总是出错就真的有点烦,后来发现是pycharm 的terminal 的锅🌚🌚🌚

NODE_ENV=development npm run build:dll
export TARGET=http://Your-backend

而且,内段时间心情真的很烦躁,搜索结果出不来,数据库建表成功之后死活看不见。后来发现是navicat的版本号不对,要用最新的navicat,当时真的是心情复杂。。。

这些,环境部署好了之后,剩下的修改就稍显轻松了,修改完成之后最麻烦的环节就是镜像的制作了,老实说,我之前从未想过这步会这么繁琐,搞了我整整一周,心态真的满爆炸的。

中间试过直接制作镜像和利用travis ci 去制作镜像,但是judge-server的镜像一直unhealthy,并且自己制作的镜像一直重启,自己还死活找不到原因。后来才发现是数据库字段修改之后,要运行python manage.py migrate来更新数据库,之前一直以为这一步是会在镜像制作是自动执行的,还是太年轻了🙃🙃🙃。

在开发过程中遇到了不少问题,开发群里的老哥们都给了我不少帮助,尤其是zklcdc大佬,真·后浪技术问题帮我解决了不少。下面贴上大佬的博客链接 https://www.zklcdc.top/ ,再次十分感谢群里老哥们的技术指导。