結對程式設計總結
1. 簡介
本次結對程式設計的項目由我(吳依凡)和陳熠玮同學完成。前端采用的是vue+ajax+elementui,後端采用的是Spring Boot,我主要負責前端的編寫。由于我個人項目的代碼是使用Python語言編寫,為了給後續的團隊項目積累經驗,本次選擇使用Java語言的陳熠玮同學的代碼作為結對程式設計的代碼。
2. 前端實作說明
主要頁面有5個
- Login.vue 登入頁面
- Register.vue 注冊頁面
- Main.vue 系統首頁
- ChangePassword.vue 修改密碼頁面
- Index.vue, 該頁面主要作為Login,和Register的父路由,通過頁籤來進行登入和注冊這兩個子路由來加載這兩個頁面。
界面展示
登入界面
注冊界面
值得一提的是,這裡的設計隻有手機号輸入符合規範,之後輸入密碼,驗證碼的輸入框才會彈出來。
首頁界面
這裡可以選擇題目類型與題目數量,生成題目後在對應選項點選即可選中
修改密碼界面
滑鼠移至使用者處可彈出“修改密碼”和“登出”按鈕,點選對應按鈕可執行對應功能
3.後端實作說明以及代碼的複用
後端實作說明
後端主要有 controller,files,pojo,service,utils
其中files存儲使用者的資訊,通過一個userinfo.txt來存儲已注冊的使用者的資訊。
pojo裡面是一些實體類,Resp是傳送前端和後端資料的實體,user是定義的使用者,MessageResult是前端後端校驗驗證碼的實體,Login是将使用者登入時的資料存儲的實體。
controller層的兩個cotroller,分别調用service裡面定義好的接口,進而Service調用Utils工具類實作這個項目需要完成的功能。
代碼的複用
結對程式設計其實對于代碼的複用,主要隻是展現在我們的出題的邏輯裡面,其餘為了前端後端更加契合,我們對于我們的之前的個人項目的代碼進行了或多或少的修改,以及我們為了使得在做題過程中,題目容易計算,考慮到使用者的體驗,我們在原有的三角函數的基礎上,将三角函數的值設定成了1/3Pi, 1/4Pi, 1/6Pi來表示我們的60°,45°,30°,以及在開方過程中,我們将操作數設計成平方數。
其次代碼的複用,由于在登入驗證和修改密碼的同時,我們需要對于我們存儲使用者資訊的txt檔案userinfo.txt進行讀寫操作,這一部分代碼複用了上一次的将題目寫入檔案的操作。
檔案讀寫
4. 遇到的問題
在進行結對程式設計的過程中,我們需要對兩者定義的接口,消息的變量進行統一,統一的标準沒有在開始之前定好,結果就導緻了後續的test過程中,出現了問題,這也給我們發現問題消耗了很多時間。相信這對于我們團隊項目的開展有一定的經驗教訓。同時在進行出題邏輯的編寫過程中,發現在對題目的答案進行計算的過程中,進行字元串操作,很容易出現index越界的結果,導緻報錯,通過一一調試最終還是解決了這個問題,計算題目答案也是一個比較考慮邏輯的問題,起初自己的想法是通過棧去解決,實踐後發現有點困難,于是通過利用StringBuilder和容器來處理我們的題目,将題目的括号先處理掉,之後将數字和運算符放到兩個容器中,根據優先級去處理題目。
5. 總結
結對程式設計這鍛煉了我們團隊協作的能力,為我們接下來的團隊項目積累經驗,同時本次程式設計的内容也讓我們學到了很多之前未涉獵過的知識,這些無疑是增加了我們的能力儲備。本次程式設計同樣鍛煉了我們學中做,做中學的能力,這些相信對我們的未來又很大幫助。