https://github.com/codesheepXK/Pair-programming.git
https://www.bilibili.com/video/BV1QD4y1k7bx/?spm_id_from=333.999.0.0&vd_source=92d7da6ab7e3822b237fe3668cb3f2b1
一、结对探索(4分)
1.1 队伍基本信息(1分)
结对编号:19;队伍名称:嚼炫迈的铠甲勇士;
学号 | 姓名 | 作业博客链接 | 具体分工 |
---|---|---|---|
032002636 | 谢锴 | 原型设计、前端界面编写、JS算法交互 | |
1.2 描述结对的过程(1分)
结对了吗?
还没。(舔屏jpg)
结吗?(狗头jpg)
结!(狗头jpg)
1.3 非摆拍的两人在讨论设计或结对编程过程的照片(2分)
二、原型设计(16分)
2.1 原型工具的选择(2分)
(在此处说明选择了什么原型设计工具?为什么选择这一款原型软件?)
原型设计工具:墨刀
原因:自学两天axure之后感觉操作略为繁琐,听同学去尝试了一下墨刀,发现墨刀上手更快,可视化方便,交互效果更为简单
2.2 遇到的困难与解决办法(3分)
困难1:原型设计刚开始没有思路,无从下手。
解决方案:与队友讨论,分析功能需求,列出各模块
困难2:不知道原型设计应该往什么风格上靠,尝试科技风之后觉得能力不够太过花哨
解决方案:设置简约渐变色背景,走小清新简约风格
困难3:墨刀设置不了背景渐变色,查询无果。
解决方案:发现矩形模块可以设置渐变色,将矩形模块放在最底端充当渐变色背景
2.3 原型作品链接(5分)
2.4 原型界面图片展示(6分)
模块一:登录界面
功能:输入账号密码登录
模块二:规则介绍
功能:介绍逍遥骰基本规则
模块三:游戏模式选择
功能:可选择人机对战、本地对战、匹配对战
模块四:游戏界面
功能:随机点数,放置骰子,根据规则消除,一方棋盘满结算游戏
创新点:新增撤销功能
模块五:积分排行榜
功能:显示排名前列的用户
三、编程实现(14分)
3.1 网络接口的使用(2分)
3.2 代码组织与内部实现设计(类图)(2分)
3.3 说明算法的关键与关键实现部分流程图(2分)
3.4 贴出重要的/有价值的代码片段并解释(2分)
3.5 性能分析与改进(2分)
(描述你改进的思路,展示性能分析图和程序中消耗最大的函数)
3.6 单元测试(2分)
(展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路)
3.7 贴出GitHub的代码签入记录,合理记录commit信息(2分)
四、总结反思(11分)
4.1 本次任务的PSP表格(2分)
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 60 |
· Estimate | · 估计这个任务需要多少时间 | 5 | 10 |
Development | 开发 | 5800 | 6965 |
· Analysis | · 需求分析 (包括学习新技术) | 2000 | 2100 |
· Design Spec | · 生成设计文档 | 30 | 25 |
· Design Review | · 设计复审 | 30 | 30 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
· Design | · 具体设计 | 2400 | 3000 |
· Coding | · 具体编码 | 1000 | 1200 |
· Code Review | · 代码复审 | 210 | 240 |
· Test | · 测试(自我测试,修改代码,提交修改) | 100 | 160 |
Reporting | 报告 | 200 | 180 |
· Test Report | · 测试报告 | 140 | 140 |
· Size Measurement | · 计算工作量 | 30 | 20 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 40 |
· 合计 | 6060 | 7205 |
4.2 学习进度条(每周追加)(2分)
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
1 | 0 | 0 | 6 | 6 | 熟悉墨刀和axure基本用法 |
2 | 532 | 532 | 8 | 14 | 了解VUE框架地基本运用 |
3 | 1231 | 1763 | 13 | 27 | 了解VUE框架底层响应式原理 |
4.3 最初想象中的产品形态、原型设计作品、软件开发成果三者的差距如何?(2分)
首先是想象中的产品形态和原型设计作品存在较大差距,相较于最初设想的丰富多彩的产品形态,受限于审美以及绘画能力,原型设计相对简陋,有些想要实现的功能因为能力不足选择放弃(果然专业的事还是得交给专门的人做)不过最基本的功能都设计出来了。
其次是原型设计作品和软件开发成果,因为原型设计相对简单,基本还原原型设计的各模块需求,加上基本的交互效果,软件开发呈现的效果相较于原型设计更加美观,但是一些想实现的动画没有实现,代码实现方面比想象的难度也存在一定差距,经常就是每增加一个需求或者是一个函数,就会产生各种各样的bug,代码五分钟,bug两小时,但是究其原因是对Vue底层响应式原理理解不够。
4.4 评价你的队友(2分)
谢锴:(1)张家璇是一个做事认真,性格温和,善于组织的好队友,课后时间经常拉我去麦当劳讨论制作细节,发生分歧产生矛盾时不急不躁,耐心分析他的想法和我想法的分歧,以及算法可实现性,他也非常出色地完成负责的AI部分,算法的独特理解让我收获颇丰(2)但是从队友的角度来说,我觉得他给自己压力过大,容易事倍功半,应该好事多磨,语速则不达。
张家璇:(1)先给队友点个赞,好强!在这一次的结对编程中,谢锴承担了大部分的前端模块的编写和原型的设计,让我见识到了Vue和JS的神奇功能。在此次作业之前,我的前端相关知识一直处于一片空白的状态,而他对前端的独特见解让我学到了很多。任务完成上谢锴相当认真负责,总是能够在计划内的时间完成相应的任务。大佬带我起飞~ (2)站在队友的角度,感觉还有一些可以改进的,比如说做任务时较为纠结,有时候有点小任性,容易钻牛角尖。
4.5 结对编程作业心得体会(3分)
谢锴:总的来说,这次的作业做下来没有一开始想的那么难,尝试了没有接触过的领域——原型设计,初步了解了墨刀以及axure的基本使用方法,制作了相对简洁的界面原型,顺带复习了一下前端VUE框架相关技术,在修理bug的过程中更加深刻理解掌握了VUE底层响应式原理(一个简单地修改数组元素不能简单地直接通过索引值修改,应该运用VUE.set()设置保持响应式),深刻体会到欲速则不达,好事多磨,一步一脚印的简单道理,最终和队友的共同编程下完成了一个不够完善但是基本能玩的小游戏。在编写代码的过程中,算法设计并未消耗过多时间,不断的修改完善才是最耗费时间的,一个功能可以写近百行冗余代码实现,但是同样可以整合修剪成三四十行代码,但是精简也容易产生各种各样bug,编写就是不断权衡的过程。在之后的软件开发应该在敲代码前充分讨论,分析好各模块功能,绘制出相对应的UI原型,不能闭门造车,不然后面修修改改得不偿失。