軟工1816 · 做業(九)團隊現場編程實戰

遇到的困難及解決辦法

組員1(組長):王彬

遇到的困難 php

  • 在團隊任務分工的時候沒有充分照顧到全部人,致使隊員們的工做量不均。
  • 現場編程時間不夠

解決辦法css

  • 在此對組員們表示抱歉,因爲缺少經驗致使這樣的狀況發生
  • 下課後爆肝完成任務

組員2:趙暢

  • 收穫:經過此次抽獎系統的做業,得到了更多有關新建數據庫、向數據庫導入數據、數據接口設計、後臺處理邏輯、頁面設計、先後端交互的經驗。這有助於我alpha衝刺的進一步開發。html

  • 遇到的困難 前端

(馬後炮才一句話不夠說啊)說實話在課堂上的三個半小時,沒作出什麼事情來。總結了一下可能有下述緣由:1.教室人多太吵,腦子裏太雜亂了。2.因爲熟練度不夠,會碰到不少報錯,仍沒有到達「創造階段」,還須要花不少時間解決報錯問題。3.小組人數太多,其實PM也很爲難,拿到一個題目,把它分紅9個部分,讓人人都有事情作,考慮到你們又都不是熟練工,水平層次不齊(也就是還須要花時間學習新知識、花時間處理報錯,而不能直接上手寫代碼),是真的很難,基本上是不可能的。4.組內人數太多,致使你們交流的成本也很高,常常這裏拋出一個問題那裏不清楚一個接口,在交流中時間很快就溜走了。因此三個多小時,我基本上就寫了點建表這樣的簡單邏輯,臨下課時還把數據庫搞崩了。下課的時候我就在內心默默的吐槽,這做業是三個多小時能搞出來的東西??吃中午餐的時候都是頭暈眼花的。睡了個午覺,三點鐘我搬電腦跑到PM的宿舍,理邏輯、碼代碼。下午我把數據庫從新搭建好,負責處理數據的C哥也搞定了把數據發過來了,總算能夠開始寫後臺邏輯了。晚上王源也過來了,三人一直作到鄰近deadline終於弄出了第一版。java

回頭想一想爲何早上的三個小時以內作不完,其實不是由於題目太難,首先我的方面,仍是由於本身熟練度不夠致使出一些低級錯誤,要花不少精力去排錯。團隊方面,小組人數太多,分工不合理(或者說根本沒辦法合理分工)。出現了這種情況:早上有的成員問:「我如今該作什麼?」但卻得不到PM或者其餘隊員的回覆,只能尷尬地坐在原地自閉。其實當時我也知情的,但當時我被數據庫的報錯弄得焦頭爛額,大腦裏實在沒有內存再去想「我應該給個人隊友分配什麼工做」這樣的問題。到了下午,deadline在即,我只得爆肝把做業完成。少數幾我的出了大部分的力,部分組員體驗很差。對此我感到很抱歉……python

其餘的技術上的困難解決了以後都不是困難。咱們小組內有造成本身的技術文檔方便共享學習和快速查找解決方案。linux

  • 解決辦法

(真正的馬後炮)若是把這個編程實踐放在alpha以前的那一段比較空閒的時間,你們都多花點時間熟悉語言/框架,也許效果會好一些?laravel

組員3:胡展瑞

遇到的困難 git

  • 前端界面在laravel框架下如何調用css文件
  • 前端界面顯示不一致
  • 感受本身划水佔比較多

解決辦法github

  • 放在public/css
  • 使用相同瀏覽器(chrome)

組員4:李恆達

遇到的困難 

  • 網頁前端0瞭解,現學現用
  • html、css的語言現學用,短期內只作出了簡陋的頁面且漏洞百出,也給後端
    的隊友們添了很多麻煩,很抱歉。

解決辦法

  • 上「菜鳥教程」,走一步看一步的學與用。
  • 遇到不懂的地方問隊友。

(馬後炮)說不上愛別說話,就職由的菜。

組員5:林煌偉

遇到的困難 

  • 與後端接口交互不明確,致使前端界面代碼一直修改
  • 對代碼不夠熟悉,時間不夠,界面過於簡陋

解決辦法

  • 邊作邊修改代碼
  • 積極與後端隊員溝通

組員6:陳志煒

遇到的困難 

  • txt文件中隱藏的坑較多 直接用記事本或者atom打開看不出有換行,結果是存在換行的,CRLF、LF是混合的,帳號的格式有(XXXX) 還有少部分 , 格式比較混亂,處理起來比較困難。

解決辦法

  • 一開始是按行讀取,發現問題後,改爲用正則一行一行匹,匹配出內容以及消息的信息,把格式問題一個個處理掉。而後同時過濾掉系統消息,匿名消息的帳號。

組員7:陳文垚

遇到的困難 

  • 不知道如何在HTML頁面上GET到後端服務器的數據並展現到前端頁面    
  • 對HTML有些陌生,寫的界面堪稱醜陋,對不住個人隊友

解決辦法

  • 找博客找資源學習,可是還沒有成功學會......  
  • 現學現用,和隊友進行討論一塊兒設計  

組員8:佘嶽昕

遇到的困難 

就是實戰的時候分工不明確詢問數次無果致使我幹坐了一早上很是尷尬吧 不過給予團隊理解 你們都很忙有本身的事要作  我本身也是有問題的 慢慢一塊兒成長吧

