團隊成員簡介
團隊成員 | 角色 | 個人部落格位址 |
---|---|---|
劉峻辰 | 後端開發 | |
焦雲鵬 | ||
趙智源 | 測試&伺服器部署 | |
肖萌威 | 前端開發 | |
楊亦鑫 | ||
戴榮 | UI設計 | |
羅奧升 | PM |
釋出位址
公客
項目管理
Github Wiki
Wiki
Github Wiki的内容包括項目簡介,部署文檔,方法接口等資訊,通過本Wiki,可以了解此項目的功能,特點,以及部署方式等,保證使用者可以快速解決問題。
技術部落格
編寫技術部落格說明項目中的一些難點與解決辦法,便于新開發者在改進項目時快速上手。
- 資料庫的評測與選擇
- 較科學的排名算法介紹與實作
- 基于動态繼承類、WebDriver的浏覽器相容性測試架構搭建
- 使用CDN加快網站通路速度
- 幾種網站壓力測試工具調研與使用
- 簡單好用的星級評價和圖檔裁剪插件
- 采用Bootstrap架構進行排版布局
- JSCover+selenium獲得js代碼覆寫率
進度管理
燃燼圖
我們使用了highcharts來繪制燃燼圖,PM随時可以把控任務總量和任務的完成進度。
Issues
使用GitHub的issues功能來釋出任務,控制任務進度和讨論在實際開發和測試中遇到的問題。
同時該功能也用作測試的BUG管理。
UI與前端的協同
在Beta階段我們轉入了一位新的成員,負責UI設計。是以我們采取了網際網路公司的模式,UI設計與前端開發互相協同,針對新頁面,UI設計先出一份初稿,前端開發再依據初稿來制作新的頁面,并且互相配合調整。針對已經有的頁面,進行适當的調整,解決不合理的設計。雙方積極溝通,解決出現的新沖突和問題。
以下是UI設計的同學通過畫圖軟體繪制出來的網頁:
技術手段
通路優化加速
我們在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。
測試
我們組的品質保障的手段,測試方面目前實作的有三種。一是正常的功能測試,二是相容性測試,三是安全性檢查。其中功能測試的産出是一大堆測試樣例,而相容性測試的産出是這些測試樣例與各種環境的組合。而安全性檢查的産出是一份安全分析報告書。
功能測試
功能測試部分中,其實分為兩類,一類是針對伺服器端接口的接口測試,一類是針對頁面功能的功能測試。這兩類的測試樣例數目總計有110個。前端js代碼的覆寫率為81%,後端python代碼的覆寫率為81%。
相容性測試
相容性測試的測試矩陣如表。因為我們組的産品是一個網站,是以并沒有考慮硬體平台的問題,那應該是由浏覽器去保證的。測試矩陣包括螢幕尺寸和浏覽器兩部分,我們主要考慮了移動端和PC端兩類裝置的螢幕尺寸的差别,還有不同浏覽器之間的實作差異。
螢幕尺寸 | 浏覽器 |
---|---|
PC | Chrome |
Mobile | FireFox |
Edge |
安全性檢查
安全性檢查方面,我們都不是專家,做的工作都比較粗淺。包括對常見攻擊的防範,例如cc, xss等,秘鑰之類的敏感資訊的管理,還有對我們的接口的檢查,例如有沒有接口會暴露使用者密碼,會不會有接口能無限制地修改伺服器資料等等。
功能展示
Beta階段新加功能
對于評論的點贊點踩功能
如圖所示,增加了對評論的點贊和點踩的功能,并且有相應的動畫顯示。
熱評置頂顯示功能
對于所有評論,點贊數前三的将置頂顯示。
個人資訊上傳頭像功能
可上傳個人頭像,并且将在評論區顯示。
增加按照教師檢視評論功能
可篩選出隻有某位老師的評價。
子評論功能
可對評論進行回複。
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個測試文檔 |