福大軟工1816:團隊現場程式設計實戰(抽獎系統)
阿新 • • 發佈:2018-11-19
福大軟工1816 · 團隊現場程式設計實戰(抽獎系統)
隊員職責分工
團隊成員 | 分工 |
---|---|
張揚 | 預處理演算法、抽獎演算法、解決其他問題、本次部落格撰寫 |
韞月 | "建立抽獎活動"頁面的開發、“已釋出”“已結束”等頁面的動態生成 |
愈明 | "建立抽獎活動"頁面的開發、彈窗互動 |
文婧 | "已釋出"、"已結束"頁面的開發 |
地秀 | "已釋出"、"已結束"頁面的開發 |
全炯 | 各個頁面的整合、頁面切換、使用QSS進行美化 |
俊彥 | 輔助預處理演算法的開發、輔助抽獎演算法的設計 |
李翔 | 資料庫搭建、資料庫介面設計、Github合併的管理 |
加偉 | 資料庫搭建、資料庫介面設計 |
澤波 | 隨機演算法設計 |
github 的提交日誌截圖
程式執行截圖
由於我們對pyqt
的不熟悉,最終未能開發出可用的GUI(沒整合到一起)。我們開發出了以下功能:
帶有權重計算的自適應抽獎演算法
對聊天記錄的處理演算法(預處理演算法)
抽獎活動建立頁面
彈窗式三頁面切換功能
基於中文分詞技術的聊天內容分析並生成詞雲
基於對Smart QQ抓包的實時聊天記錄儲存模組
用於支援抽獎系統的資料庫模組
簡單的已釋出、已結束介面
程式執行環境
- Python 3.6
- 依賴庫
PyQt5
、qqbot
、jieba
、wordcloud
GUI介面
初始頁面
建立活動頁面
基礎功能實現
僅實現後臺演算法,未實現GUI部分
抽獎演算法
附加功能實現
聊天記錄分析並生成詞雲(對某OpenCV影象處理群聊天記錄的分析結果)
QQ聊天記錄自動爬取
鼓勵有想法且有用的功能
抽獎資訊自動生成圖片
遇到的困難及解決方法
張揚
- 遇到的困難:團隊對PyQt的不熟悉
- 解決方法:問題一時間得不到解決,只能說大家的學習程度還不夠,後面要接著學。同時自己也會轉到介面開發上面。
文婧
- 遇到的困難:遇到的最大的困難是對PyQt的不熟悉,沒法用它寫出自己想要的介面。
- 解決方法:上網搜教程,問隊友,但是最終還是沒辦法解決這個困難,沒能實現自己負責的介面,非常對不起團隊。
韞月
- 遇到的困難:
1.從前端到後端的繼承不熟悉
2.元件的動態生成不熟悉
3.總之pyqt不熟悉
4.pycharm的.ui轉.py的功能突然ERROR - 解決方法:
還能怎麼辦,找度娘啊啊啊啊!
瘋狂找案例,瘋狂搬磚,瘋狂Ctrl+R試執行,瘋狂傳ui檔案給隊友再接收py檔案
- 遇到的困難:
愈明
- 困難1:最初設計GUI介面時,對產品功能分析不夠明確,導致初版介面邏輯混亂。
解決方法:通過和隊友討論,更加明確產品功能,重新規劃介面,解決了問題。 - 困難2:對pyqt具體程式設計不夠熟悉,導致ui介面設計進展緩慢。
解決方法:現場學習教程,請教隊友,努力加快進度。
- 困難1:最初設計GUI介面時,對產品功能分析不夠明確,導致初版介面邏輯混亂。
地秀
- 用pyqt設計介面,但是pyqt不是非常熟練
解決方法:這是非常難受的一件事情,只好一邊百度一邊做設計
- UI設計的時候,.ui檔案轉成.py檔案,要在pycharm安裝外掛,但是一直安裝不成功
解決方法:按照百度的方法,一步一步操作,但是不對,只好一遍一遍重複操作,最後發現是自己粗心,英文字母打錯了,以後可以直接複製就直接複製吧┭┮﹏┭┮
澤波
- 遇到困難:python使用不熟悉,配置有問題
全炯
- 困難
PyQt掌握的情況並不夠好,會和能在短時間內做出來是兩個概念。
討論和設計必不可少,但要建立在較好掌握的情況下,否則合併的時候會很痛苦 - 解決
知恥而後勇,奮力掌握並精通
更加註重細節
要學會找輪子
- 困難
俊彥
- 困難:
PyQt掌握不好 - 解決:
轉向協助後端程式碼的開發
- 困難:
李翔
- 遇到的困難:資料庫介面需要有返回值時的語句出現問題,SQL語句的傳參問題
加偉
- 困難:
- 做資料庫介面的函式時,若需要返回資料庫中的值,會造成返回值與關閉資料庫連線的衝突。
- 在介面中直接傳引數會出現問題。
- 做資料庫的時候不清楚前端的需要,導致對接的時候需要做較大更改。
- 解決:
- 返回值是sqlite3類,他在關閉資料庫連線後就不存在了。因此要把它存成其他形式儲存。
- 需要用到佔位符‘ ?’傳入的引數記得後面加+
- 多次討論後得到解決
- 困難:
馬後炮
- 俊彥:如果往前推幾天,那麼我會多放一些時間來進行PyQt的學習
- 李翔:如果沒有這次現場程式設計開發,那麼我就任然菜的安詳
- 愈明:如果再給我一次機會,我一定不會選擇進實驗班orz
- 文婧:如果可以回到過去,那麼我一定邊看教程邊動手
- 韞月:沒有馬後炮,一切都是自己太菜了
- 張揚:如果可以重來,我想重新考慮一下要不要選這門課
PSP表格
個人PSP
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | ||
· Estimate | · 估計這個任務需要多少時間 | ||
Development | 開發 | ||
· Analysis | · 需求分析 (包括學習新技術) | ||
· Design Spec | · 生成設計文件 | ||
· Design Review | · 設計複審 | ||
· Coding Standard | · 程式碼規範 (為目前的開發制定合適的規範) | ||
· Design | · 具體設計 | ||
· Coding | · 具體編碼 | ||
· Code Review | · 程式碼複審 | ||
· Test | · 測試(自我測試,修改程式碼,提交修改) | ||
Reporting | 報告 | ||
· Test Repor | · 測試報告 | ||
· Size Measurement | · 計算工作量 | ||
· Postmortem & Process Improvement Plan | · 事後總結, 並提出過程改進計劃 | ||
合計 |
學習進度表
個人學習進度條
第N周 | 新增程式碼(行) | 累計程式碼(行) | 本週學習耗時(小時) | 累計學習耗時(小時) | 重要成長 |
---|---|---|---|---|---|
2 | 413 | 413 | 21 | 21 | 學用git;接觸vs效能分析、單元測試功能; |
3 | 0 | 413 | 16.5 | 37.5 | 閱讀《構建之法》;結對配合;學習NABCD模型;接觸原型開發工具 |
4、5 | 1061 | 1474 | 23.5 | 61 | 結對配合經驗up;瞭解接觸爬蟲 |
6-9 | 500 | 1974 | 100 | 161 | 團隊合作經驗up;學習Python;學習PyQt |
10 | 265 | 2239 | 25 | 186 | 繼續學習PyQt,開始動手實踐 |
…… |