解決辦法

  • 繼續學習以前未完成的教程,課後研究附加題部分

組員9:王源

遇到的困難 

  • 熟練度不夠出現了不少的低級錯誤
  • 接口和功能需求的交流花費了些時間

解決辦法

  • 和趙暢一同梳理邏輯和編寫代碼
  • 下課後爆肝

事先設計的函數模塊及分工

項目思惟導圖:

抽獎系統.png

接口設計:

前端:

  • 接口一:POST請求包含(抽獎關鍵詞、活動文案、選取的聊天記錄時間段、獲獎人數、是否過濾平時未發言用戶、是否進行深度過濾、獎品)

  • 接口二:根據後端返回的中獎名單json將結果渲染到前端頁面中

後端:

  • 接口一:根據前端用戶制定的抽獎規則對數據庫中聊天記錄進行篩選並選出中獎用戶名單,結果以json返回前端

組員職責分工

姓名 分工
王彬 任務劃分、接口制定
趙暢 聊天記錄導入數據庫、後端業務邏輯實現、項目部署到雲
李恆達 結果展現頁面設計、結果展現頁面設計
胡展瑞 界面UI設計、前端代碼合併
王源 抽獎算法設計實現
佘嶽昕 後端業務邏輯實現
陳志煒 結構化聊天記錄並進行清洗、將聊天記錄轉換爲.csv文件
陳文垚 發送規則接口實現、結果展現頁面設計
林煌偉 抽獎規則界面設計、結果展現頁面設計

程序運行環境

項目是基於laravel框架搭建的web端服務,已經部署到騰訊雲上。老師和助教能夠直接訪問http://193.112.6.8

程序運行截圖 & GUI界面

  • 抽獎系統首頁

chrome_2018-11-18_13-52-45.png

  • 點擊開始抽獎按鈕來到規則制定頁

chrome_2018-11-18_13-54-32.png

  • 填入相應抽獎規則

chrome_2018-11-18_14-03-38.png

  • 若是缺乏必要參數,或者填寫不合理,系統會進行相應提示

chrome_2018-11-18_14-10-25.png

  • 抽獎結果公佈

chrome_2018-11-18_14-09-23.png

基礎功能實現列表

功能需求 是否實現 實現效果
設置參與抽獎關鍵詞 實現 支持單個或多個關鍵詞的制定
抽獎活動文案 實現 能夠將抽獎文案展現到抽獎結果頁面
抽獎發言時段 實現 支持從某一時間段的用戶發言記錄中
抽獎過濾規則 實現 能夠根據用戶發言記錄數進行過濾
抽獎結果公佈時間 部分實現 用戶能夠自定抽獎公佈時間
抽獎人數 實現 能夠自定中獎人數,當符合條件的用戶少於中獎人數時能返回正確結果
獎品列表 部分實現 能夠在結果展現頁面展現獎品列表
獲獎名單 實現 能夠根據後端的中獎名單將獲獎名單展現出來

鑑於時間所限,在17號晚上11點以前未能完成附加功能的設計。(QQ聊天記錄爬取、分析、生成圖片等)

抽獎算法設計思路

抽獎算法.png

github代碼上傳記錄

github倉庫地址:https://github.com/BenjaminAlvis/live-project

共三十屢次commit

2018-11-18_14-57-39.png

貢獻度評定

姓名 貢獻度
王彬 9%
趙暢 26%
李恆達 5%
胡展瑞 5%
王源 20%
佘嶽昕 5%
陳志煒 20%
陳文垚 5%
林煌偉 5%

PSP

PSP2.1    Personal Software Process Stages   預估耗時(分鐘) 實際耗時(分鐘)
Planning  計劃 5 5
· Estimate    · 估計這個任務須要多少時間 5 5
Development 開發 310 330
· Analysis    · 需求分析 (包括學習新技術) 130 150
· Design Spec     · 生成設計文檔 120 105
· Design Review   · 設計複審 0 0
· Coding Standard     · 代碼規範 (爲目前的開發制定合適的規範) 0 0
· Design     · 具體設計 0 0
· Coding   · 具體編碼 60 75
· Code Review     · 代碼複審 0 0
· Test    · 測試(自我測試,修改代碼,提交修改) 0 0
Reporting  報告 15 20
· Test Repor  · 測試報告 0 0
· Size Measurement    · 計算工做量 10 10
· Postmortem & Process Improvement Plan   · 過後總結, 並提出過程改進計劃 5 10
    合計 330 355

學習進度條

第N周 新增代碼(行) 累計代碼(行) 本週學習耗時(小時) 累計學習耗時(小時) 重要成長
1 278 278 6 6 複習了C++,學習了文件讀入讀寫,字符操做
2 0 278 5 11 學習了Axure RP的使用,以及NABCD模型
3 113 391 15 26 複習了python爬蟲和java的爬蟲
4 200 591 13 39 學習了linux下的文件操做和網絡編程
5 213 804 10 49 學習了使用GTK編寫圖形界面
6 0 804 7 56 學習了processon的使用,UML圖的建立
7 140 944 16 72 學習了linux下多線程的編程,學習撰寫需求分析報告
8 60 1004 8 8 學習了laravel的開發環境搭建,編寫第一個php文檔
9 300 1304 20 100 學習了laravel框架的基本開發流程,掌握了路由和HTTP協議等技能
相關文章
相關標籤/搜索