当前位置: 首页 > news >正文

项目问答(自用记录)

 在搭建 OJ 平台时,你选用了哪种编程语言和框架?为什么选择它们,它们在处理在线评测任务时有哪些优势?

Vue3+FastAPI是前端,python3是后端。FastAPI高效灵活,是用于构建API的高效的python web框架。vue3高效响应,处理大数据更优秀,相对于vue2来说选项式API,组合式API将函数封装在一起,方便代码的复用性和维护性。python简单高效有丰富的第三方库。

处理在线测评任务时python的subprocess模块可以方便的处理和管理子进程,用于运行用户提交的代码。

在 Vue3 和 FastAPI 的选型上,你主要考虑了它们的哪些特性来适配在线判题系统的需求?

vue3响应式系统优化可以更快速刷新界面,使得数据驱动速度更高效。组合式API使代码逻辑清晰,复用性高。vue3生态系统丰富,有更多好用的组件,加快开发速度。

fastapi基于python,语法简洁高效,开发率高。利用异步编程(await)可以更好地处理并发判题。fastapi有自动生成api文档的功能便于前后端交互和后期系统维护和扩展。

在线判题系统中,判题逻辑是核心部分。请详细阐述你是如何在 FastAPI 后端实现判题逻辑的,包括对不同编程语言代码的编译、运行和结果比对的处理方式。

对不同语言的处理方式不同,python用内置函数执行代码。通过捕获标准输出和标准错误来获取运算结果。对于c/c++,调用系统编译器(gcc)对代码编译生成可执行文件,然后运行可执行问价获得输出。判题,则用预先准备好的测试用例进行比对,同时设置运行时间限制防止恶意代码导致系统资源耗尽。搭配不同的沙箱环境如docker;

为了保证系统的稳定性和性能,在设计和实现过程中,你采取了哪些优化措施?比如在前端 Vue3 部分的渲染优化,或者后端 FastAPI 应对高并发判题请求的策略。

前端对图片资源压缩和懒加载处理,提升页面加载速度。

后端fastapi利用异步特性,使用uvicorn服务器处理高并发请求。

在 Vue3 前端与 FastAPI 后端进行交互时,你是如何设计数据传输格式和接口规范的?有没有遇到跨域问题,又是如何解决的?

数据传输格式是JSON,因为他简介易于解析,前后端都有很好的支持。

接口规范遵循RESTful API原则,比如使用不同的http方法(GET\POST\PUT\DELETE等)来对应不同的操作,如获取题目列表使用GET请求,提交代码使用POST请求。

考虑到用户在系统中提交代码可能存在恶意代码攻击的风险,你在系统设计中采取了哪些安全防护措施?

进行验证码输入,检查是否包含危险的系统命令或者敏感操作。用Docker容器技术,将用户代码和其他系统部分隔离开来。

在线判题系统可能会涉及多种编程语言的支持,你在实现对不同编程语言的支持时,遇到的最大挑战是什么,又是如何克服的?

最大挑战是不同语言编译和运行环境差距较大,解决方法是了解个语言的编译运行原理,然后针对每种语言编写相应的代码解析和执行模块。同时,简历统一接口运行不同语言的运行结果。

请描述一下系统的用户管理模块是如何设计的,包括用户注册、登录、权限管理等功能的实现细节。

用户注册时,前端会收集用户基本信息,进行基本的格式验证。然后将这些信息通过post请求发送到后端FastAPI的注册接口。后端会对用户名和邮箱进行唯一性检查,若不重复则存储密码到数据库中(哈希加密)

登录时,用户输入用户名和密码,前端讲这些信息发送到后端的登录接口。后端从数据库中查询对应的用户信息,验证密码是否匹配。若匹配,则生成一个Token并返回给前端,前端将token存在本地,用于后续身份验证。权限管理则根据不同角色设置不同权限,后端每个接口都会检查token,然后通过token决定是否能访问。

相关文章:

  • 领码科技:在低代码技术浪潮中的分享与探索
  • AI助力临床诊疗:AI工具帮助确认病情
  • 前端 FormData 详解
  • 搭建自己的OCR服务
  • 【微信小程序变通实现DeepSeek支持语音】
  • 路由器安全研究:D-Link DIR-823G v1.02 B05 复现与利用思路
  • 【嵌入式Linux】基于ArmLinux的智能垃圾分类系统项目
  • numpy学习笔记11:计算两个数组的欧氏距离
  • 【Python办公】提取Excel嵌入图片流程(代码前期步骤)
  • Redis 管道(Pipeline)深度解析:原理、场景与实战
  • C++菱形继承问题
  • 【Java】数组
  • Vlan初级实验
  • 漏洞知识点《PHP数组绕过深入解析》
  • go语言的包使用,以及错误处理
  • 亚马逊Prime Day新算法曝光,2025年流量分配机制大调整
  • numpy学习笔记10:arr *= 2向量化操作性能优化
  • 菜鸟之路Day24一一前端工程化(一)
  • 数据开发岗笔试题>>sql(hive) ,excel [2025]
  • 【论文阅读】实时全能分割模型
  • 铜钴巨头洛阳钼业一季度净利润同比大增九成,最新宣布超30亿元收购黄金资产
  • 魔都眼丨人形机器人“华山论剑”:拳击赛缺席,足球赛抢镜
  • 2024年上海发生科技融资997起,位于全国第一
  • 杨靖︱“一笔糊涂账”:博马舍与美国革命
  • 刺激视网膜可让人“看”到全新颜色
  • 百年前的亚裔艺术家与巴黎