设计思路
himself65 opened this issue · comments
花了两天把https://github.com/Himself65/create-bread-app 基本撸完了
然后突发奇想,如果oi-test也有这种东西该有多好(虽然我并不参加
目前的设计思路
建议使用基于 React 的 UI 库 Material UI (material-ui.com)
建议使用 Reflux 实现前端数据交换 (不影响 koa 的使用,使用 Reflux 可以将诸如 Ajax 请求与 cookies 操作等从 React 本身剥离出来)
(本人准备要动工做的 OI 平台 Multi_OI 大概需要你的库,所以我最近或许能腾出时间帮你写点什么)
项目结构
- 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?(本人能力推此库不是没有理由的,它确实做的很棒)