| 這個作業屬於哪個課程 | 2021春軟件工程實踐|S班 |
|---|---|
| 這個作業要求在哪里 | 軟件評測 |
| 這個作業的目標 | 通過分析、評測一類軟件產品,進行思辨、總結,學好軟件工程,幫助我們在實踐中做得更好 |
| 其他參考文獻 | 知乎、《構建之法》、CSDN、簡書、北航優秀作業 |
目錄
第一部分 調研,評測
CODE.CHINA
CODE.CHINA是CSDN推出的開源代碼托管平台,具備 GitLab 最先進的技術,並充分考慮中國用戶的使用習慣。
-
體驗
介紹和使用軟件
進入首頁,風格是比較漫畫風的,色彩也是比較豐富的,一眼看過去就是一個大大的“Markdown基礎入門”。

然后是進行登錄,由於我之前已經成為了CSDN用戶,無需注冊,於是我直接選擇了CSDN APP掃碼登錄。這個方式讓我覺得很舒服,這對CSDN已有的用戶很友好,無需進行那些繁雜的注冊驗證,只要掃個碼,在手機上確認登錄就可以了,既安全又方便。

登錄后就是進入到自己個人的主界面了,可以查看我的項目、最近的動態等重要信息。

CODE.CHINA有進入開源廣場看開源秀,以及進入學習廣場進行相關課程的學習,我感覺這對新手很友好,能夠讓新手快速地了解CODE.CHINA本身,以及學習Git、Markdown,快速地上手使用CODE.CHINA。


由於CODE.CHINA本身的功能是很豐富強大的,因此在此我只介紹其部分核心功能的使用。
我們可以在CODE.CHINA查看他人開源的項目,查看他人優秀的代碼,並可以選擇進行克隆到本地運行項目。

可以選擇直接下載源碼,也可以通過SSH、HTTPS進行代碼克隆。

CODE.CHINA的一個核心功能就行進行個人代碼托管,這對程序員的開發是很友好的,可以通過代碼托管來進行版本控制、團隊合作,若本地代碼因為某些原因消失了,就可以選擇從遠程在此克隆到本地,及時地進行代碼的恢復,又或者在團隊合作的代碼不小心被他人覆蓋了,可以選擇版本回退,恢復到未被覆蓋之前的樣子。
首先是點擊創建項目,進行個人項目的創建,可以選擇創建空白項目、從模板創建項目、從外部導入項目(Github等平台)。

選擇創建空白項目后,可以設置項目的名稱,項目描述,並且可以把該項目設為私有或者是公開的。點擊新建項目,項目就創建成功了。

可以在其Web IDE進行文件的編輯和提交。

然后就可以在項目的代碼界面看到相應的文件了。

在實際開發時,可以選擇創建新的分支,在分支上進行代碼的開發,最后在一同合並到主分支master上。

在開發時,可以把項目具體化,分割成一個個小的任務,通過提issue的方式,指定相關開發人員進行開發,解決issue。

同時還可以查看代碼的各個分支的提交信息,具體查看每次提交的確切提交時間,提交作者,具體修改了什么內容,便於進行代碼的版本控制。


同時可以在項目設置里,邀請其他項目成員一同進行該項目的開發,通過團隊合作開發、完成該項目。

還可以Fork他人的項目,在他人的項目的基礎上且不影響原始項目的情況下,進行項目的開發。在開發結束之后,還可以選擇發起pull request,將自己的分支請求合並到原來Fork的項目分支上。

優缺點分析
優點:
基於GitLab開發,充分考慮中國用戶的使用習慣
由CSDN團隊開發,結合CSDN社區,對CSDN用戶友好,CSDN用戶可以快捷登錄
對新手友好,網站有一系列Git、Markdown教程,易於新人上手使用
缺點:
平台推出不足一年,存在一定程度上的bug(詳情可見下文提到的Bug)
平台活躍度不足,開源項目不夠多,如在ERP主題下,居然沒有一個開源項目,且目前開源項目中的多數項目是從其他托管平台上鏡像的

第三方插件支持較少,在IDEA中找不到與CODE.CHINA相關的插件
中英文混雜,沒有統一的標准,如下圖

