软件工程第二次结对作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281 |
这个作业的目标 | 体验项目合作过程 |
学号 | 082100170 |
结对队友学号 | 052101418 |
项目相关
接口文档:https://apifox.com/apidoc/shared-ab2e3749-7e44-4dfd-86f2-3ba9cc2790fb
github仓库: https://github.com/SchwarzSail/bluebook
具体分工
app端: 052101418
使用google flutter跨平台开发工具编写,支持IOS,Mac,安卓,Web多端模拟
后端: 082100170
使用docker构建虚拟容器环境,并利用golang完成开发。
PSP
阶段 | 内容 | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|---|
Planning | 计划 | 1 | 1 |
interface doc | 编写apifox接口文档 | 2 | 2 |
Estimate | 估计这个任务需要多少时间 | 10 | |
Development | 开发 | 10 | 10 |
Analysis | 需求分析 (包括学习新技术) | 10 | 10 |
Design Review | 设计复审 | 2 | 1 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
Design | 具体设计 | 5 | 6 |
Coding | 具体编码 | 10 | 20 |
Code Review | 代码复审 | 0.5 | 2 |
Test | 测试(自我测试,修改代码,提交修改) | 2 | 10 |
Reporting | 报告 | ||
Test Report | 测试报告 | 2 | 2 |
Size Measurement | 计算工作量 | 1 | 1 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 1 | 1 |
合计 | 66.5 | 76 |
解题思路描述与设计实现说明(流程图)
附加特点设计与展示
加入github/workflow 集成测试
在博客中给出目录说明和使用说明
环境要求(软件)
以下环境安装maybe 需要科学
-
docker(暂时不支持windows,需要可以使用windows的wsl)
官方安装文档 https://docs.docker.com/get-started/ -
golang (version = 1.23)
官方安装文档
https://go.dev/doc/install -
flutter sdk以及ios/android 模拟器
这里给出flutter官网的环境配置set up文档 (https://docs.flutter.cn/get-started/install)
详见github仓库的README
项目目录
详见github仓库的README
给出Github的代码签入记录截图
实现成果展示(使用IOS模拟器进行测试)
- 依据README建立起后端docker容器环境
- 启动http服务监听
- 依据Readme启动IOS 模拟器测试app
- 开屏页
- 注册
- 账号或密码错误
- 发起项目并成功
- 搜索已有项目
- 点击搜索项目查看详情
遇到的代码模块异常或结对困难及解决方法
- 合作过程中想法不一致,致使前后端的数据类型不想匹配
- 解决方法:先在apifox的接口文档中统一想法,后续开发均依据接口文档进行,保证了前后端一致性
- 进行前后端对接的时候并不是很流畅,有些字段的返回经常修改
- 解决方法:重新编写接口文档,确定数据字段的返回类型
单元测试
后端部分使用了github.com/bytedance/mockey库来对函数进行测试
func Test_Register(t *testing.T) {
l := NewUserService(context.Background())
// 模拟请求参数
req := api.RegisterRequest{
Account: "123456",
Username: "xxxx",
Password: "123456",
Email: "",
Major: "",
Avator: nil,
}
// Mock the NewUserDao to return a pointer to a mocked DAO
mockDao := new(db.Dao)
mockey.Mock(db.NewDao).Return(mockDao).Build()
// Mock the CreateUser method to simulate successful user creation
mockey.Mock((*db.Dao).CreateUser).Return(nil).Build()
err := l.Register(&req)
assert.Nil(t, err)
}
作业感受
通过这一次的合作,大致了解了项目中前后端是如何对接的。在实践的开发过程中,一定要先定义好接口文档,避免后续频繁改动。
评价你的队友
工作态度:队友在项目中表现出极高的责任心和积极性,能够主动承担任务并按时完成。
技术能力:队友具备扎实的技术基础,能够高效地解决开发过程中遇到的问题,并且在代码质量上有很高的要求。
沟通合作:队友在团队合作中表现出色,能够清晰地表达自己的想法,并且乐于接受他人的建议,促进了团队的高效协作。
问题解决:在项目进行过程中,队友能够快速定位问题并提出有效的解决方案,确保项目的顺利推进。
学习能力:队友在项目中展现了很强的学习能力,能够迅速掌握新技术并应用到实际开发中