天天看點

第三次作業

031302328 031302221

功能分析

這次的實驗要求是将初始的排課excel空表導入系統,再将其展現在你們設計的原型裡。 這個功能其實分為兩步:

1 将初始排課表解析出來,并發送到服務端,插入到資料庫中;

2 從伺服器上請求排課資料并顯示在 web或APP的界面裡。

實作思路

根據第一次小組結對程式設計對需求分析及實作的方式,我們小組打算用APP實作這個功能。

  • 在APP的布局上面提供一個Import的按鈕和一個Display的按鈕。
  • 當點選Import按鈕的時候,就能夠進行存儲路徑的選擇,進而選擇相對應的Excel表格,得到Excel的路徑。根據這個路徑将Excel表格資料解析出來,再将其存入到系統資料庫當中。對于Excel資料的解析,我們采用網上的開源的包Jxl,按行解析出資料。資料解析出來之後,接下來就是将資料按照一定的規則存入到資料庫當中。存儲成功失敗都會進行提示。
第三次作業
第三次作業
  • 當點選Display時,可以實作對資料的呈現,這裡的資料是從之前存在伺服器上面擷取下來的,擷取下來采取ListView對資料進行展示。并且顯示隻顯示出簡略的資訊,當點選後會出現詳細資訊的頁面。
第三次作業
第三次作業
  • 由于這次開發考慮到伺服器并不需要很強的拓展能力,隻需要對資料進行插入删除。是以我們隊選擇了Bmob後端雲進行開發,它開發友善快捷,而且簡單易學,并且省去了購買伺服器和搭建伺服器的時間。
  • 這是在背景的資料
    第三次作業

資料庫設計的考量

這次的實驗要求是要初始的排課excel空表導入系統,再展現在設計好的原型裡。

  • 考慮到本次的實驗要求隻是實作這個功能,不考慮後續細節的可拓展性和全面性的要求,我們隻是單純建了一張Course表格,為了Excel導入的友善,表格的表頭按照排課表設計。
  • 考慮到課程名字的唯一性,我們将課程名定為Primary key,這樣做的好處就是防止多次導入,導緻資料庫出現一些重複無用的資料。對資料庫的設計采用PowerDesigner軟體設計,具體的設計過程已在“使用PowerDesigner建立表并導入到資料”這篇随筆當中寫對外連結接

psp表格

PSP2.1 Personal Software Process Stages Time
Planning 計劃 5
· Estimate · 估計這個任務需要多少時間
Development 開發 70
· Analysis · 需求分析 (包括學習新技術) 15
· Design Spec · 生成設計文檔
· Design Review · 設計複審 (和同僚稽核設計文檔) 2
· Coding Standard · 代碼規範 (為目前的開發制定合适的規範) 10
· Design · 具體設計
· Coding · 具體編碼 20
· Code Review · 代碼複審
· Test · 測試(自我測試,修改代碼,送出修改) 3
Reporting 報告 25
Test Report · 測試報告
Size Measurement · 計算工作量
Postmortem 事後總結
Process Improvement Plan 并提出過程改進計劃
合計 100

源碼Github連結以及Github上的commit的日志連結

日志:

第三次作業

結對照片

第三次作業
第三次作業

結對經曆小結

通過兩次的結對程式設計,真是受益匪淺,過程是艱難的,但更多的是享受。

結對程式設計過程中感受到的結對程式設計帶來的好處:

  • 衆人拾柴火焰高。兩個人分工協作,在一定程度上會減輕個人的工作量,遇到問題時,兩個人可以一起去解決,加快了問題的解決速度。
  • 合作中互相學習,共同進步。在合作的過程中,會自覺或不自覺受到隊友的影響,慢慢改進自己的編碼風格,解決問題的視角和能力,就算是給隊友提供幫助的過程當中,自己的能力也能得到鍛煉。
  • 休息的時候可以一起聊聊天。勞逸結合,當敲累的時候,停下來休息的時候,可以和隊友交流經驗,就算聊得雲裡霧裡的,也是很好的放松方式。

結對程式設計過程中遇到的困難:

  • 程式設計工具的不統一。就拿開發Android來講,兩個人之前各自搭建的Android環境不同,一人是Eclipse,另外一人是Android Stdio,這就得要有一方重新搭建,不然在git hub上面就很難實作增量開發模式。
  • 代碼的編寫習慣不一樣。兩人共同去完成一個項目,編寫習慣存在着太過于大的差異就容易導緻代碼後續閱讀的艱難。
  • 編碼經驗存在差異。這導緻任務配置設定完後,真正的實作時間比預計時間來得長,分析如下:因為是兩人共同完成,很多情況下當甲完成a部分,乙完成b部分,甲才能繼續做c部分,這個時候如果乙相對甲經驗不足,容易導緻甲處于空等待狀态,降低了效率。

本次程式的不足:

  • UI不夠優化,都是從簡做的。
  • 對于使用者的錯誤操作沒有考慮周全。
  • 使用者體驗不夠好,向服務端送出請求時出現等待的時間沒有提醒。
  • 後面這段時間會繼續優化。