1、所用技术与开发环境

所用技术:

除了ctemplate可能会稍微写点之外,其余所有关于前端渲染相关内容不做说明~~~

  • C++ STL 标准库
  • Boost 准标准库(字符串切割)
  • cpp-httplib 第三方开源网络库
  • ctemplate 第三方开源前端网页渲染库
  • jsoncpp 第三方开源序列化、反序列化库
  • 负载均衡设计
  • 多进程、多线程
  • MySQL C connect
  • Ace前端在线编辑器(使用现成…)
  • html/css/js/jquery/ajax (使用现成…)

开发环境:

  • centos7
  • vim
  • mysql workbench

2、项目宏观结构

项目由3个核心模块组成

  1. common: 公众模块
  2. compile_server:编译运行模块
  3. oj_server: 获取题目列表,查看编写题目界面,负载均衡,其他功能

leetcode结构

只实现类似leetcode的题目列表+在线编程功能

项目宏观结构

image.png

编写思路

  1. 先编写 compile_server
  2. oj_server
  3. version1 基于文件版的在线OJ
  4. 前端的页面设计
  5. version2 基于 MySQL 版的在线OJ