软件工程第二次结对作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281 |
这个作业的目标 | 结对编程,实现产品的核心模块的编码的原型 |
学号 | 102202144 |
结对同学博客链接 | https://www.cnblogs.com/lljyutt/p/18450341 |
Github项目地址 | https://github.com/among-the-mountain/102202147-102202144 |
一、分工表
姓名 | 分工 |
---|---|
赖越 | 前端,测试,编写博客 |
傅钰 | 数据库,后端,编写博客 |
二、PSP表格
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
Estimate | 估计这个任务需要多少时间 | 40 | 30 |
Development | 开发 | 1980 | 2130 |
Analysis | 需求分析 (包括学习新技术) | 180 | 210 |
Design Spec | 生成设计文档 | 45 | 45 |
Design Review | 设计复审 | 20 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 35 |
Design | 具体设计 | 300 | 320 |
Coding | 具体编码 | 420 | 480 |
Code Review | 代码复审 | 240 | 210 |
Test | 测试(自我测试,修改代码,提交修改) | 210 | 220 |
Reporting | 报告 | 60 | 80 |
Test Report | 测试报告 | 40 | 50 |
Size Measurement | 计算工作量 | 10 | 20 |
Postmortem&Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 50 |
| 合计 | | 3455 | 3970 |
三、解题思路与设计实现说明
(一)代码实现思路
小程序主要功能是让用户能够通过发布或者寻找实现跨专业合作,通过页面的跳转可以让用户去往相应的界面。
用户可以自行选择不同的需求,在各个需求下进行发布/寻找,同时提供一个在线交流的平台,在交流中决定是否合作。
为了让匹配率增高,用户进行发布的时候会详细介绍并且说明自己的需求,寻找的用户也可以点进页面查看详细信息,进行了解,看是否满足自己的需求。
(二)流程图
(三)重要功能代码片段
检查功能
在每个需要填写内容的页面都设计了这个功能,可以避免因用户填写信息不完全导致后续组队结伴出现无人选择的情况。
四、附加特点设计与展示
设计特点:设计了以技能为筛选条件的分类器,虽然无法实现模糊搜索,降低了广度,但是提高了精度;使用慢加载,减少了内存占用
代码
成果展示
五、目录和使用说明
(一)目录说明
(二)使用说明
进入体验扫描二维码
六、单元测试
(一)关于我们的单元测试
工具:jest
学习过程:原本是使用作业博客后面附带有教程的mocha工具来实现,由于npm配置的问题,导致我们在进行单元测试时遇到了一些困难。再加上我们在代码中应用了Page这个全局函数,但Node.js环境并不支持它。Page是微信小程序的API,只能在小程序的运行环境中使用,而不是在Node.js中。因此,我们改成使用jest配合小程序模拟环境,能够模拟小程序的API。
简易教程:先在Windows Powershell中使用命令“npm install --save-dev jest”安装jest,接着根据需要测试的代码,编写单元测试,放在同一个文件夹下,然后运行npx jest。
(二)部分单元测试
测试onInput方法是否正确更新数据。
测试onSubmit方法在字段不完整时是否显示提示。
测试onSubmit方法在字段完整时是否能正确提交并导航。
这三个测试的结果如下:
(三)构造测试数据
了解需要测试的功能及其边界条件,识别重要的数据字段。考虑用户在使用过程中可能输入的不同值和场景,包括正常输入和异常输入。各个函数是否能正确实现,以及测试在表单提交时的延迟,比如在提交成功后的两秒钟内,确保系统能够正常等待并跳转等。
七、Github的代码签入记录
八、遇到的困难及解决方法
(一)问题描述
在后端开发中,由于不熟悉编程语言,导致在很多地方手足无措。交互尝试出错,遇到了许多意想不到的问题。同时,聊天板块的开发难度较大,决定改为提供邮箱的方式进行交流。
(二)所做尝试
在网络上找到了很多资源,通过学习相关文档和示例代码,逐步掌握了必要的技能。同时在查找解决方案时,我利用了许多在线社区的讨论,得到了有效的帮助。
(三)是否解决
问题得到了一定的解决,通过不断实践和学习,我对后端开发有了更深入的理解。
(四)所得收获
通过这次项目,我不仅提升了编程能力,也加强了对后端开发框架和技术的理解。这次经历让我更加自信,也为未来的项目打下了良好的基础。
九、评价
值得学习的地方:在遇到困难时,积极寻求帮助和学习相关知识,能够有效提升问题解决能力。
需要改进的地方:在项目开始之前,更加充分地准备和学习相关技术,以减少后期的困惑和困难。