- 項目要求
- 組長部落格
遇到的困難及解決辦法
組員1(組長):王彬
遇到的困難
- 在團隊任務分工的時候沒有充分照顧到所有人,導緻隊員們的工作量不均。
- 現場程式設計時間不夠
解決辦法
- 在此對組員們表示抱歉,由于缺乏經驗導緻這樣的情況發生
- 下課後爆肝完成任務
組員2:趙暢
- 收獲:通過這次抽獎系統的作業,獲得了更多有關建立資料庫、向資料庫導入資料、資料接口設計、背景處理邏輯、頁面設計、前後端互動的經驗。這有助于我alpha沖刺的進一步開發。
(馬後炮才一句話不夠說啊)說實話在課堂上的三個半小時,沒做出什麼事情來。總結了一下可能有下述原因:1.教室人多太吵,腦子裡太雜亂了。2.由于熟練度不夠,會碰到很多報錯,仍沒有到達“創造階段”,還需要花很多時間解決報錯問題。3.小組人數太多,其實PM也很為難,拿到一個題目,把它分成9個部分,讓人人都有事情做,考慮到大家又都不是熟練工,水準層次不齊(也就是還需要花時間學習新知識、花時間處理報錯,而不能直接上手寫代碼),是真的很難,基本上是不可能的。4.組内人數太多,導緻大家交流的成本也很高,經常這裡抛出一個問題那裡不清楚一個接口,在交流中時間很快就溜走了。是以三個多小時,我基本上就寫了點建表這樣的簡單邏輯,臨下課時還把資料庫搞崩了。下課的時候我就在心裡默默的吐槽,這作業是三個多小時能搞出來的東西??吃中午飯的時候都是頭暈眼花的。睡了個午覺,三點鐘我搬電腦跑到PM的宿舍,理邏輯、碼代碼。下午我把資料庫重新搭建好,負責處理資料的C哥也搞定了把資料發過來了,總算可以開始寫背景邏輯了。晚上王源也過來了,三人一直做到鄰近deadline終于弄出了初版。
回頭想想為什麼早上的三個小時之内做不完,其實不是因為題目太難,首先個人方面,還是因為自己熟練度不夠導緻出一些低級錯誤,要花很多精力去排錯。團隊方面,小組人數太多,分工不合理(或者說根本沒辦法合理分工)。出現了這種狀況:早上有的成員問:“我現在該做什麼?”但卻得不到PM或者其他隊員的回複,隻能尴尬地坐在原地自閉。其實當時我也知情的,但當時我被資料庫的報錯弄得焦頭爛額,大腦裡實在沒有記憶體再去想“我應該給我的隊友配置設定什麼工作”這樣的問題。到了下午,deadline在即,我隻得爆肝把作業完成。少數幾個人出了大部分的力,部分組員體驗不好。對此我感到很抱歉……
其他的技術上的困難解決了之後都不是困難。我們小組内有形成自己的技術文檔友善共享學習和快速查找解決方案。
(真正的馬後炮)如果把這個程式設計實踐放在alpha之前的那一段比較空閑的時間,大家都多花點時間熟悉語言/架構,也許效果會好一些?
組員3:胡展瑞
- 前端界面在laravel架構下如何調用css檔案
- 前端界面顯示不一緻
- 感覺自己劃水占比較多
- 放在public/css
- 使用相同浏覽器(chrome)
組員4:李恒達
- 網頁前端0了解,現學現用
-
html、css的語言現學用,短時間内隻做出了簡陋的頁面且漏洞百出,也給後端
的隊友們添了不少麻煩,很抱歉。
- 上“菜鳥教程”,走一步看一步的學與用。
- 遇到不懂的地方問隊友。
(馬後炮)說不上愛别說話,就任由的菜。
組員5:林煌偉
- 與後端接口互動不明确,導緻前端界面代碼一直修改
- 對代碼不夠熟悉,時間不夠,界面過于簡陋
- 邊做邊修改代碼
- 積極與後端隊員溝通
組員6:陳志炜
- txt檔案中隐藏的坑較多 直接用記事本或者atom打開看不出有換行,結果是存在換行的,CRLF、LF是混合的,賬号的格式有(XXXX) 還有少部分 , 格式比較混亂,處理起來比較困難。
- 一開始是按行讀取,發現問題後,改成用正則一行一行匹,比對出内容以及消息的資訊,把格式問題一個個處理掉。然後同時過濾掉系統消息,匿名消息的賬号。
組員7:陳文垚
- 不知道如何在HTML頁面上GET到後端伺服器的資料并展示到前端頁面
- 對HTML有些陌生,寫的界面堪稱醜陋,對不住我的隊友
- 找部落格找資源學習,但是尚未成功學會......
- 現學現用,和隊友進行讨論一起設計
組員8:佘嶽昕
就是實戰的時候分工不明确詢問數次無果導緻我幹坐了一早上非常尴尬吧 不過給予團隊了解 大家都很忙有自己的事要做 我自己也是有問題的 慢慢一起成長吧
- 繼續學習之前未完成的教程,課後研究附加題部分
組員9:王源
- 熟練度不夠出現了很多的低級錯誤
- 接口和功能需求的交流花費了些時間
- 和趙暢一同梳理邏輯和編寫代碼
- 下課後爆肝
事先設計的函數子產品及分工
項目思維導圖:
接口設計:
前端:
- 接口一:POST請求包含(抽獎關鍵詞、活動文案、選取的聊天記錄時間段、獲獎人數、是否過濾平時未發言使用者、是否進行深度過濾、獎品)
- 接口二:根據後端傳回的中獎名單json将結果渲染到前端頁面中
後端:
- 接口一:根據前端使用者制定的抽獎規則對資料庫中聊天記錄進行篩選并選出中獎使用者名單,結果以json傳回前端
組員職責分工
姓名 | 分工 |
---|---|
王彬 | 任務劃分、接口制定 |
趙暢 | 聊天記錄導入資料庫、後端業務邏輯實作、項目部署到雲 |
李恒達 | 結果展示頁面設計、結果展示頁面設計 |
胡展瑞 | 界面UI設計、前端代碼合并 |
王源 | 抽獎算法設計實作 |
佘嶽昕 | 後端業務邏輯實作 |
陳志炜 | 結構化聊天記錄并進行清洗、将聊天記錄轉換為.csv檔案 |
陳文垚 | 發送規則接口實作、結果展示頁面設計 |
林煌偉 | 抽獎規則界面設計、結果展示頁面設計 |
程式運作環境
項目是基于laravel架構搭建的web端服務,已經部署到騰訊雲上。老師和助教可以直接通路http://193.112.6.8
程式運作截圖 & GUI界面
- 抽獎系統首頁
- 點選開始抽獎按鈕來到規則制定頁
- 填入相應抽獎規則
- 如果缺少必要參數,或者填寫不合理,系統會進行相應提示
- 抽獎結果公布
基礎功能實作清單
功能需求 | 是否實作 | 實作效果 |
---|---|---|
設定參與抽獎關鍵詞 | 實作 | 支援單個或多個關鍵詞的制定 |
抽獎活動文案 | 可以将抽獎文案展示到抽獎結果頁面 | |
抽獎發言時段 | 支援從某一時間段的使用者發言記錄中 | |
抽獎過濾規則 | 可以根據使用者發言記錄數進行過濾 | |
抽獎結果公布時間 | 部分實作 | 使用者可以自定抽獎公布時間 |
抽獎人數 | 可以自定中獎人數,當符合條件的使用者少于中獎人數時能傳回正确結果 | |
獎品清單 | 可以在結果展示頁面展示獎品清單 | |
獲獎名單 | 可以根據後端的中獎名單将獲獎名單展示出來 |
鑒于時間所限,在17号晚上11點之前未能完成附加功能的設計。(QQ聊天記錄爬取、分析、生成圖檔等)
抽獎算法設計思路
github代碼上傳記錄
github倉庫位址:https://github.com/BenjaminAlvis/live-project
共三十多次commit
貢獻度評定
貢獻度 | |
---|---|
9% | |
26% | |
5% | |
20% | |
PSP
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 5 | |
· Estimate | · 估計這個任務需要多少時間 | ||
Development | 開發 | 150 | 270 |
· Analysis | · 需求分析 (包括學習新技術) | 10 | 30 |
· Design Spec | · 生成設計文檔 | ||
· Design Review | · 設計複審 | ||
· Coding Standard | · 代碼規範 (為目前的開發制定合适的規範) | ||
· Design | · 具體設計 | 40 | |
· Coding | · 具體編碼 | 100 | 200 |
· Code Review | · 代碼複審 | ||
· Test | · 測試(自我測試,修改代碼,送出修改) | ||
Reporting | 報告 | 25 | |
· Test Repor | · 測試報告 | 15 | |
· Size Measurement | · 計算工作量 | ||
· Postmortem & Process Improvement Plan | · 事後總結, 并提出過程改進計劃 | ||
合計 | 180 | 300 |
學習進度條
第N周 | 新增代碼(行)| 累計代碼(行)| 本周學習耗時(小時) | 累計學習耗時(小時) | 重要成長
---|---|---|---|---|---|---
1 | 500 | 500 | 12 | 12 | 單元測試的編寫
2 | 0 | 500 | 10 | 22 | Axure原型設計工具的使用
3 | 500 | 1000 | 10 | 32 | c++算法設計編寫能力,Debug調試能力
4 | 200 | 1200 | 10 | 42 | 學習網頁設計(html)
5 | 200 | 1400 | 10 | 52 | 學習網頁設計(css)
6 | 200 | 1600 | 8 | 60 | 學習網頁設計(JavaScript)
7 | 300 | 1900 | 10 | 70 | web端界面開發