软件工程第二次结对作业

这个作业属于哪个课程 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 需要科学

详见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)
}

作业感受

通过这一次的合作,大致了解了项目中前后端是如何对接的。在实践的开发过程中,一定要先定义好接口文档,避免后续频繁改动。

评价你的队友

工作态度:队友在项目中表现出极高的责任心和积极性,能够主动承担任务并按时完成。
技术能力:队友具备扎实的技术基础,能够高效地解决开发过程中遇到的问题,并且在代码质量上有很高的要求。
沟通合作:队友在团队合作中表现出色,能够清晰地表达自己的想法,并且乐于接受他人的建议,促进了团队的高效协作。
问题解决:在项目进行过程中,队友能够快速定位问题并提出有效的解决方案,确保项目的顺利推进。
学习能力:队友在项目中展现了很强的学习能力,能够迅速掌握新技术并应用到实际开发中

posted @ 2024-10-10 23:55  SchwarzSail  阅读(6)  评论(0编辑  收藏  举报