天天看點

Alpha 沖刺總結

這個作業屬于哪個課程 2019學年02學期單紅老師軟體工程實踐
這個作業要求在哪裡 團隊作業第六次——beta沖刺+事後諸葛亮
團隊名稱 松果星球委員會
這個作業的目标 總結alpha沖刺階段的經驗教訓,為beta沖刺打下基礎
作業正文 本博文
其他參考文獻

一、設想和目标

1.編寫目的

由于軟體工程實踐的要求,我們團隊開發名為“松果生活”的團隊項目APP,這次項目功能的實作對提升我們團隊成員的程式設計水準和分工合作能力有很大的提升,特别是對于web方向的能力提升是很有幫助的。另外很多新生對于學校周邊的娛樂等諸多情況沒有了解,很是困惑,是以我們團隊決定開發這款APP來幫助這些同學。

2.預期功能标準

1、提供手機号接收驗證碼注冊登入功能

2、提供文章釋出功能

3.1提供選擇文章類别功能

3.2提供添加文章配圖功能

3.3提供編輯文章快捷功能

3.4提供選擇添加位置資訊

4、提供檢視文章詳情功能

5、提供收藏文章功能

6、提供删除文章收藏功能

7、提供文章點贊功能

8、提供編輯個人資料功能

9、提供綁定教務處資訊功能

10、提供登出賬号功能

11、提供檢測更新功能

12、提供文章評論功能

13.實作系統資訊頁

14.搭建起公告系統頁并接入接口

15.搭建起資料統計頁面

16.搭建使用者清單頁并接入接口

17.搭建文章清單頁并接入接口

18.實作文章詳細頁

3.現實進展

基本實作安卓端預期功能,剩餘文章釋出的資料上傳部分還在調試,但是之後補充了資料邏輯,完成了預期功能。iOS部分,基本完成沖刺要求。背景網頁部分,靜态頁面全部搭建完成,按計劃接入了部分接口。還有部分資料互動需要商定和實作。各子產品大部分接口完成,小部分還未實作;小部分接口已與前端對接,大部分接口尚未對接。後端中已實作部分:1. 賬号管理部分:已實作使用者登入、注冊、關注、頭像、查詢修改等接口,其中通過手機号以注冊和登入的接口已與前端對接完成;2. 文章管理部分:已實作文章的增删改查、圖檔、點贊、評論、收藏、舉報等接口,其中文章的增删改查、圖檔、點贊、評論、收藏已與前端對接完成。3. 背景部分:已實作公告、文章與使用者查詢、文章的各類數量統計、使用者的各類數量統計等接口,其中文章與使用者查詢已與前端對接完成。

子產品 完成情況
賬号管理子產品 基本完成(考慮增加保密措施)
主題論壇子產品 基本完成(考慮優化算法)
設定子產品 基本完成
網頁背景子產品 基本完成(考慮提升反應速度)

二、預期計劃

1.alpha 階段是否每天有充足的時間來做規劃安排?

我們做計劃的時間比較充足,前期對Alpha階段有整體的計劃,每天也都會在例會上讨論當天的進展和第二天的計劃。

2.是否項目的整個過程都按照計劃進行,項目出了什麼意外?有什麼風險是當時沒有估計到的,為什麼沒有估計到?

原型設計的時候在功能方面可能考慮的不是特别周到,導緻有部分功能沒有考慮進去,如舉報等功能,在實作的時候應該注意修改原型,同步後端和開發人員之間的進度,發證這方面問題的原因還是因為産品文檔原型考慮的時候欠周全,之後應當改進自己的思維導圖,強化多方位多角度思考分析的能力。

3.具體計劃

時間 計劃任務
Day1 編寫alpha沖刺項目規劃文檔以及代碼規範、第零次會議
Day2 背景的資料庫、表建構以及初步部署;登入界面搭建并測試相關api
Day3 移動端背景使用者、文章等頁面的搭建
Day4 後端進行接口開發相關工作;移動端基礎界面的完善
Day5 後端繼續完善相關接口;移動端釋出功能的建構
Day6 資料庫的增删改查以及與背景的資料互動
Day7 移動端與背景的資料互動測試
Day8 資料庫的相關測試以及排查bug
Day9 移動端與背景單元測試
Day10 測試用例文檔編寫以及測試評述

