如何复用个人项目
我认为要想在复用个人项目时更加方便,减少改动,需要在实现个人项目时就要考虑到代码的通用性与聚合度以及个人项目以后可能需要增删的功能,如:
1、我在个人项目中对于登录不同账号时的密码校验采用正则表达式完成,在此次结对编程项目中关于注册账号时密码强度的检验(密码6-10位,必须含大小写字母和数字)只需要修改原个人项目中“密码校验”函数中检测密码的正则表达式即可,减少了代码量;
2、在个人项目中为了降低小学试题的难度(如小学试题计算结果不能出现负数与小数)、为了避免初中试题中出现对负数开偶次根号的运算、为了避免高中试题中出现计算不存在的三角函数值,而采用如下方法:对于每道试题,将其存入字符串使用ScriptEngine将该字符串作为Java代码动态执行获取计算结果,根据计算结果剔除不合格的试题(如小学试题计算结果出现小数则剔除该试题,初、高中试题计算结果为NaN则剔除该试题),通过这种方法在个人项目中不但检测了试题是否合格,还为每张试卷生成了答案,而这个答案在结对编程项目中是必须的(选择题中需要有一个选项为正确答案),由此一来在结对项目中可直接从保存答案的链表answerList中获取答案显示在四个选项之中。在个人项目阶段可以预见到“为试卷生成答案”这个潜在需求;3、由于在个人项目中对于登录、切换账号、输出试卷到txt等功能用单独函数实现,提高了聚合度,则在此次结对项目中只需将这些额外函数删除、并在对应位置取消调用即可,其余个人项目代码原封不动,大大减少了工作量
结对编程的经验、教训
1、功能分类:在结对编程过程中两人分别负责不同阶段的UI界面以及功能实现,这就要求在分工时做到功能分类,尽量减少各个模块之间的依赖度(如我与薛仁将该项目的实现分为如下两部分(①登录部分:包括收发验证码、账号注册、修改密码、忘记密码、验证码登录、账号密码登录、账号密码数据库(用保存已注册账号密码的txt代替)、异常操作的处理(非法手机号、验证码有效期、验证码获取频率60秒一次、密码错误等);②试卷部分:包括试题种类的选择、数量选择、试卷生成、选项生成、答案获取、得分计算以及异常操作的处理(如题目数量不符合要求、只能选择一个选项等)。通过明确分工大大提升了开发效率,事半功倍。
2、接口明确:在两个功能块之间的衔接要做到简洁,这样可以在两人结合代码时加快整合速度,减少意想不到的bug
原文:https://www.cnblogs.com/vector-s/p/11599355.html