1. 程式人生 > >結對程式設計總結+git使用與GitHub程式碼管理——by林玉俊&唐宇涵

結對程式設計總結+git使用與GitHub程式碼管理——by林玉俊&唐宇涵

一、分析需求

  在拿到結對程式設計專案需求文件後,我和隊友第一件事就是討論需求,分析專案給出的需求以及實現的一些細節。比如,登入介面的設定(註冊、重置、登入按鈕),註冊介面的輸入框設定(手機號、驗證碼、密碼、確認密碼),題目難度和數量介面的設定等這些邏輯流程問題。並大致對各個類需要實現的功能和介面進行了商定,這樣方便了後期的合攏。

  下圖為當時討論時的筆記——

二、程式設計實現

  我負責的是使用者手機註冊併發送驗證碼到相應手機號部分和隨機算式計算結果部分。

1、接收驗證碼部分

  最初是根據老師給的提示,在阿里雲平臺中申請簡訊服務,但簡訊簽名的申請過程非常非常非常不順利,總是因各種理由未通過,幾經修改也無濟於事。

  後來便開始尋找其他平臺,看是否能夠申請到他們的簡訊簽名。

       其中,百度雲、騰訊雲、凌凱這三家平臺成為了我們的第二條路。但是凌凱雖然穩定且老牌,但他不針對個人使用者,而是面對高校、企業等有大規模傳送簡訊需求的使用者,雖然其有十分成熟的簡訊驗證碼功能,但我們因無資質只能放棄;百度雲更是直接pass,因為其簡訊業務的開通需要公司執照,直接將我們扔出了門外。所幸,隨後騰訊雲給了我們一條生路。在開通了公眾號後,成功通過了簡訊簽名和簡訊正文模板的申請。

 

  至此,我們得到了傳送簡訊驗證碼的關鍵引數,並根據騰訊雲提供的java API模板在完成引數配置後實現了向用戶註冊手機號傳送簡訊驗證碼的功能。

2、隨機算式計算部分

  引用隊友之前隨機算式生成部分,隨機算式計算類Calculater傳入隨機生成的String型算式,輸出float型運算結果。運算過程中對“(”、“+”、“-”、“×”、“÷”、“)”、“=”這些操作符進行優先順序的定義,並按照優先順序分別將操作符和操作符左右的數字壓入棧中。

       下圖為對操作符的優先順序定義——

  為了簡化運算過程,我們對算式先進行了一些處理,將三角函式和平方開方部分先算出結果,將結果替換到原來的位置。在這裡我最開始運用的是for迴圈將結果和原字串位置進行移位,以達到替換的效果。但當平方數為102以上時這裡就會出現字串溢位的問題,所以我的隊友提出了使用StringBuilder中的replace方法實現對字串的替換並幫助我進行了修改,在這裡感謝大佬援手。

  下圖為對算式的提前處理部分——

Attention:在這裡,我要向大家隆重介紹一個函式——eval()

  這是多麼神奇的一個函式呢,大概就是讓我之前花在處理棧空錯誤的大把時間變成0。

  在丟擲異常處理後,輸入包含括號、數字(含小數)、+-×÷操作符的標準四則運算表示式後,一個回車便可計算出double型別的結果,可謂十分方便了……

  實現如下——

三、合攏測試

       在最後的合攏測試部分,隨著測試次數的增多,很多bug也接連出現,再次感謝大佬carry,修改瞭如閃退、輸入空、總分錯誤等bug。

 

四、使用git以及GitHub進行程式碼管理

  Java IDE中包含了git以及Github的功能整合,以IntelliJ IDEA為例,在“VCS-import into version control”裡面可以通過”Create git repository”來建立專案的git:

  然後就可以看到左下方出現了一個”Version control”的標籤:

  可以通過commit來記錄自己所做的更改。之後便會在“Version control”的“log”裡面看到自己的commit了:

  那麼git有什麼用呢?在本地工程中通過commit可以記錄檔案的改動,然後決定是否需要回退。可以設定分支來新增新功能,在功能可以實現時再將分支合併。而且,git可以將程式碼上傳到GitHub上面,在“VCS-import into version control”裡面通過”Share project on Github”來上傳專案到自己的GitHub賬戶上,那麼隊友即使不在身邊也可以讓他/她通過GitHub來時刻獲取程式碼的最新狀態了。當你想要上傳更改時,可以通過“push”命令來執行:

  如果自己的專案是克隆自別人的GitHub倉庫,可以通過“pull”指令獲取專案的最新狀態。如果上傳了專案,那麼就可以再GitHub的個人主頁上看到了,而且也是會記錄自己的專案歷史的:

五、以下為執行截圖

登入介面——

註冊介面——

當密碼不符要求時——

題目難度選擇介面——

題目數量設定介面——

答題介面——

分數顯示介面——