alpha沖刺的成果就是将項目進度完成到總進度的60%左右,其中完成度為95%,剩餘安卓端的文章釋出功能還沒有進行相關測試,其他預期任務均已完成。後端中待解決内容,主要是完善相關接口以及相關優化:1. 賬号管理部分:完善使用者登入、注冊、關注、頭像與修改等接口并與前端對接;2. 文章管理部分:完善舉報接口并與前端對接;3. 背景部分:完善公告、文章的各類數量統計、使用者的各類數量統計等接口并與前端對接。4. 其他:由于第一次采用spring boot,部分代碼有備援、接口缺少封裝,需要beta階段解決;資料庫部分需要優化以提升效率等。

三、資源

1.人力資源配置設定

資源是足夠的,雖然是随機配置設定的組員,但大家都很負責,能互相溝通很好地推進項目。2名隊員負責前端,5名隊員負責後端,2名隊員負責用戶端。相對于前端大佬比較多,後端功能完成相對粗糙些,主要還是項目經驗不夠充足。

2.各項任務所需的時間和其他資源是如何估計的,精度如何?

由PM進行任務拆解,按照難度估計所需時間。各個方向的時間估計由該方向成員自行估計,在alpha沖刺中,安排的預期任務基本完成,精度一般,用戶端方向時間預估少了一些,實際情況下因為技術方面的知識不足,是以開發時間周期都會比估計來的更長,但是最終還是及時完成了任務。

四、設計和實作

1.設計

  • 系統設計主要由前端隊員完成
  • 資料庫設計主要由後端隊員完成
  • 接口設計由前後端協調完成
  • 原型以及模型設計由美工隊員完成

2.代碼編寫時遇到的困難

設計過程中也遇到模棱兩可的情況,都是在PM組織的例會時讨論解決的。在前後端整合的過程中遇到的bug最多,因為有許多細節需要協調整合。代碼複審由各個部分負責的隊員進行。從中我們學到了,前後端在進行開發時要多進行交流,如接口傳遞的參數,資料庫中變量的屬性等,這樣可以大大減少整合時期的工作量。

安卓部分在開發的時候發現了一個卡的比較久的地方,在頁面布局中涉及到很多嵌套,NestedScrollView作為比較常用的滑動架構,會與其中的RecyclerView沖突,再加上Github上提供下拉重新整理和自動加載的RefreshLayout等形成的布局嵌套會發生滑動沖突等問題,在實作過程中就是不斷在部落格上查找解決方案,同時加入自己的了解,完成了Bug的修複。主要是因為一開始沒有接觸過安卓開發,是以在這方面還是比較小白,是以在接觸過以後就會有印象,防止以後再出現類似的情況。

背景的開發上,在文章詳細頁有一個“向接口請求清單,再根據清單項向接口請求資料”的函數。此前處理這類函數的時候有遇到同步-異步問題,也稍有解決方案。但是這次因為文章頁的資料結構比較複雜,之前的方案不好用了。隻能設計新的方案。是以在這個問題上卡了很久,最後的實作比較粗糙,如果有必要會在beta階段對其進行優化。

資料庫方面,之前前端回報了一個問題,就是安卓端端輸入emoji表情無法正常導入資料庫,導緻伺服器傳回錯誤,經查發現是mysql資料庫utf8格式問題,需改為utf8mb4;更改之後仍未解決,發現是後端連接配接資料庫預設還是用utf8,在改為utf8mb4後終于可以正常輸入emoji表情。

五、測試與釋出

1.測試問題

對項目進行了較為全面的測試:

開發部分 具體測試
安卓 接口測試以及點選、重新整理測試
iOS 1.接口是否能跟本地打通2.App内是否能正确收發資料3.目前完成的視圖在不同機型下是否正常顯示
資料庫 大部分接口測試完成,基本滿足alpha開發階段的要求
網頁背景 1、适配性測試 2、網頁性能測試

具體測試情況請參考下述博文:

https://www.cnblogs.com/sgrj/p/12856336.html

2.釋出

能以安裝包的形式釋出,目前項目運作在各隊員的移動端上。

六、團隊的角色/管理/合作

團隊的角色配置設定一開始就定了下來,後續的項目推進根據隊員的角色進行配置設定工作,促使項目有條不紊的進行。在本次沖刺中我們基本每天都會有例會,通過這種形式來不斷磨合,使隊員互相熟悉,促進交流。在例會中讨論每天項目的進展,交流遇到的問題,共同努力解決,進一步加強了我們的團隊的凝聚力,在團隊中,大家能坦誠地交流自己的想法,這也一定程度上保證了團隊的提升。

七、成員自我總結

