Hands On Money 任务挣闲钱系统分析与设计

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统计表

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

致谢

在项目相关仓库中的贡献

ZuQq3t.png