顾得泉:个人主页
个人专栏:《Linux操作系统》 《C++从入门到精通》 《LeedCode刷题》
键盘敲烂,年薪百万!
前言
学习准备了快一年时间,心心念念的实战演练终于可以开始了,话不多说,直接进入主题!!!
一、项目简介
该项目是基于负载均衡的在线OJ平台,用户可以在浏览器访问各个题目,在编辑区编写代码提交,后端能够自动分配服务器资源,保持平衡的情况下为用户提供良好的编程运行环境,让代码快速运行和提交。
二、所需技术及开发环境
所需技术:
C++ STL 标准库
Boost 准标准库(字符串切割)
cpp-httplib 第三方开源网络库
ctemplate 第三方开源前端网页渲染库
jsoncpp 第三方开源序列化、反序列化库
负载均衡设计
多进程、多线程
MySQL C connect
Ace前端在线编辑器(简单使用)
html/css/js/jquery/ajax (简单使用)
开发环境:
Centos 7 云服务器
Mysql Workbench
三、项目结构
我们的项目核心是三个模块
1. comm : 公共模块
2. compile_server : 编译与运行模块
3. oj_server : 获取题目列表,查看题目编写题目界面,负载均衡,其他功能
一、leetcode结构
我们只实现类似 leetcode 的题目列表+在线编程功能。
二、项目宏观结构
三、实现思路
1. 先编写 compile_server
2. oj_server
3. version1 基于文件版的在线OJ
4. 前端的页面设计
5. version2 基于 MySQL 版的在线OJ
目前所建立的结构树 :
四、预备工作
一、升级gcc
用老的编译器,要么编译不通过,要么直接运行报错,大家可以自行百度搜索下载最新版的gcc,我当前的版本已经升级。
二、安装jsoncpp
sudo yum install -y jsoncpp-devel
三、安装boost库
sudo yum install -y boost-devel
这个库安装稍慢,是我们所需要的开发库。
结语:关于该项目的简介这里就结束了,下篇文展将带大家深入实现项目部分功能,如果大家有什么问题,欢迎大家在评论区留言~~~