對產品有什么改進意見
盡快完善平台存在的Bug,提升用戶體驗。可以同國內各大高校進行教學合作,吸引教師使用該平台進行課程教學,根據學生的使用場景定制可用的功能。提高平台知名度(畢竟在此次軟件評測之前,我也沒聽說過這個平台),提高平台活躍度,可以引流CSDN社區的用戶,讓更多用戶在平台上開源自己的優質項目,提高開源廣場項目的數量和質量。
-
BUG
Bug嚴重性量化指標
Bug等級 描述 1級 致命性bug,由正常操作造成系統崩潰、死機,導致系統重要數據泄露,數據庫崩潰,數據丟失 2級 嚴重性bug,系統部分重要功能沒有實現或不起作用,用戶重要數據沒有加密傳輸 3級 一般性bug,次要功能沒有實現或實現不完全,數據查詢時間過長,查詢結果不正確,或數據顯示不正常 4級 小bug,不影響功能的使用,頁面文字錯誤,頁面排版不夠合理,影響用戶體驗 Bug 1 描述:在commit界面切換分支時,頁面直接跳轉404
-
Bug發生時的測試環境
操作系統:Windows 10 家庭中文版
瀏覽器環境:Google Chrome 版本 90.0.4430.72(正式版本) (64 位)
發生時間段:正常使用網站時
前因后果:在項目提交界面想切換分支,查看其他分支的提交,結果頁面跳轉404界面
-
Bug的可復現性及具體復現步驟
可復現性:必然發生
復現步驟:
- 選擇一個項目,如 sonic-pi,點擊提交進入查看代碼提交界面。
- 選擇其他分支,並點擊切換,頁面直接跳轉404。
-
Bug具體情況描述
經過上述步驟后,頁面跳轉404。然后在代碼界面選擇dev分支后,進入查看提交界面是正常訪問的,同樣,此時選擇切換分支后,頁面跳轉404。具體如下圖:



-
Bug分析
-
Bug可能的成因:跳轉的url不存在,直接訪問就報錯了,應選擇向后端發起請求得到界面。
404的url:https://codechina.csdn.net/mirrors/sonic-pi-net/sonic-pi/-/commits/dev/spm=1033.2243.3001.5873
正確訪問的url:https://codechina.csdn.net/mirrors/sonic-pi-net/sonic-pi/-/commits/dev?spm=1033.2243.3001.5873
二者相差在一個是"/spm",一個是"?spm","?spm"應該是訪問后端的寫法。
-
Bug的嚴重性:2級
- 系統功能:重要功能不起作用
- 安全性:重要數據沒有泄露
- 用戶體驗:差勁,無法在查看提交界面切換分支,查看其他分支提交界面需要返回主界面切換分支
-
對於Bug的預期及改進建議
- 預期:能夠正常切換分支跳轉各分支的查看提交界面
- 改進建議:訪問的url改為向后端發起Get請求得到的界面
-
-
【進階】Bug 反饋
該Bug已反饋至CODE.CHINA官方Issue區,反饋issue為issues297
截止博客發布日期前,已得到官方開發者的回復,且被官方開發者標記為bug。目前,Bug已被修復。

Bug 2 描述:最多star排序不起作用
-
Bug發生時的測試環境
操作系統:Windows 10 家庭中文版
瀏覽器環境:Google Chrome 版本 90.0.4430.72(正式版本) (64 位)
發生時間段:正常使用網站時
前因后果:瀏覽開源廣場項目時,點擊最多Star想查看項目排名,結果發現排名第一的項目Star數不是最多的
-
Bug的可復現性及具體復現步驟
可復現性:必然發生
復現步驟:
- 點擊項目,選擇瀏覽項目,點擊最多Star。
-
Bug具體情況描述
在瀏覽項目最多star時,發現排序不起作用。排在第一的star數不是最多的,如下圖,排在第一的項目star數是360,排在第四的項目star數卻有15109。

-
Bug分析
- 可能的原因:根據Star進行排序的函數不起作用
- Bug的嚴重性:3級
- 系統功能:次要功能實現不完全,數據顯示結果不正確
- 安全性:重要數據沒有泄露
- 用戶體驗:一般,無法查看項目的Star排名
- 對於Bug的預期及改進建議
- 預期:可以顯示正確的項目的Star排名
- 改進建議:檢查相關排序函數是否起作用,是否是根據Star數進行排序
-
【進階】Bug 反饋
該Bug已反饋至CODE.CHINA官方Issue區,反饋issue為issues300
截止博客發布日期前,已得到官方開發者的回復

-
-
結論
不推薦使用。評分:60分(滿分100分)。我只能給CODE.CHINA打一個及格分,及格分在於平台基本實現了代碼托管的功能,但是在用戶數量上、項目數量上、項目質量上、用戶體驗上是很不足的。該平台需要創新、改變,解決自身不足之處。
GitHub
GitHub是全球最大,最先進的開發平台,數以百萬計的開發人員和公司在GitHub上構建,發行和維護他們的軟件。
-
體驗
介紹和使用軟件
Github是我最早開始使用的代碼托管平台,因此,已經上傳一些個人項目到該平台,以及使用該平台進行團隊開發。於是我直接使用自己已有的賬號登錄了GitHub。登錄成功后,跳轉的是自己的主界面,在這里可以看到自己的代碼倉庫,自己加入的團隊,加入的組織等等。

