軟件工程導論——結對編程回顧

結對編程需求及成果

用戶註冊功能

  • 手機驗證碼功能
  • 輸入兩次密碼匹配後設置密碼成功(密碼6-10位,必須含大小寫字母和數字)

修改密碼功能

  • 用戶在登陸狀態下可修改密碼
  • 輸入正確的原密碼,再輸入兩次相同的新密碼後修改

題目參數設置

  • 選擇小學、初中和高中三個選項
  • 輸入須要生成的題目數量

答題功能

  • 生成一張試卷(同一張卷子不能有相同題目,題目所有爲選擇題,界面顯示第一題的題乾和四個選項)
  • 最後一題提交後,界面顯示分數(分數根據答對的百分比計算)
  • 分數界面可選擇退出或繼續作題

以上需求均已經實現,結果圖以下前端

 

 

 

 

 

 

 

 

技術選擇及運行

前端主要使用的是ReactReact-RouterAxios三項技術構建的Web應用,後端主要使用Flaskreact

技術難點分析

主要的難點在前端路由的控制方面,前端路由的答題界面的路由應該是私有的,因此根據React-Router官方的建議咱們使用Render Props,對用戶權限予以驗證,具體的實現以下:ios

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界面以及登陸按鈕,只須要添加註冊按鈕以及請求便可完成一個頁面模板,整體來講前端的複用性主要在頁面的設計上,關於後端由於我的項目本地化處理的緣由,沒有複用性
git

結對編程的收穫

經驗:個人隊友是一個對於前端開發很是有經驗的人,所以在結對編程過程當中,隊友寫出一個登陸頁面以後,我模仿他的寫法去編寫註冊頁面的代碼,對於react等技術也算有一些瞭解與使用,雖然使用的還不夠熟練,但也算是提高了,此外因爲沒有開發經驗,一開始我不瞭解那些軟件開發的架構,看到隊友的MVC模式有些不瞭解,經過百度等途徑瞭解了一下軟件架構,爲之後的項目開發提供一些經驗編程

教訓:在開發過程當中一開始咱們兩人之間的分工不夠明確,雖然經過githup整理上傳項目,但仍存在一方出現問題不能及時解決致使拖慢開發進度的問題,在後續的開發過程當中多進行兩我的的面對面交流,開發過程一方遇到的問題也能儘快解決後端

相關文章
相關標籤/搜索