結對程式設計總結
阿新 • • 發佈:2021-10-08
1. 個人專案概述
1.1前端Vue+element-ui專案說明--順子大大完成
前端部分主要由四個頁面構成:
Login.vue---登陸的介面
Register.vue---註冊的頁面
Question.vue---做題的頁面
modifyPassword.vue--修改密碼的頁面
登入
註冊
做題
修改密碼
使用說明:使用vscode開啟,在終端輸入npm run dev,然後訪問http://localhost:8080即可。同時需要使用idea執行後端程式,才可以確保整個程式可以執行。
1.2後端springboot專案說明--鄙人完成
使用idea開啟該專案,專案包含兩個模組,common
1.2.1common下的common_utils子過程,有三個類。
message:是發簡訊的工具類
介面ResultCode和類R是約定返回給前端統一的資料格式,比如:
{ "success": true, "code": 20000, "message": "成功", "data": { "username": "admin" } }
1.2.2common下的service_base子工程,是整合 Swagger 管理 API 文件,便於我在測試後端的介面是否正常,專案啟動後端只需要訪問http://localhost:8081/swagger-ui.html。
1.2.3
2.後端專案搭建
2.1基礎專案框架
springboot可以直接使用idea自動生成,我使用的是之前的專案基礎框架,簡單做了修改就拿來複用了。
2.2簡訊模組--榛子云簡訊平臺
這樣一個小專案用阿里雲簡訊太麻煩了,用個野雞運營商就可以了,簡單易上手,連結http://sms_developer.zhenzikj.com/zhenzisms_user/index.html,使用教程http://smsow.zhenzikj.com/doc/java_sdk_doc.html
2.3出題模組
在個人專案的時候,出題模組,沒有考慮到實用性,對於開根號和三角函式沒有采用特殊值,導致計算表示式結果困難。在結對程式設計過程中,針對此模組進行了優化,更加易於計算,比如說開一些特殊值16,25,26,81等的根號,三角函式也是計算sin30,cos45,tan60等的值。
另外,根據文件要求“同一張卷子不能有相同題目”,不需要對出的所有題目進行查重,所以不需要對歷史出題記錄進行儲存,直接用list陣列,儲存當前出的一套題目並進行去重。
2.4計算模組
對於小學題目,我們利用兩個棧(操作符棧、運算元棧),來儲存讀入的字串表示式,然後根據輸入的運算子優先順序來判斷是否運算,還是進行入棧操作,最終運算元的棧底就是表示式的結果。對於高中和初中的題目就是先把他們那些高優先順序的符號三角函式,開方和開根算出來,題目轉化成小學那種形式。
3.前端:沒啥說的,現學現做。
4.專案經驗總結
4.1前後端對接
很多後端同學說我只負責寫介面,其他我一概不管,這樣造成的後果就是
1、介面結構無序、雜亂無章
2、介面和實際業務場景不相匹配、不可用
3、頻繁的同前端溝通,簡單的事情複雜化,前後端都很惱火
4、事情沒做好
後端在編寫介面前,首先是對業務的理解,在對業務未理解透徹之前,編碼都是無意義的,作為後端來說,需要鍛鍊自己對整個系統全域性考慮的能力,介面之間並非是毫無關聯的,我們在寫第一個介面之間,其他介面之間的業務邏輯也許考慮到,這在後端團隊合作開發不同功能的情況下顯得尤為重要.
後端在開發介面時,我覺得主要從以下幾個方面需要注意:
介面url 定義
介面型別、引數
全域性錯誤碼定義
介面json格式
介面文件編寫
介面url定義
可以參考如下文件
4.2經驗總結
在測試階段,也出現了幾個bug,比如說註冊的時候驗證碼收不到,前端點擊出題的時候,有時候出現題目數量缺失的情況,經過排查發現,在計算表示式的時候,情況沒有考慮全,有時候會出現死迴圈。好在及時排查出錯誤並解決了。
即使再優秀的程式設計師程式設計的時候也會出現bug,但是良好的程式碼規範以及註釋能及時幫助我們鎖定問題根源並解決問題。