在輸入框輸入想要搜索的關鍵詞,就可以查看相關的開源代碼倉庫,其數量之多令人瞠目結舌,例如我搜索Java,結果有1861507 個代碼倉庫。

然后進入到個人主頁,可以查看自己最近的代碼倉庫,以及活躍度。

點擊右上角 + 號可以選擇創建新的代碼倉庫。可以在創建界面填入倉庫的名字,倉庫的介紹,是否選擇添加相關的README文件,gitignore文件等,點擊"Create repository"創建新的倉庫。

倉庫創建成功后,可以進入倉庫界面查看相關信息,並且可以通過HTTPS、SSH、直接下載等的方式,將倉庫克隆到本地。在本地進行文件的增加、修改、刪除等一系列操作后,可以通過Git命令,將本地倉庫代碼的改變,同步到遠程倉庫。若是多人開發,還可以在開發的過程中,拉取遠程倉庫的改變至本地倉庫,同步他人對倉庫代碼的改變,實現團隊合作開發。

同樣,Github在code界面,可以具體查看倉庫里的文件及內容,在commit界面可以倉庫自己的commit信息,及每次commit具體對文件作出的改變。


GitHub還可以用於團隊開發,在團隊開發中,通過自己的commit解決issue,完成自己的部分的工作。

優缺點分析
優點:
全球最大的代碼托管平台,功能完善,bug較少
代碼倉庫數量多,質量高
用戶活躍度高,很多大公司在平台上開源自己的一些項目代碼
有配套的桌面應用,IDEA、Vscode等編譯器支持Github
缺點:
平台為全英文,一開始使用時對非英文母語用戶不友好。
平台服務器部署在國外,國內用戶時常因為網絡問題無法登上該平台

對產品有什么改進意見
建議GitHub能夠考慮中國用戶習慣,支持切換中文,進行一定的本土化。
將服務器放置在離中國開發者更近的地方,以提高中國用戶訪問GitHub的響應速度。
-
BUG :圖標加載失敗
-
Bug發生時的測試環境
操作系統:Windows 10 家庭中文版
瀏覽器環境:Google Chrome 版本 90.0.4430.72(正式版本) (64 位)
發生時間段:正常使用網站時
前因后果:點擊Explore后,想查看Topics下的內容,點擊Topics,結果發現topic圖標加載不出來
-
Bug的可復現性及具體復現步驟
可復現性:必然發生
復現步驟:
-
Bug具體情況描述
經過復現步驟后,topic圖標加載失敗,如下圖

-
Bug分析
-
Bug可能的成因:無法訪問圖標所在的url。
-
Bug的嚴重性:4級
- 系統功能:系統功能正常可用
- 安全性:重要數據沒有泄露
- 用戶體驗:一般,無法查看topic圖標,頁面有點不美觀
-
對於Bug的預期及改進建議
- 預期:能夠正常顯示topic圖標
- 改進建議:將圖標地址替換為可以正常訪問的url
-
-
-
結論
好,不錯。
評分:85(滿分100)。打這個分數是因為GitHub本身很完善,有許多豐富、優質的內容,扣的分是因為不支持切換中文,對新手不友好。且因為網絡問題導致的用戶體驗不好,我時常在pull或push代碼時遇到"time out"的報錯,訪問平台有時加載許久都加載不出來,用戶體驗很差。
Gitee
Gitee 是開源中國推出的基於Git的代碼托管服務。目前已經有注冊開發者 600 萬,托管超過 1500 萬代碼倉庫。
-
體驗
介紹和使用軟件
首先是登錄,我之前注冊過平台的賬號,於是選擇了用戶名、密碼直接登錄。登錄后是自己的主界面,可以查看相關信息,以及最近的動態。

可以點進創建的倉庫查看相關文件的內容,最近的動態,以及提交的相關消息。


Gitee還可以查看博客,在開源廣場搜索個人想了解開源項目,可以查看搜索結果的倉庫、Issues、博客,可以看看別人的優質倉庫代碼、博客學習相關知識。



優缺點分析
優點:
平台完善,倉庫數量、質量較高
充分考慮國內用戶使用習慣
有許多學習教程,對新手友好

有高校版,針對高校學生的使用進行優化

