上海大学程序设计训练平台 SHUpdtp 介绍

迁移自我的语雀,此项目已经放弃维护,它出现在这里,主要是因为我想测试一下我的博客迁移工具~

✏️ 前言

随便说说

application.gif

这个项目对我个人而言,意义比较特殊。它是我的毕业设计课题,但在答辩结束以后,这个项目还是在一直继续的完善开发…甚至可能直到我离开学校,它有可能还有很长一段路要走。

我这个人比较讨厌放弃一件自己曾经想做但是又没做成的事情,初中时期成绩一年不如一年的算法竞赛让我大学里还是跳进了 ACM-ICPC 的大坑;退役之后以测试身份加入学校 OJ (Online Judge)平台的开发,但实际上后端根本就没有人会启动起来…所以实习回到学校以后,才会硬着头皮用Rust再搞了一次。

这个项目比我预想的要简单一些,对我而言目前它已经不是一个能给我带来进一步提升的项目了,不过如果没有像我这样类似的开发经历的话,它还是有许多地方是值得参考学习的。毕竟我也是从连API规范都搞不清楚,一点点把模块分好,最后又废弃初版重做这样走过来的。这期间的收获还是很多的。

这篇文章的主要内容

这是一篇介绍博客,主要会说一下项目的大致功能以及涉及到的技术点,具体的技术学习的内容会分享在同系列的笔记当中。

🍟 SHUpdtp 的大致用途

SHUpdtp (全称:Shanghai University program design training platform),中文名译为上海大学程序设计训练平台,简单来说就是一个高校自用的在线判题系统。同类型的网站在面试和竞赛圈里其实很常见,牛客力扣应该是全网最家喻户晓的两个(不熟悉的朋友可以访问一下看看)。高校判题系统对比商用判题系统,更多的是承载在线判题的基本功能,拓展功能一般酌情添加,不会像后者做的如此全面(因为本身的受众也更少)。

在这篇文章的最开头,我配了一张动图(这是我毕业设计答辩时附带的演示用前端,我不是前端专家,这部分就暂时没有打算分享时怎么做的了),动图里展示的就是一个最基本的在线判题系统的使用方法。如果还是有一些不清楚的话,我这里附上一页 PPT …说实话这块用文字描述挺困难的,建议有兴趣的还是多看看其他同类型的平台,这部分的文字解说我暂时打算简单略过(如果有需要请记得提醒我更新),非常抱歉🤥!

structure.png

📉 涉及到的技术点

在线判题系统和很多xxx系统(比如图书管理系统,课程管理系统实际上是同一类),但是 SHUpdtp 有两个不一样的点,一是它是使用 Rust 进行开发,二是在线判题系统需要依赖于判题机实现在线判题功能。所以涉及到的主要技术点主要有以下这些:

  • 使用 Rust 完成后端开发,确保项目结构清晰,运行稳定
  • 怎么使用 Rust 的 Web 框架和 ORM 框架配合数据库制作 API 接口
  • 如何用某种手段接入和管理附属判题机

还有一些小的细节方面的我就不一一列举了,以上几个技术点还是比较值得学习的,小一些的技术点多数学习价值不高(不过诸如:接入阿里云短信接口…这样的案例我有空的时候也会来分享的)。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计