第二次结对编程作业

这个作业属于哪个课程构建之法-2021秋-福州大学软件工程
这个作业要求在哪里2021秋软工实践第二次结对编程作业
个人学号031902126
结对成员学号031902106
结对小伙伴的作业博客链接他的链接
GitHub 仓库地址GitHub链接
视频演示链接传送门


PSP表格和学习进度条

PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划3030
·Estimate· 估计这个任务需要多少时间3030
Development开发24002650
· Analysis· 需求分析 (包括学习新技术)360480
· Design Spec· 生成设计文档
· Design Review· 设计复审 (和同事审核设计文档)
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)6060
· Design· 具体设计6050
· Coding· 具体编码16801800
· Code Review· 代码复审180210
· Test· 测试(自我测试,修改代码,提交修改)6050
Reporting报告170160
· Test Report· 测试报告
· Size Measurement· 计算工作量5030
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划120130
合计26002840

学习进度条

第N天(从9.30开始)新增代码(行)累计代码(行)当天学习耗时(小时)累计学习耗时(小时)重要成长
10011开始了解python的django框架
20056学习了django与数据库的联系,并写demo练习,写规范文档
3505028配置了内网穿透,让前端可以网络请求,并且写了所需model
4100150412深入了解了django,建立起了基本的框架
5100250719编写了一部分的视图和路由分配,并和前端协商了传输数据的结构
670320524学习了github合作上传项目,为前端编写了接口文档
7250570832编写了前端所需的所有接口,并生成了文档,编写了单元测试,顺便开始写博客
850620234根据前端的需求略微修改,顺便学习如何把项目部署到服务器上(虽然没成功)
950670337对项目进行完善,撰写博客,完善GitHub

编程思考

因为我是负责写后端的,所以主要是用 python 的 django 框架,所以编程的内容就在于这个框架的构建:

重点

  • 模型 Model
    django 中的模型就扮演着数据库中表的结构的角色,那么重点就演变为如何构建表能使访问数据库更加地简洁。在这次构建表结构中我使用了外键,这个概念我也是刚从本学期数据库课程中学到的。所以创建模型也是一个重点。附上我画的 E-R 图。
    在这里插入图片描述
  • 视图 View 与 路由 Url
    视图和路由分配就是 django 的核心。View 负责对应与数据库等交互的接口,接受前端传递的信息以及返回前端所需信息,而路由分配则是根据前端请求的 Url 来绑定视图。重点就在于接口的编写,其中需要用到下一点的 ORM。
    本次编程编写的接口: 接口文档 密码:1234
  • ORM
    它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的 SQL 语句打交道,只要像平时操作对象一样操作它就可以了 。但这样也有缺点,不能像 SQL 语句一样灵活地查询数据。

难点

编程中遇到的最大的困难就是玩家头像的存储与返回,即图片如何保存到数据库并可以返回给前端。最后的实现方法是收到前端的图片后,将图片保存到本地固定路径下面,同时把相对路径存储到数据库中(ORM 的 ImageField 可以实现)。之后配置路由,当前端请求头像时,返回相对路径即可生成 URL 访问到图片。

# 玩家模型
class Player(models.Model):
    name = models.CharField(max_length=10)  # 昵称
    photo = models.ImageField(upload_to="photos", default="a.jpg")  # 头像
    level = models.SmallIntegerField(null=True)  # 最高奖项

# 路由配置
re_path('^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT})
Player表 样例
+----+-------+------------------+-------+
| id | name  | photo            | level |
+----+-------+------------------+-------+
|  1 | zhou  | photos/a.jpg     |     1 |
|  9 | yan   | photos/img1.jpg  |     8 |
| 10 | huang | photos/img2.jpg  |     3 |
| 11 | hu    | photos/img3.jpg  |     7 |
+----+-------+------------------+-------+

结对编程过程

在这里插入图片描述


Github相关


编程体验

  • 这次编程与之前个人作业相比,有了小伙伴的督促和激励,学习的兴趣也高涨了许多。而且在遇到困难的时候也可以和小伙伴一起讨论,思考错误的可能原因,共同解决问题。但有时候也会因为沟通不及时,产生一些奇怪的报错。
  • 与第一次结对编程作业相比,如果说之前是要我们张开想象的翅膀,尽情地思考和创新,那这一次就需要我们脚踏实地,一步一个脚印地编写出合适的代码。
  • 总而言之,这次的编程让我对 python 的掌握更加深入,对合作编程也有了一定的了解。同时也更加期待着接下来的团队编程改如何完成。

编程主要事件及收获

因为对 http 请求的请求头和请求体,以及后端接受请求信息的不了解,导致和前端的信息传递经常出错。尤其是需要上传头像的时候,不了解图片应该如何放在请求体中,以及后端如何获取,导致无法获取到信息。后来,暂停了一会手头的后端工作,转去详细了解了微信小程序是如何编写请求体的,最终解决了问题。所以当我们遇到问题时,不一定要纠结当前这一部分哪里有问题。可以换位思考,思考一下对方应该如何做,进而找到错误。


视频演示链接

传送门

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值