天天看點

Gamma展示

團隊成員簡介

團隊成員 角色 個人部落格位址
劉峻辰 後端開發
焦雲鵬
趙智源 測試&伺服器部署
肖萌威 前端開發
楊亦鑫
戴榮 UI設計
羅奧升 PM

釋出位址

公客

項目管理

Github Wiki

Wiki

Github Wiki的内容包括項目簡介,部署文檔,方法接口等資訊,通過本Wiki,可以了解此項目的功能,特點,以及部署方式等,保證使用者可以快速解決問題。

技術部落格

編寫技術部落格說明項目中的一些難點與解決辦法,便于新開發者在改進項目時快速上手。

  1. 資料庫的評測與選擇
  2. 較科學的排名算法介紹與實作
  3. 基于動态繼承類、WebDriver的浏覽器相容性測試架構搭建
  4. 使用CDN加快網站通路速度
  5. 幾種網站壓力測試工具調研與使用
  6. 簡單好用的星級評價和圖檔裁剪插件
  7. 采用Bootstrap架構進行排版布局
  8. JSCover+selenium獲得js代碼覆寫率

進度管理

燃燼圖

我們使用了highcharts來繪制燃燼圖,PM随時可以把控任務總量和任務的完成進度。

Issues

使用GitHub的issues功能來釋出任務,控制任務進度和讨論在實際開發和測試中遇到的問題。

同時該功能也用作測試的BUG管理。

Gamma展示

UI與前端的協同

Gamma展示

在Beta階段我們轉入了一位新的成員,負責UI設計。是以我們采取了網際網路公司的模式,UI設計與前端開發互相協同,針對新頁面,UI設計先出一份初稿,前端開發再依據初稿來制作新的頁面,并且互相配合調整。針對已經有的頁面,進行适當的調整,解決不合理的設計。雙方積極溝通,解決出現的新沖突和問題。

以下是UI設計的同學通過畫圖軟體繪制出來的網頁:

Gamma展示

技術手段

通路優化加速

我們在Beta階段的技術部落格介紹了幾種方式優化網站通路效果,包括使用CDN,圖床,優化渲染邏輯,增加緩存等。在gamma階段,我們并沒有增加新的優化措施,僅僅對于緩存等做了微調,例如調整緩存時間。是以,gamma階段的網站加載時間與beta階段的類似。我們在gamma階段單獨測試了網頁的打開時間,壓力測試則沿用了beta階段的結果。

整體來說,我們的優化取得了較大的效果。

與alpha階段相比

  • 網站最長頁面打開時間降低了12倍
  • 所有頁面2秒内加載完畢
  • 降低58%帶寬需求和20%伺服器資源需求

壓力測試

經過測試,我們的網站在1000并發,持續10秒的情況下能正常處理90%以上的請求。我們主要使用siege進行測試,測試中包括資料庫的查詢,插入,靜态頁面通路等多種請求。雖然我們正常執行了91.1%的請求,請求的平均響應時間有較大的延長,這是一個值得改進的地方,但是有些超出了我們的能力範圍。

壓力測試的具體結果參見測試結果報告。

經過測試,去年的網站并發量大約隻有6。我們gamma階段網站在350并發時可以完全正常處理,400并發開始有幾個請求執行失敗,1000并發時請求執行成功率仍然在90%以上。嚴格地說,我們的網站并發量比去年提升了約60倍。

此外,我們在gamma階段初期再次遭受了一次攻擊,然而本次攻擊并未造成什麼影響,大部分請求因為沒有增加驗證碼比對而認證失敗,對于伺服器可用性也沒有造成顯著影響。在每日維護檢視日志時我們才注意到此次攻擊,這也從一個側面展現了我們網站具有一定的抗壓能力。

品質控制

開發

遵守規範約定

後端接口文檔

在程式設計過程中,我們事先約定了一套規範,包括命名原則,傳回值規範等。在開發階段,所有代碼編寫都要遵守該規範,以降低交流成本,便于測試進行。

注釋規範

我們要求我們的代碼必須有較完整的注釋,包括以下2類:

· 針對每個方法,說明方法的效果與影響。

· 關鍵步驟,變量需要有注釋。

功能自測

在傳遞測試與部署之前,我們會針對代碼在測試伺服器上進行簡單自測,保證功能基本正常。測試連結

Code Review

在編寫完代碼後,我們會互相檢查對方的代碼,確定沒有明顯的bug。

測試

我們組的品質保障的手段,測試方面目前實作的有三種。一是正常的功能測試,二是相容性測試,三是安全性檢查。其中功能測試的産出是一大堆測試樣例,而相容性測試的産出是這些測試樣例與各種環境的組合。而安全性檢查的産出是一份安全分析報告書。

Gamma展示

功能測試

功能測試部分中,其實分為兩類,一類是針對伺服器端接口的接口測試,一類是針對頁面功能的功能測試。這兩類的測試樣例數目總計有110個。前端js代碼的覆寫率為81%,後端python代碼的覆寫率為81%。

Gamma展示

相容性測試

相容性測試的測試矩陣如表。因為我們組的産品是一個網站,是以并沒有考慮硬體平台的問題,那應該是由浏覽器去保證的。測試矩陣包括螢幕尺寸和浏覽器兩部分,我們主要考慮了移動端和PC端兩類裝置的螢幕尺寸的差别,還有不同浏覽器之間的實作差異。

螢幕尺寸 浏覽器
PC Chrome
Mobile FireFox
Edge

安全性檢查

安全性檢查方面,我們都不是專家,做的工作都比較粗淺。包括對常見攻擊的防範,例如cc, xss等,秘鑰之類的敏感資訊的管理,還有對我們的接口的檢查,例如有沒有接口會暴露使用者密碼,會不會有接口能無限制地修改伺服器資料等等。

Gamma展示

功能展示

Beta階段新加功能

對于評論的點贊點踩功能

Gamma展示

如圖所示,增加了對評論的點贊和點踩的功能,并且有相應的動畫顯示。

熱評置頂顯示功能

Gamma展示

對于所有評論,點贊數前三的将置頂顯示。

個人資訊上傳頭像功能

Gamma展示

可上傳個人頭像,并且将在評論區顯示。

增加按照教師檢視評論功能

Gamma展示

可篩選出隻有某位老師的評價。

子評論功能

Gamma展示

可對評論進行回複。

Gamma階段新内容

以評分的課程進行排名

Gamma展示

将已經評分過的課程進行排名。

重置密碼功能

Gamma展示

依據注冊時設定的密保問題進行重置密碼和找回密碼。

個人資訊頁面

Gamma展示

個人資訊頁面可以顯示曆史評論并且設定密保問題。

Gamma階段貢獻分

名字 貢獻分 具體貢獻
las 50 完成了11篇部落格,進行了3次推廣
ljc 52 完成了GitHub Wiki,修改,設定密保問題和密碼找回功能,增加了setting.py,views.py的大量注釋
jyp 51 完成了Github Wiki的後端接口文檔,使用者課程評論和名稱接口
dr 49 完成了課程清單的移動端調整,首頁進行了優化設計
xmw 完成了密碼找回頁面,個人資訊頁面的制作,完成了Wiki的前端簡介文檔
yyx 44 完成釋出部落格,輔助完成課程清單頁面
zzy 總共110個測試用例,發現了8個BUG,已經全部修複,釋出了1篇技術部落格,更新了前覆寫率文檔等3個測試文檔
上一篇: 第八周
下一篇: 第四周