缺點:
上傳文件有較大的限制,一個小時內只能上傳20個文件
開源項目的數量、質量仍然不夠
對產品有什么改進意見
提高開源項目的數量和質量,多免費開放一些功能給年輕學子探索。
【進階】采訪另一個用戶
采訪對象為2018級數計學院在校生,目前就讀於軟件工程專業,需求是進行個人代碼的托管,代碼存儲備份至雲端。
以下是采訪截圖:

-
BUG:搜索結果不夠精確
-
Bug發生時的測試環境
操作系統:Windows 10 家庭中文版
瀏覽器環境:Google Chrome 版本 90.0.4430.72(正式版本) (64 位)
發生時間段:正常使用網站時
前因后果:想搜索Java相關的內容,發現呈現結果不夠精確,先呈現的是JavaScript相關的內容
-
Bug的可復現性及具體復現步驟
可復現性:特定條件下發生
特定條件:搜索框輸入Java
復現步驟:
搜索框輸入java,點擊搜索,查看搜索結果
-
Bug具體情況描述
-
經過復現步驟,結果呈現為JavaScript相關的內容

-
Bug分析
-
Bug可能的成因:搜索算法不夠精確。
-
Bug的嚴重性:4級
- 系統功能:系統功能正常可用
- 安全性:重要數據沒有泄露
- 用戶體驗:差勁,無法查看搜索Java的相關結果,需要點擊旁邊的編程語言選項對搜索結果進行限制
-
對於Bug的預期及改進建議
- 預期:能夠正常顯示Java搜索結果
- 改進建議:改進搜索匹配算法
-
-
-
結論
非常推薦。
評分:90(滿分100),Gitee是國內相對比較成熟的代碼托管平台,由於其的成熟度,以及平台訪問速度,針對高校學生的優化,我給出了90的高分,扣分是因為其開源倉庫的數量和質量仍然不足。
第二部分 分析
-
開發時間估計
開發該類產品是難度是比較大的,要考慮服務器的響應速度、大量用戶訪問的並發情況、倉庫代碼的托管的主要功能、多個用戶同時push和修改一個文件時的沖突、倉庫的安全性保證、個人數據的安全性等等一系列的方面。
-
CODE.CHINA
CODE.CHINA是三個產品里面相對比較簡單的一款,大概需要3個月
-
GitHub
GitHub是比較龐大復雜的一款產品,大概需要1年6個月
-
Gitee
Gitee相對來說有一定的復雜性,大概需要9個月
-
-
同類產品對比排名
-
CODE.CHINA
CODE.CHINA優勢在於充分考慮中國用戶習慣,劣勢在於不夠成熟,開源項目數量、質量不夠多。同類產品排名第二。
-
GitHub
GitHub優勢在於是全球最大的開源平台,有着很多的優質開源項目,劣勢在於國內用戶訪問平台速度慢。同類產品排名第一。
-
Gitee
Gitee優勢在於國內比較成熟的開源平台,國內用戶訪問方便,推出了高校版服務,劣勢在於同GitHub相比,開源項目的數量、質量仍然不足。同類產品排名第二。
-
-
軟件工程方面的建議
-
CODE.CHINA
完善自己的平台,解決平台存在的Bug,提高開源項目的數量和質量。
-
GitHub
針對中國用戶的使用習慣做出相應的優化,支持中文切換,提高訪問服務器的響應速度。
-
Gitee
免費開放更多功能給用戶,提高開源項目的數量和質量
-
-
BUG存在的原因分析
-
CODE.CHINA
Bug1:測試把關不嚴,沒有注意到相關方面的測試,所以導致查看提交界面切換分支時跳轉404
Bug2:對用戶需求掌握不好
-
GitHub
這個Bug應該是開發團隊沒有注意到圖片url無法訪問,可能圖片一開始的url是有效的,后來圖片url無效了,團隊沒有及時發,現,屬於細節上的Bug。
-
Gitee
Bug:對用戶需求把握不好
-
第三部分 建議和規划
-
市場概況
-
市場有多大
全球開源熱度持續攀升,熱門領域開源項目涌現,越來越多組織、公司加入開源的隊伍,而代碼托管平台正是開源項目進行托管的好地方。可以說,從事軟件相關行業的都是代碼托管平台的直接用戶或者是潛在用戶。軟件開發者熱衷於在平台上開源自己的項目,同時也熱衷於學習、使用他人的開源項目。
比如GitHub,目前有超過65000000的開發者在平台分享自己的代碼,超過3000000的組織入駐,平台上有超過200000000的代碼倉庫,這是一個非常龐大的數目,且這個數目每年以驚人的速度在增長着。

