1. 课程学习个人总结
本次项目作为技术人员,主要负责后端的开发和 API 的设计,并且承担了大部分 controller 的逻辑编写,在工作中根据 API 文档和一些 diagrams 和前端人员进行对接并完成测试。具体工作如下:
分析:
- 主要根据Jingxuan-He绘制的领域模型,辅助后端开发人员Ernie1共同完成了数据库的设计和建立,确定了 model,并在和前端对接的过程中完善数据库表中的字段以及各个 model 之间的联系。
设计:
- 根据Jingxuan-He绘制的用例图以及后端开发人员Ernie1的数据库设计,确定系统的具体功能需求,并依照 REST API 的设计规范,进行 API 的设计。
开发:
-
在构建好开发环境和完成的数据库表的建立后,学习后端开发人员Ernie1提供的 model 接口,即 My Django Models 和 ORM 进阶指南,在编程中把面向对象的概念跟数据库中表的概念对应起来,实现数据的增删改查。
-
通过 Django RESTful 框架实现基本的 API,如用户的权限管理,用户的登录登出和注册功能并和前端人员进行对接测试。其中一些额外功能包括用户邮箱注册的验证码发送和认证以及用户个人资料中头像的上传和更新,期间遇到的一些问题同时记录在个人技术博客中。
-
之后完成了需求中关于用户发布问卷,填写问卷等部分 API 的逻辑编写,并和后端开发人员Ernie1共同完善,维护程序的健壮性,提高数据访问性能。同时根据不同的模块进行低耦合度的开发,保证在使用 github 时不会发生较多的冲突和冗余。
-
最后测试的部分由于主要在本地使用 Postman 测试,并且大部分是和前端人员直接交互地进行测试,未能编写足够的测试样例并进行单元测试,应该构建弱健壮等价类划分测试用例再次进行测试。
-
部署到腾讯云服务器的工作主要是由后端开发人员Ernie1完成,我主要是解决跨域访问的问题。
管理:
- 使用 KANBAN 协调开发进度。
- 通过 API 文档,并且与前端小组互相协调,一起讨论、核对接口。
2. PSP 2.1 统计表
Personal Software Process Stages | Time (%) | |
---|---|---|
Planning | 计划 | 6 |
estimate | 明确需求和其他因素,估计以下的各个任务需要多少时间 | 6 |
Development | 开发 | 84 |
analysis | 需求分析 (包括学习新技术、新工具的时间) | 10 |
design spec | 生成设计文档 | 5 |
estimate | 设计复审(与团队成员审核设计文档) | 5 |
coding standard | 代码规范 (为目前的开发制定合适的规范) | 1 |
design | 具体设计 | 10 |
coding | 具体编码 | 25 |
code review | 代码复审 | 8 |
test | 测试 (包括自我测试,修改代码,提交修改) | 20 |
Report | 报告 | 10 |
test report | 测试报告 (发现了多少bug,修复了多少) | 1 |
size measurement | 计算工作量 (多少行代码,多少次签入,多少测试用例,其他工作量) | 1 |
postmortem & process improvement plan | 事后总结, 并提出改进计划 (包括写文档、博客的时间) | 8 |
3. 个人 GIT 统计报告
后端
文档
4. 最得意/或有价值/或有苦劳的工作清单
-
最得意
用户邮箱注册时验证码的发送和验证,个人头像上传到服务器并可以更新,用户充值时支付宝接口的使用(但由于隐私和安全问题未能开放此功能)。
-
最有价值
前后端的良好对接,并解决跨域问题。
-
最有苦劳
前后端的交接和针对 controller 中遇到逻辑错误的判断和测试。
5. 个人博客清单
6. 特别致谢
-
感谢后端队友 Ernie1, 在编写规范文档的同时,高效率地开发代码,建立清晰的数据库模型使我更好地完成 API 的部分编写,并重构我的一些代码以更加符合代码规范,从而使我了解到自己代码结构和一些逻辑上的不足。
-
感谢前端团队 wuzht 和 freesdw 的所有工作,前端设计的非常美观,并且功能丰富,交互性强,与您们合作起来相当愉快!
-
感谢 Jingxuan-He 的文档编写,她的对项目产品的准确分析与清晰规范的图表使团队对项目需求达成一致,使我们愉快地进行设计与编码。