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