1.如何复用个人项目代码:
结对项目主题就两大功能,一是生成题目,二是和用户页面交互。
(1)复用了原先的个人项目代码的地方主要是“生成题目功能”,将相应的函数:检查根号内是否有负号check_for_sqrt()、设置一道小学题set_xx_question(mathData)、设置任意一道题set_question(grade,mathData) 都直接粘贴了过来
同时由于查重的要求不同,对question_exit()函数进行了修改
此外添加了两个新函数:产生正确答案函数solution_question(list)、产生四个选项函数generate_options(list)
(2)和用户交互功能则采用后端flask框架 + 前端jQuery的$.ajax 实现,因此用户每点击一个提交按钮,都会将数据传输到后台相应的函数,
并接受该函数的返回值(下图以注册功能为例)。因此原先的个人项目的client模块和多线程都可以删除不用了
2.经验教训:由于我之前从未做过网页也没接触过html,所以一开始就选择做后端,而队友对html也只是学过几节课。头几天我们悠哉游哉地分头行动,但当我发现大部分功能需要和前端交互才能实现时,我立马询问了队友,发现他也不会前后端数据收发。就这样我在之后又花了一整天才搞懂并自学了基础的html,终于找到了一种合适的方法——flask + $.ajax,这之后我又为了解除跨域限制挠破头皮。就这样磕磕绊绊到最后只剩两天了才把主体功能完成。接下来进入测试环节,测完发现最大的问题,之前后端连接的数据库只能在本地使用,换台pc机就没法远程连接了,于是又不得不通宵将数据存储改成读写txt(几乎每个和前端交互的函数都会涉及到服务器的操作,因此修改内容不少),最后急急忙忙才收工。
通过这次结对编程,我得到了一个深刻教训:以后做项目得留出近一半的时间测试修改,所以前期得尽早实现基本功能。