持續(xù)集成開發(fā)總結報告

本文章主要總結本此課程大作業(yè)(“持續(xù)集成開發(fā)”微信搶票應用)的經(jīng)驗。
主要分為以下及部分:
1.個人分工
2.開發(fā)環(huán)境配置經(jīng)驗
3.代碼實現(xiàn)教訓
4.寫各種測試的感受
5.個人總結

1.個人分工

在本此開發(fā)實踐中我主要負責下面模塊:

  • 管理員用戶的部分api接口(7個接口)的實現(xiàn)及自動測試
  • 程序壓力測試

下面是開發(fā)過程中撰寫的一些博客。
微信公眾平臺測試接口號部署
Django單元測試
JMeter安裝及使用

2.開發(fā)環(huán)境配置經(jīng)驗

我覺得開發(fā)過程中,配置好每個成員的開發(fā)環(huán)境是非常重要的。
我們本此實驗可用的環(huán)境資源有:

  • 騰訊云服務器(ubuntu16.04):需要配置MySQL、Nginx等環(huán)境。
  • Git私有庫:需要配置Travis。
  • PyCharm專業(yè)版:需要配置與服務器的遠程同步。

流程

我們首先給服務器配置了Anaconda,給每個人建立了賬戶,這樣就可以各自跑自己的代碼了。然后配置好了PyCharm與服務器的同步。
下面重要的是Travis的部署,我們組的一個同學在前期專門負責配置Travis,事實證明,配置好Travis的配置對于后來的開發(fā)是非常重要的。保證了每一步的測試正確性。

踩坑

環(huán)境配置過程中總共踩坑兩次,一個是Travis配置,因為Travis是有自己的服務器環(huán)境的,所以在測試的時候,不能簡單的用python的requests發(fā)送請求,而是應該使用Client類來實現(xiàn)。
二是MySQL的配置,最開始的時候我們使用的是默認配置,最后一天晚上發(fā)現(xiàn)字符編碼報錯,然后又改了數(shù)據(jù)庫的默認設置。

感受

  • 開始階段開發(fā)環(huán)境的統(tǒng)一、規(guī)范是非常有必要的
  • 需要提前調研開發(fā)技術,在環(huán)境配置階段提前避坑

3.代碼實現(xiàn)教訓

我主要負責的是api接口的實現(xiàn)的測試(以及踩坑=_=)。

流程

其實就是按順序看:實驗文檔、Django官方文檔、服務器數(shù)據(jù)庫、前端post代碼。

踩坑

數(shù)據(jù)庫中實際key名稱、Django中models以及前后端接口之間不同導致編寫代碼出現(xiàn)奇怪的問題。
實際上,這使對于基礎框架研究不深刻導致的。小組里面也有同學因為變量和前端代碼不一致,后面導致有我們一起debug。

教訓

  • 提前研究清楚框架,比如變量命名規(guī)范以及各個函數(shù)接口的響應等。
  • 不是很適應別人寫的代碼,總是想著幫他看看實現(xiàn)得怎么樣,導致浪費時間。

4.寫各種測試的感受

實際開發(fā)過程才發(fā)現(xiàn)TEST真的非常重要,大大縮減了驗證代碼效果的時間。
另外,我們組有位同學負責代碼覆蓋率的測試,我第一次測試完是79%,本來以為寫的很全面的測試,最后發(fā)現(xiàn)確實很多情況沒有想到。最后跟著測試覆蓋率的標志,完善了測試。

壓力測試測出了bug

加鎖的問題一直沒有想好怎么測試,Django的框架對于多線程的支持確實很差,所以我們主要通過壓力測試來測,第一次測試就發(fā)現(xiàn)handler的加鎖出了問題(嚇出一身冷汗)。

感受

  • 寫代碼測試是個很負責任的體現(xiàn),我們小組的每次merge和push都是基于Travis的,所以每次merge都比較順利,有了問題也比較容易解決。

5.個人總結

團隊開發(fā)

第一次感覺的團隊開發(fā)的重要性,之前的組隊大作業(yè)每個人的合作也僅僅在于很機械的分塊。這此開發(fā)實踐,體會到了小組成員各自分工合作的“舒適感”。最重要的是比較注重規(guī)范,所以我們的進度比較平穩(wěn)、分工也很明確。


Snipaste_2018-10-20_17-43-36.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容