AimonaStudio / rrreol

下一代OIer/ACMer本地代码测评的简便环境 | Next-generation OIer/ACMer code native tiny code test environment

Home Page:https://aimonastudio.github.io/rrreol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

设计思路

himself65 opened this issue · comments

花了两天把https://github.com/Himself65/create-bread-app 基本撸完了
然后突发奇想,如果oi-test也有这种东西该有多好(虽然我并不参加

目前的设计思路

#8

建议使用基于 React 的 UI 库 Material UI (material-ui.com)

建议使用 Reflux 实现前端数据交换 (不影响 koa 的使用,使用 Reflux 可以将诸如 Ajax 请求与 cookies 操作等从 React 本身剥离出来)

(本人准备要动工做的 OI 平台 Multi_OI 大概需要你的库,所以我最近或许能腾出时间帮你写点什么)

@langyo 你可以自己写一个demo

项目结构

- lib   # 核心库文件,包括但不限于judge和helpers、utils
- src  # 界面库文件
    - cli   # 命令行部分
    - ui    # UI部分
    - server # 服务器部分,负责打通ui和cli的通信

core部分

judge通过结合EventEmitter、child_spawn等实现测试程序,如果需要安全沙盒则可以将此部分部署到docker中

// todo

cli部分

结合commander库实现快速测试程序,需要judge

ui部分

暂时考虑使用React.js,包含Redux(如果需要),使用element-ui或ant-design

附带一提,此部分仅仅是作为方便显示程序,实际上没有任何逻辑代码

server部分

可以部署到生产环境

通过ui部分的信息来操作cli(并不直接操作lib),使用koa.js,不包含任何安全检查,可以考虑做成koa的插件,方便使用

其他细节

  • 使用eslint,eslint-config-standard检查代码正确

  • babel采用pipeline-operator、function-bind等stage-x特性来提升代码体验

  • lib、cli、serve采用rollup打包,ui库使用webpack打包

  • rrreol使用lerna维护

本人并不是经常能够上线 qq,不过 Github 常在线,会定期检查邮箱

Q 已加,你把上头的验证答案修改掉吧,

另外,UI 部分或许可以考虑 material-ui?(本人能力推此库不是没有理由的,它确实做的很棒)

@langyo
你有空可以到/src/ui中写一个脚手架 能运行就行那种

@langyo
你有空可以到/src/ui中写一个脚手架 能运行就行那种

收到了

@langyo
今晚我会写好脚手架

JudgeWrapper 属于伪需求, 已经删除

#116