项目实践(一)点餐系统概述

    项目名称:

点餐系统

    项目背景:
    项目描述:

使用户可以通过浏览器访问服务器获取菜品信息并进行点餐;以及可以使管理员通过浏览访问服务器实现订单以及菜品管理

    技术调研:

线程,socket,http ,json序列化,mysql,STL

    框架设计:

MVC

M-model-数据管理 V-view-界面管理 C-controller-业务逻辑管理

数据管理模块:

    数据存储:mysql 数据库表的设计
菜品信息表 菜品ID 菜品名称 菜品单价 添加时间 订单学习表 订单ID 订单菜品 订单状态 下单时间
    数据库管理模块设计 菜品数据类(添加,删除,修改,获取(所有,单个)) 订单数据类(添加,删除,修改订单状态,查看(所有,指定)),封装数据库操作,提供调用接口

业务逻辑模块:

  1. 搭建服务器:HTTP服务器(套接字,HTTP,TCP)采用httplib库进行搭建
  2. 通信接口设计:什么样的请求对应什么样的业务处理和响应

静态页面请求:html静态页面

动态数据请求:菜品数据,订单数据

通信接口采用restful风格:

基于http协议:使用xml或json格式定义正文序列化方式

json序列化:

    json::value类:json数据与外界数据进行中转的一个对象类,重载大量操作符,包含大量类型转换函数 json::Reader类:实现反序列化,将json格式字符串转化为多个数据对象,存储在json::value类中 json::Writer类:实现序列化,将json::value中对象转换为json格式字符串

定义操作类型:POST添加 DELETE删除 PUT修改 GET获取

界面识图模块:html+css+js

html:页面布局

css:样式语言 度标签容器进行样式修饰

js:JavaScript脚本语言 动态渲染

项目总结:

项目名称:点餐系统

项目描述:完成功能:用户通过浏览器与后台服务器进行交互,实现用户对菜品信息查看与下单功能,以及管理员对菜品和订单管理功能

项目实现:采用一个不太严谨的MVC框架,总体分为三个模块,数据模块,业务处理,前端页面

数据模块:基于mysql数据库实现数据存储管理,并且封装数据库访问类向外提供业务分离的数据信息

业务处理:基于http协议采用RESTFUL风格使用httplib库搭建http服务器与前端进行交互进行菜品以及订单的数据业务处理功能

前端页面:基于简单的html与css和vue.js以及ajax实现前端界面的静态页面展示以及动态数据获取渲染功能

难点:

1,mysql查询与保存结果的线程安全问题

查阅mysql开发手册,mysql所提供的接口都是线程安全的,但这两个接口之间还是存在线程安全,需要加锁保护

2,http服务器搭建

http自行搭建,过于粗糙,干不够完善,httplib库提供接口,完善安全,流程也符合整个项目要求

经验分享 程序员 微信小程序 职场和发展