MENU

放出我的 C++ 大作业 Scaffold

September 5, 2017 • 程序

前言

我的 C++ 大作业早就完成了,这个假期其实也没花多少精力在这个作业上,于是只准备用一篇文章来记录一下。之前担心答辩会翻车一直没发,到昨天晚上最终得分已经出来了,所以现在把这篇文章发出来。

最开始的时候,我是准备写一个类 C 的编译器作为大作业的。但上课期间写了一部分之后,放假便不想再碰,于是就随便换了个别的东西,重新开题。所以最终我的大作业是一个比较辣鸡的 Web 开发框架。

这是项目的 GitHub 仓库地址:https://github.com/Bokjan/scaffold。之后还瞎写了一份文档,在这里可以看到使用XeLaTeX输出的版本。建议直接看文档,本文不打算做详细的介绍。

HTTP服务器

虽然是一个Web框架,但是HTTP服务器这个东西让我一下子搞出来是不可能的,而且还有跨平台的考虑。最终我选了代码量最精简的、最简单的、使用最方便的嵌入式网络服务器Mongoose。

Mongoose 虽然是一个在 GitHub 上星星无数的项目,但文档其实一点都不详尽。官方并没有什么教程,光看文档根本无从下手。不过幸好Mongoose的HTTP部分并不是很复杂,自己看看源码就明白是怎么一回事了,而且还可以魔改一下

基础设施

Scaffold的基础设施因为偷懒,耦合得厉害。主要的部分有HTTP服务器封装,Request、Response的构建、路由和日志。

插件

为了使用起来稍微方便一点,并且凑足行数,实现了Session和MySQL两个插件。实现非常简单,也没有怎么测试过。由于比较懒,而且是使用C++的原因,模板引擎没有提供。如果需要的话,用户应当自己选择。

示例

华南理工大学微软学生俱乐部秋季招新使用Scaffold实现。该Demo链接预计在2017年10月前有效。

Tags: c/cpp
Archives Tip
QR Code for this page
Tipping QR Code
Leave a Comment

已有 2 条评论
  1. 巨力膜 orz

    1. @Yilin Chen@(喷) 那是你