online judge
事实上以及有了spring版的oj:https://github.com/3072844942/nucoj
语言选型
前端
前端脚手架还是非常多的, 例如Vue, React, Next.js等。
这里我选择React + TypeScripts, 易于维护且不占用服务器资源。
后段
后端的选择主要有Java(Spring), Go等。
这里我选择Go, 一方面出于Java有许多历史包袱, 可能会写出多种风格的代码;另一方面Go语言正蓬勃发展。
架构
当下已经是3202年, 前后端分离 + 分布式系统 + 中间件自然没得说。
数据库
- 缓存Redis, 常规布局
- Mysql 和 MongoDB是有些难以抉择的(MongoDB在spring中确实很好用)。小孩子才做选择, 大人我全都要
系统架构
基于上一版