结对编程总结
结对编程总结
经过为期10天的中小学数学卷子自动生成双人编程项目,本人从中收益颇多。现对过程中的复用、经验、教训三点进行总结,回顾项目过程。
一、复用总结
1.数据库使用
根据结对编程需求,考虑到新增的分数计算功能需要,结合个人项目中对数据库的运用,选择使用数据库对题干、选项、答案进行存储。数据库中包含如下8列:
id:题目编号
question:题干信息
answer1:答案1
answer2:答案2
answer3:答案3
answer4:答案4
correct:正确答案的位置
type:题目难度类型(小学、初中、高中)
2.结果计算
关于正确答案的计算,经过查找资料与阅读发现,Python语言中包含一种具有自行转换字符串并计算结果能力的函数——eval()。该函数可对本项目中数学题目的结果计算提供了很大的支撑。所以结对项目语言调整为Python,并在结果计算功能上运用了eval()函数,实现答案计算。
需要注意的是,在使用eval()时,需要引入math库,并在处理过程中需对表达式进行“math.”字符串补充,保证正常运算的进行。
for i in functions:
if i in expression:
expression = expression.replace(i, 'math.{}'.format(i))
关于错误答案的设置为本项目的新增逻辑。通过随机种子生成错误答案与正确答案的差值,并在正确答案的基础上加上该差值,实现近似正确答案的错误答案计算。
for _ in range(3):
temp = random.uniform(0.1, 9.9) - 5
if temp == 0:
temp = 0.1
tmp.append(res + temp)
3.逻辑运用
根据结对编程需求文档,对主流程进行了调整优化。同时,将个人项目中的试卷生成逻辑,引入到本项目中,实现试卷生成功能。
二、经验收获
1.前后端构建
因为本项目使用Web+Server模式,所以在过程中对前后端联系、跨域通信等知识有所了解,并具有了一定的实践经验。
2.组件使用及对象存储
在前端构建中,阅读并查找了许多组件,了解了其使用;在后端中,使用Session进行用户对象的存储,对登陆后修改密码等需求的实现进行了实现。
3.数据库共享
远端合作编写代码时,对数据库共享操作进行了熟悉,也对服务器相关知识进行了学习。
三、教训积累
1.cookie-session状态组件安全规范更新
由于浏览器对cookie-session状态组件进行了同源要求,不同途径登陆浏览器不被允许,所以在编写过程中遇到了相关的阻碍。由此吸取到的教训为,各类技术实时更新,我们需要随时关注最新要求与规范。
2.团队协作中沟通的重要性
在远端合作编写代码过程中,沟通显得十分重要,需要对进度、实现等多方面进行及时地探讨,保证项目的顺利推进。