同時,市場是面向全球的,全球的開發者在平台上開源自己的項目,可見市場的龐大。

-
直接用戶
埃文斯數據公司(Evans Data Corporation) 2019 最新的統計數據顯示,2018 年全球共有 2300 萬軟件開發人員,預計到 2019 年底這個數字將達到 2640 萬,到 2023 年達到 2770 萬。這些軟件開發人員就是代碼托管平台的直接用戶。
-
潛在用戶
即將從事軟件開發、或者准備學習軟件開發的人員都是平台的潛在用戶。
-
-
市場現狀
-
目前市場上的產品
- 全球最流行的代碼托管平台:GitHub
- 開源中國旗下的代碼托管平台:Gitee(碼雲)
- 基於git的倉庫管理程序:GitLab
- CSDN旗下的代碼托管平台:CODE.CHINA
-
上述產品的定位、優勢、劣勢
產品 定位 優勢 劣勢 GitHub 面向全球開發者 社區資源龐大,有數量巨多的優質開源項目 訪問服務器響應速度較慢 Gitee(碼雲) 主要面向國內開發者 有許多開源項目,有企業版、高校版 開源項目的數量、質量還不足 GitLab 主要面向企業等專業人員 可自建代碼托管平台 訪問服務器響應速度較慢 CODE.CHINA 目前面向國內開發者 充分考慮國內用戶習慣 平台還不夠成熟 -
上述產品間的關系
其中Github、Gitee、CODE.CHINA在個人用戶方面上互為競品,競爭力:Github > Gitee >> CODE.CHINA
Gitee企業版、GitLab在面向企業方面互為競品,競爭力:GitLab > Gitee企業版
-
-
市場與產品生態
-
產品的核心用戶群
軟件開發人員
-
典型用戶
用戶 學歷 年齡 專業 愛好 職業 收入 表面需求 潛在需求 張三 本科在讀 21 軟件工程 跑步 學生 暫無 需要一個用於軟件工程代碼提交的產品 需要一個容易上手的個人代碼托管平台 李四 本科畢業 26 計算機科學 聽音樂 公司軟件開發小組組員 1w+/月 需要能夠查看前沿技術地平台 該平台資源整個龐大,有相關前沿技術的開源項目 王五 碩士畢業 30 電子信息 閱讀 軟件開發小組長 2w+/月 需要一個用於項目開發的代碼托管平台 該平台能高效地進行軟件開發,能夠管理團隊進行開發 -
產品的用戶群體之間是否存在一定的關系?是否有利用其相互作用二次構成特定用戶生態的可能性?
用戶二、用戶三是從用戶一所處階段成長而來的,用戶三是從用戶二所處階段成長而來的。
有如Gitee有面向大眾的、面向高校、面向企業的不同版本,涵蓋了三個用戶的所需。
-
產品的子產品,以及其他相關產品之間是否存在一定的關系?是否有利用各個產品特性之間的相互關系二次構成產品生態的可能性
Gitee、Github、CODE.CHINA,在個人代碼托管方面互相競爭,Gitee高校版能夠吸引用戶使用個人版,之后還能吸引用戶使用企業版,構成了一個良好的生態。
-
-
產品規划
-
新功能
- 新增私聊功能
- 需求:有時想聯系開源項目的開發者,發現只能在項目項目下留言或者發郵件,效率低
- 用戶使用理由:有時有些項目開發者沒有留下自己的郵箱,無法聯系到,且有些私密的話語需要同開發者交流,在項目下評論留言會被其他人看見,所以需要私信開發者
- 創新的地方:目前的代碼托管平台都沒有集成私聊的功能
-
角色配置
- 美工:1人
- 前端開發:2人
- 后端開發:2人
- 測試人員:1人
-
16個周期每周的詳細規划
周數 規划 1 需求分析,進行原型設計 2 確定使用的開發工具、技術 3 前、后端學習開發工具的使用,產品經理學習項目管理工具使用 4 前、后端學習相關技術,測試人員學習相關測試工具、技術 5 進行系統設計 6 進行數據庫設計 7 前端:私聊界面的搭建,后端:開發框架搭建 8 前端:消息提示的搭建,后端:實現發送、接收消息功能 9 前端:拉黑、舉報組件搭建,后端:拉黑、舉報功能實現 10 前后端接口對接,調試 11 經測試后發布Alpha版本,進行Alpha測試 12 前端:美觀界面,后端:實現允許高並發 13 經測試后發布Beta版本,進行Beta測試 14 使用postman模擬進行壓力測試 15 功能整合到原平台上 16 經測試后上線正式版本
-
