目錄html
團隊名稱:WhatAHardChoice前端
照片 | 姓名&自我介紹 | 指望角色 |
---|---|---|
我是周BW,喜好攝影、音樂及各類新奇的技術。技術上後端熟悉Java、Python,前端會一點vue,熟悉PS還能夠當美工。總之什麼都會一點但都不夠深,但願能在與你們合做的過程當中與你們一同窗習進步! | 開發&PM/美工 | |
我是周GJ,喜歡體驗生活,愛好挺多,運動旅遊電影音樂。對C、Java、C#比較熟悉,各類語言都能快速上手。有緣能成爲一個團隊,合做愉快! | 開發 | |
我是何YF,平時喜歡追劇看番,能力不足,熱情有餘。偏向作測試,也願意給開發的同窗提供各類協助。很高興能和你們成爲一個團隊,也但願接下來合做愉快! | 測試 | |
我是樊ZK,業餘時間喜歡玩遊戲看電影。比較熟悉C/C++,也能夠開發也能夠測試(哪邊缺人去哪邊)。技術可能不是很是好,可是願意學習。 | 開發或測試 | |
我是王ZQ,喜歡電影、電視劇和綜藝,能力通常水平有限,希望意多學習。對C和Java比較熟悉,偏向作測試。很是高興加入這個團隊,但願在以後的任務裏能一塊兒努力,合做愉快。 | 測試 | |
我是楊S,喜歡遊戲、電影、電視劇,固然也喜歡編程。對C和Java比較熟悉,偏向開發。能力還有不少不足,水平也有限,希望意多多學習,跟你們共同進步 | 開發 | |
我是殷LXY,愛好是看小說、玩遊戲,如今正抓緊時間鍛鍊本身的編程能力。對C/Java比較熟悉,偏向測試,也可也作一些測試之外的雜務及輔助pm工做。很高興能和你們一個團隊,會盡力爲團隊作出貢獻 | 測試&文檔 |
典型用戶1 | 典型用戶2 | 典型用戶3 | |
---|---|---|---|
姓名 | 小王 | 小李 | 小張 |
性別、年齡 | 男、20 | 男、20 | 男、20 |
職業 | 大二 | 大二 | 大二 |
收入 | 無 | 無 | 無 |
知識層次和能力 | 本科在讀,善於利用網絡工具,物理系學生 | 本科在讀,善於利用網絡工具,非物理系學生 | 本科在讀,善於編程,計算機系學生 |
生活/工做狀況 | 上學 | 上學 | 上學 |
動機、目的、困難 | 動機:物理實驗必修課;目的:想取得好成績;困難:每次實驗以前,得花大量時間查找資料寫預習報告,在實驗數據處理上存在困難。期末考試複習找不到資料。 | 動機:物理實驗必修課;目的:想取得好成績;困難:每次實驗都要花費大量時間,還有其餘專業課的負擔 | 動機:物理實驗必修課,本身會編寫腳本處理數據;目的:但願分享本身的腳本給他人使用;困難:沒有途徑分享,分享給他人後他人不會用 |
用戶偏好 | 認真學習,善於利用電腦手機 | 喜歡社交、善於利用電腦手機 | 樂於助人、但願幫助你們學習 |
用戶比例 | 40% | 50% | 10% |
典型場景 | 在網站上發現有不少實驗的預習報告,以及對數據的處理 | 在網站上發現能自動處理數據,來檢測本身的結果是否正確 | 申請管理員權限後,上傳並調試本身的腳本 |
典型描述 | 認真嚴謹、踏實 | 追求簡單、效率 | 樂於助人 |
功能 | 功能描述 | 驗收標準 | |
---|---|---|---|
用戶 | 用戶認證 | 用戶註冊 用戶登錄/登出 郵箱認證 修改密碼 |
可以正常註冊 可以正常登錄,並維持登陸狀態 可以收到認證郵件並認證 可以修改密碼 |
信息修改 | 查看我的信息 修改我的信息 上傳頭像 |
可以瀏覽本身的我的信息 可以修改我的信息並於服務器同步 可以上傳/修改本身的頭像 |
|
實驗 | 預習實驗 | 預習報告 | 每一個實驗可以看到相應的預習報告,預習報告內容正確 |
數據處理 | 數據處理運行 數據處理正確性 數據處理報錯 支持不一樣效果的模板 |
實驗的腳本可以根據輸入數據運行獲得結果 實驗腳本可以獲得正確的數據 實驗腳本在遇到錯誤輸入時能報錯 不一樣的模板都能生成合格的報告 |
|
評論 | 實驗界面評論區評論 | 可以在實驗界面看到他人評論,並能發送簡單的評論信息 | |
收藏 | 收藏實驗報告 查看收藏報告 下載收藏報告 刪除收藏報告 |
可以在報告生成後收藏相應報告 可以查看本身收藏的報告 可以下載本身收藏的報告 可以刪除(取消收藏)本身收藏的報告 |
|
社區 | 發表問題 | 發表問題,提供問題描述 點贊他人的回答 |
可以發表問題,並在問題描述中提供圖文、附件等信息 可以對他人答案點贊,本身的答案可以被點贊 |
回覆 | 回覆某一文章/問題/答案 | 可以在某一文章/問題/答案下評論,並附帶圖文或附件等信息 | |
發表文章 | 發表文章 | 可以發表一篇文章,並附帶圖文、附件等信息 | |
控制檯 | 新建實驗 | 新建一個小實驗 | 可以正確新建實驗,新建後實驗處於未發佈狀態,且自帶實驗模板 |
上傳報告 | 上傳預習報告至相應實驗組下 | 可以上傳PDF格式的預習報告,可以攔截錯誤的文件上傳 | |
編輯腳本代碼 | Python/Latex/Html/Markdown編輯 html實時預覽 |
可以編輯/保存某個實驗的代碼 可以在編輯html表格時實時預覽 |
|
運行測試 | 輸入數據運行測試 | 可以在輸入數據的狀況下運行測試,並返回服務端的運行日誌 | |
發佈/刪除實驗 | 發佈實驗 刪除未發佈實驗 |
可以正常發佈實驗,發佈後用戶能夠在實驗區看到 可以刪除未發佈實驗,刪除後服務端文件也被清空 |
|
主頁 | 公告欄 | 顯示公告欄 修改公告欄 |
全部用戶都能看到公告欄 只有管理員可以修改公告欄、且修改可持久化 |
設計性實驗 | 設計性實驗複習 | 切換實驗內容 點擊顯示/隱藏答案 |
可以切換不一樣的實驗(共8個) 點擊挖空部分可以顯示/隱藏答案 |
其餘 | 移動端 | 總體顯示正常 基本功能可用 |
移動端顯示沒有明顯的溢出、錯亂狀況 註冊登陸、生成報告、設計性實驗等基本功能可以使用 |
截至6月17日晚,共有70人次在網站註冊。Beta階段和Gamma階段註冊量增量不大,緣由一是宣傳力度減弱,二是新功能不須要註冊便可使用,且綜合實驗在Gamma階段已經結束。vue
網站訪問量方面,截至6月17日晚設計性實驗頁面總訪問量417次。laravel
在生成報告界面能夠選擇報告生成方式:Latex或Markdown模板。git
目前全部實驗都支持使用兩種模板生成報告了。github
與Alpha階段對比: Markdown模板內容與Latex模板內容一致,僅樣式略顯簡陋,但生成速度大大提高(詳見測試報告-性能測試部分)。數據庫
控制檯管理的內容由以前的三件套(Python/Latex/HTML)轉爲了四件套(+Markdown)。原先的操做均不受影響。增長了Markdown接口的測試。編程
無需登錄便可直接訪問:設計性實驗複習小程序
上線了8個考試實驗內容,內容參考了往屆的複習資料。支持使用鼠標滑過、點擊的方式顯示與隱藏答案。後端
Gamma階段修復了點擊事件的問題,目前該頁面在移動端也能正常工做了。
上線了兩個小實驗2160115密立根油滴實驗 和 2200116聲光衍射實驗。
Gamma階段因爲綜合實驗結束,暫未考慮增長新的實驗內容。
Beta階段引入了主頁公告欄,Gamma階段引入了公告欄的編輯功能。
因爲以前項目之前並未考慮到移動端使用的問題,移動端的原有頁面崩壞嚴重,報告生成沒法使用。
與Alpha階段對比: 點此查看之前移動端頁面的諸多問題
Beta階段咱們改善了移動端的顯示,使移動端可以正常生成和查看報告。
用戶界面目前支持上傳本身的頭像了。
修復了密碼修改接口,目前能夠在登錄頁面-忘記密碼連接中向註冊郵箱發送修改密碼連接。
該部分詳情將於第五部分介紹。
與Alpha階段不一樣,在Beta和Gamma階段團隊格外重視測試,進行了包括單元測試、性能測試、接口測試等一系列測試,在提高項目總體質量的同時也學到了不少知識。
爲了方便測試,在Gamma階段咱們在項目內定義了錯誤碼,以幫助測試和debug。錯誤碼統一了以前項目返回出錯信息或拋異常的狀況。咱們提供了配套的錯誤碼說明文檔。
在Gamma階段咱們對項目中的代碼增添了不少註釋。大部分註釋集中在後端,前端也有少許簡單的註釋幫助開發理解代碼。
爲了幫助以後的同窗更快上手項目,咱們修訂和編寫了不少文檔,包括:入門及項目結構介紹、接口文檔、服務端部署文檔、本地部署踩坑文檔、錯誤碼說明、配置文件說明、接口測試運行說明。
除此以外咱們在Github將服務端運行的完整代碼進行了打包,以幫助以後的同窗部署。
項目的分工在Beta和Gamma階段大致如圖:
基本上團隊內分工在儘可能讓你們作熟悉的事情基礎上又有靈活的調整,使得效率儘量最大化。
Beta和Gamma階段出現的一個跡象是其餘課程花費的時間逐漸擠壓了軟工的時間。尤爲是在Gamma階段起初因爲多門課程有考試/大做業,致使項目進度一度停滯不前。
針對這一問題,PM根據各同窗時間充裕程度分配任務,並鼓勵結對的模式,最終的進度有所延誤但工做都完成了。
Alpha階段咱們的項目對於Issue管理不是很是嚴謹,簡而言之大部分issue的關閉都沒有對應的commit內容或成果。
在Beta和Gamma階段咱們採用先回復再關Issue的方式使用issue功能。關閉issue的同時也須要提供相應的成果,不只僅是commit,也能夠是博客連接、設計圖等等。
天天的例會時PM會對當日的工做進行確認,若是出現關閉issue後發現問題仍未解決的狀況,則會新開issue處理新的問題。
相比於Alpha階段徹底沒有自動化測試來講,咱們在Beta和Gamma階段的自動化測試主要分爲如下的三個部分展開:單元測試、性能測試和接口測試。
除此以外正常的前端功能測試(填寫測試矩陣)和每一個階段的迴歸測試也是必不可少的。
在Beta階段咱們首先嚐試了在項目中引入單元測試,並取得了很多成效。Beta階段結束時測試不全,以及遇到的不少測試相關的沒有解決的問題也在Gamma階段得以解決,使得咱們目前幾乎全部功能控制器都能被測試覆蓋。
覆蓋率:
在Beta階段引入了Markdown模板報告生成後,咱們對這一功能與原先的Latex報告功能採用性能測試的方式進行比較。
接口 | 總用時 | 平均用時 |
---|---|---|
Markdown | 39841ms (39.841s) | 398ms |
Latex | 116035ms (116.035s) | 1160ms |
Markdown生成一個報告用時約是Latex接口的34%左右。
因爲Postman僅能進行串行的測試,咱們使用Jmeter對接口進行併發壓力測試。
根據本項目第一屆同窗們測試的結果(連接),1c2g的服務器約能承受30人同時生成Latex報告。
如下時間單位爲ms
Latex接口運行本測試失敗,生成了12個報告後服務器宕機。
Markdown接口運行正常
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MDtest | 50 | 20086 | 20982 | 22123 | 22135 | 22209 | 16458 | 22209 | 0.00% | 2.16939 | 2.91 | 2.45 |
Markdown接口:在60s內均勻地產生180個線程發起請求:平均每一個請求耗時24s
Latex接口:在60s內均勻地產生90個線程發起請求:平均每一個請求耗時:60s
注意雖然Latex接口在Jmeter中返回的錯誤是10%,但部分返回http 200的接口實際上返回信息是「fail」,統計了服務器上生成的pdf個數爲:68,既真實錯誤率爲24.44%。
嘗試以測試Markdown接口的參數測試Latex接口,一樣致使了服務器宕機。
在Gamma階段,爲了方便開發者在本地快速驗證接口正確性,咱們對Postman這一工具進行了學習後編寫了多個接口測試樣例。並導出爲方便使用的JSON文件共後續開發同窗使用。接口測試相比於單元測試來講運行時間短,能夠快速驗證接口是否工做正常。
在Gamma階段,咱們爲目前的項目代碼增長了註釋,而且儘可能刪除了其中的無用代碼。(多數是第一屆同窗遺留的代碼)
在後端方面,咱們統計了全部控制器的行數和註釋關係。可見在總行數提高的狀況下注釋率仍高於原版本,註釋行數增加120%。
後端控制器 | 總行數 | 代碼行數 | 註釋行數 | 註釋佔比(含空行) |
---|---|---|---|---|
往屆版本 | 1330 | 952 | 294 | 22% |
目前版本 | 1911 | 1118 | 647 | 34% |
增量 | 43.68% | 17.44% | 120.07% | 54.55% |
在前端方面,咱們統計了JS部分的行數和註釋關係。雖然沒有寫太多註釋,但對代碼中的無用代碼進行了清理。注意到雖然代碼行數變化不大,但這是在新版本實現了不少新功能狀況下進行統計的。
前端JS | 總行數 | 代碼行數 | 註釋行數 | 註釋率(含空行) |
---|---|---|---|---|
往屆版本 | 2416 | 2064 | 141 | 6% |
目前版本 | 2397 | 1913 | 197 | 8% |
增量 | -0.79% | -7.32% | 39.72% | 33.33% |
在配置解耦方面,咱們將全部可能的配置均放到了.env
文件以及config
文件夾下的配置文件中,並編寫了相應說明文檔。
咱們在Alpha階段由於項目難以入手而花費了不少時間。在Gamma階段,咱們爲項目補充了不少文檔,目的是幫助以後的同窗(若是有的話)更快上手該項目。除此以外咱們還編寫了8篇技術博客,能夠做爲後續同窗的參考。
目前GitHub的dev分支下docs目錄中共有8篇文檔。分別是:
目前團隊共發佈了8篇技術博客,雖然篇數很少,但大部分比較詳細實用,結合文檔對項目入門的幫助較大。
【技術博客】 關於laravel5.1中文件上傳測試的若干嘗試
【技術博客】 利用Postman和Jmeter進行接口性能測試
【技術博客】 Laravel 5.1單元測試(PHPUnit)入門
【技術博客】使用PhpStorm和Xdebug實現Laravel工程的遠程開發及調試
【技術博客】利用Python將markdown文檔轉爲html文檔
【技術博客】Postman接口測試教程 - 環境、附加驗證、文件上傳測試
與Alpha階段相比,因爲後半學期其餘課程比較忙,而且各位組員幹勁也有些降低,所以燃盡圖也不是很是「美觀」。
但整體來講咱們計劃的任務都完成了,且燃盡圖真實的反映了項目的狀態(真實的平了一段時間)。
咱們仍按照Alpha階段的統計方式對貢獻分進行了統計。
最終Beta和Gamma的貢獻分平均以下:
姓名 | Beta | Gamma | 總分 | 平均 | 取整數 |
---|---|---|---|---|---|
ZBW | 59.18367 | 64.93213 | 124.1158 | 62.0579 | 62 |
ZGJ | 65.30612 | 60.181 | 125.4871 | 62.74356 | 63 |
FZK | 58.16327 | 63.34842 | 121.5117 | 60.75584 | 61 |
YLXY | 53.06122 | 47.51131 | 100.5725 | 50.28627 | 50 |
HYF | 42.85714 | 34.84163 | 77.69877 | 38.84939 | 39 |
WJB | 51.02041 | 57.01357 | 108.034 | 54.01699 | 54 |
YS | 20.40816 | 22.17195 | 42.58011 | 21.29005 | 21 |
700 | 350 | 350 |
終於,本學期的軟工課程到此也接近尾聲了。
做爲接手往屆項目的團隊,通過三輪緊張的迭代以後,起碼咱們能拍着胸脯說:
咱們的項目相比於以前的版本進步了很多,功能變多了,項目質量也有所提高。
固然目前項目中還有不少咱們由於能力或者精力沒能徹底解決的問題,但團隊儘可能總結出了這些問題,給未來開發的同窗一些指引。
主要問題包括:
咱們在思考後提出了關於將來開發的一些可行方向,包括但不限於:
以及一些提高項目質量的方法:
感謝各位老師、助教和同窗們的支持與幫助!