软件工程导论——结对编程回顾

结对编程需求及成果

用户注册功能

  • 手机验证码功能
  • 输入两次密码匹配后设置密码成功(密码6-10位,必须含大小写字母和数字)

修改密码功能

  • 用户在登录状态下可修改密码
  • 输入正确的原密码,再输入两次相同的新密码后修改

题目参数设置

  • 选择小学、初中和高中三个选项
  • 输入需要生成的题目数量

答题功能

  • 生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题,界面显示第一题的题干和四个选项)
  • 最后一题提交后,界面显示分数(分数根据答对的百分比计算)
  • 分数界面可选择退出或继续做题

以上需求均已经实现,结果图如下

 

 

 

 

 

 

 

 

技术选择及运行

前端主要使用的是ReactReact-RouterAxios三项技术构建的Web应用,后端主要使用Flask

技术难点分析

主要的难点在前端路由的控制方面,前端路由的答题界面的路由应该是私有的,所以根据React-Router官方的建议我们使用Render Props,对用户权限予以验证,具体的实现如下:

import React, {useContext} from 'react' import {Route, Redirect} from 'react-router-dom' import {UserContext} from '../utils/context' function PrivateRoute({component: Component, ...rest}) { const {user} = useContext(UserContext); return ( <Route {...rest} render={props => user !== '' ? ( <Component {...props} /> ) : ( <Redirect to={{ pathname: "/", state: {from: props.location} }} /> ) } /> ); } export default PrivateRoute;

个人项目复用性

本次结对编程,在队友代码的基础上进行需求的优化,队友的个人项目代码已经设计了UI界面以及登录按钮,只需要添加注册按钮以及请求即可完成一个页面模板,总体来说前端的复用性主要在页面的设计上,关于后端因为个人项目本地化处理的原因,没有复用性

结对编程的收获

经验:我的队友是一个对于前端开发非常有经验的人,因此在结对编程过程中,队友写出一个登录页面之后,我模仿他的写法去编写注册页面的代码,对于react等技术也算有一些了解与使用,虽然使用的还不够熟练,但也算是提升了,此外由于没有开发经验,一开始我不了解那些软件开发的架构,看到队友的MVC模式有些不了解,通过百度等途径了解了一下软件架构,为以后的项目开发提供一些经验

教训:在开发过程中一开始我们两人之间的分工不够明确,虽然通过githup整理上传项目,但仍存在一方出现问题不能及时解决导致拖慢开发进度的问题,在后续的开发过程中多进行两个人的面对面交流,开发过程一方遇到的问题也能尽快解决

 

转载于:https://www.cnblogs.com/Z-Nut/p/11596499.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值