成員 角色 總結
彭陳浩 UI前端/美工 美工:在原型以及頁面設計的時候,我們的目标是設計一個安利平台,是以我參考了許多類似的軟體,如小紅書以及綠洲等等,我們軟體的實質還是像一個校内論壇,隻是我們規定了論壇的相關主題,是以在我們加入了虛拟角色的闆塊後,我把他放在了首頁,作為和論壇同等重要的子產品,同時主色調使用棕色,同時加上亮眼的金色,形成一個較為進階的簡約感,文章以及其他頁面大緻吸取了小紅書等軟體的主要元素。安卓:在安卓端的實作過程中,我也經曆了learning by doing的過程,這是一個奇妙的過程,也是一個高效的過程,在理論知識補充的同時直接把他加以應用,在部落格和GitHub上查找自己需要的架構和控件。因為加上了學習的時間,開發周期要拉長很多,都是在抽時間進行學習和相關的實作,充分鍛煉了自己的時間管理能力以及技能學習能力。
朱鴻昊 前端/前後端互動 alpha沖刺裡我主要負責使用vue開發背景網頁。之前做的網頁都比較小,用的也都是适用于小項目的技術方法。但是松果生活背景網頁有一定規模,之前那些小方法小技巧都不适用了,就要不斷學習新技術新方法,也在不斷收獲與熟練。相信有了alpha沖刺裡積累的經驗,beta沖刺中的開發會走得更加穩健。
賴曉輝 前端 首先,這次項目是我第一次使用Vue架構進行界面設計,并使用echarts庫進行圖表界面設計,有了更多項目經驗和編碼經驗;其次,雖然是第一次使用Vue,但所幸有鴻昊同學和其他同學幫助,網上也有很多代碼可以閱讀和借鑒,是以磕磕絆絆下完成了負責的部分;最後,界面設計前要設計好界面邏輯,不然寫完後再修改很困難,且很耗費精力。
李昊朋 用戶端/iOS 負責iOS端的開發,Alpha沖刺轉瞬即逝,其實剛開始下手的時候,覺得很難熬,一步步摸索,一步步百度,一步步問人,一步步搭磚加瓦建起來的,建立架構,慢慢地熟悉流程,慢慢地孰能生巧,感謝小隊,大家都辛苦了。
胡錦浩 後端/資料庫 項目開始之前對spring boot并沒有什麼接觸,是以在alpha沖刺的前幾天基本在邊學習邊做,最後也算是完成了我負責的接口的實作。回顧起來,我在alpha階段存在的問題主要有如下幾點:由于前期沒有和前端同學很好地進行接口的溝通,是以後來對接口改了很多,beta階段新增的接口要與前端同學好好溝通;在寫一些複合型的接口時,用到多表查詢等,使得接口速度很慢,beta階段要優化完善;alpha階段接口以實作為主,beta階段要優化下代碼,必要時需要重構。經曆了alpha沖刺的從無到有,beta沖刺的新增和完善也是一項挑戰,加油!
胡世鑫 後端 負責相關接口實作,搭建springboot環境、進行一些接口的編寫和測試。自學的過程中,對于實在無法解決的問題就先放一放、先把可以解決的問題解決了。團隊協作給了我很大幫助,無法解決的問題問組員很快就可以解決了。
包鵬飛 第一次和團隊一起做項目,經驗和知識都不足,不過一個過程下來學習到了很多新的程式設計知識,也感受到了團隊的魅力,慶幸能和這幫小夥伴分到一起。
龔俊鵬 1、在alpha沖刺階段,負責賬号管理功能接口的實作,包括賬号登入、注冊、忘記密碼、綁定教務處(學号)、關注使用者等接口。這些接口總體上已經實作了,傳回的都是整體資料,但是要根據前端的需求進行适當的修改,這些會在下一階段進行。2、spring boot實作這些接口是相對比較友善的,不需要寫太多的代碼,注重的是一些邏輯實作和資料表之間的關系問題。下一階段會更加注重接口邏輯方面的設計,讓資料的查詢花費的時間更短。3、在設計接口的時候遇到一些問題:資料庫連接配接不上、接口編寫的時候沒有按照預期輸出等等,通過自己慢慢調試之後解決問題,感覺很開心,對于spring boot有了更加深刻的認識。
吳章權 在本次的沖刺任務中,負責網頁背景相關功能接口的實作。在隊友們的幫助下,我學會了如何使用springboot,後端接口設計實作以及團隊合作。通過這次的項目實踐,我真正的将理論運用到實踐中,在實踐中進一步鞏固理論知識。這次的實踐也讓我發現了自身的很多不足,很慶幸有隊友們的幫助和指導,讓我在學習中快速成長!未來還需要不斷地學習。希望自己能在不斷地學習中不斷地成長。