The Documents on Software Analysis & Design Team Work
版本 | 日期 | 作者 | 学号 |
---|---|---|---|
v1.1 | 2019-06-23 | Popiko | 16340225 |
在挣闲钱的项目中我主要负责的是后端的框架搭建、建表以及部署。
第一次开组会的时候大家就决定了要用 python+flask 来进行后端开发。之前没有接触过flask,但由于它是基于python的,所以特别好理解,所以使用起来也很方便,也有很多现成的库可以使用,比如sqlalchemy。sqlalchemy是一个python中最有名的一个ORM框架,可以使用它连接多种数据库,比如sqlite数据库、mysql数据库、postgresql数据库等。在这次项目中我们使用的是sqlite数据库。
通过这次课程设计,我理解了RESTful API的设计理念,简单来说,就是使用GET来获取资源(获取个人、组织、任务的信息等),POST来新建资源(创建用户等),PUT来更新资源(修改信息),DELETE来删除资源(删除任务等)。但其中遇到了一些小小的疑惑,就是我们有一个任务搜索的api,那个api按照RESTful的理念来设计是要用GET的,但是我们还需要传一些限定值来进行任务的筛选。前后端使用axios连接,不可以在GET的时候传body,只能通过将param写在url里面进行传递,但这样如果条件一多url会很冗长。我们一开始有想过将GET变成POST并把限定值以json的形式传递,但后来决定还是遵守RESTful设计理念。并且我们去调查过几个大型购物网站(也有大量的带筛选的搜索),发现它们无一例外都是使用param来传递参数的。
关于部署,也没有什么好说的,就是写一个Dockerfile,然后安装一个docker,再使用docker创建container和image,把端口进行映射就可以了。在部署的时候遇到一个困难,就是一开始把proxy设置为localhost:5000总是不能正常将前端的请求的url转成访问后端的相应的api,后来直接把localhost:5000改成后端映射出来的外网可访问的url问题就解决了。
PSP 2.1 | Personal Software Process Stages | Time (%) |
---|---|---|
Planning | 计划 | 10 |
estimate | 预估任务时间 | 10 |
Development | 开发 | 80 |
analysis | 需求分析 | 5 |
design spec | 生成设计文档 | 0 |
estimate | 设计复审(与组员审核设计文档) | 15 |
coding standard | 代码规范 | 5 |
design | 具体设计,包括绘制 UI,设计架构等 | 0 |
coding | 具体编码 | 30 |
code review | 代码复审 | 5 |
test | 测试(修改代码) | 20 |
Report | 报告 | 10 |
test report | 测试报告 | 20 |
size measurement | 计算工作量 | 3 |