軟件案例分析——VS和VS Code


軟件案例分析——VS和VS Code

項目 內容
這個作業屬於哪個課程/ 2020年春季計算機學院軟件工程(羅傑 任健)
這個作業的要求在哪里? 軟件案例分析
我在這個課程的目標是? 提高代碼水平,熟悉團隊合作
這個作業在哪個具體方面幫助我實現目標? 分析成熟軟件的優缺點,從中學習軟件開發、設計經驗

第一部分 調研,測評(軟件的bug,功能測評,黑箱測試,第8章用戶調研,12章軟件的用戶體驗)(必答),如有必要,可以配圖。

  1. 使用10-30分鍾這個軟件的基本功能(請上傳使用軟件的照片),它們的目標用戶,主要功能有何不同?為何要有兩個編輯器和開發環境?請用這兩個編輯器/IDE寫出一個簡單的C/C++/Python程序,描述你的發現。

    VS Code運行截圖(輸出字符串)

    VS2019運行截圖

    VS Code是一款功能強大的輕量級代碼編輯器,它提供了主流編程語言的語法高亮、代碼補全等功能,與之相似的產品有Sublime Text、Atom等。同時VS Code有着豐富的插件,可以讓一個代碼編輯器變成一個輕量級的IDE。在剛接觸編程時我使用的編譯器是DEV-C++,VS Code通過安裝插件完全可以實現DEV-C++的所有功能。VS Code非常適合前端開發 為什么我選擇使用 VS Code進行前端開發?

    很顯然,VS Code針對的是輕量級編碼,比如我們去做一些OJ上的題目,用VS煞費苦心地創建一個項目顯然是不合適的。這時候我們使用VS Code進行編程就會方便很多。針對軟件工程團隊,VS Code多用於前端開發。VS Code簡潔的外觀和豐富的插件讓它在眾多代碼編輯器中脫穎而出

    VS是一個基本完整的開發工具集,它包括了整個軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發環境等等。

    VS是一個龐然大物,各種功能一應俱全,但缺點也很明顯——慢。當然這也是無可避免的。首先VS打開就要經過漫長的加載,電腦配置稍差的話,從打開到新建項目得花上十分鍾時間。

    微軟推出了兩款編輯器和開發環境,是為了滿足不同程度的編程要求。針對代碼規模較小的程序、前端開發等VS Code更適合;VS更適合大規模開發,更適合在軟件工程對項目進行管理、測試、優化等。同時VS Code手動配置編譯環境也給了程序員更多的自由發揮的空間。

    我在兩款軟件上運行了C++代碼,VS Code更快更便捷。但針對多文件編譯,VS更方便。

  2. 描述使用這個產品的過程,解決了用戶的問題么?軟件在數據量/界面/功能/准確度上各有什么優缺點?用戶體驗方面有問題嗎?找出至少2個功能性bug。用專業的語言描述(每個bug不少於40字),如有必要,可以配圖。

    我在VS Code上編寫了一個簡單的helloworld程序,並安裝插件,配置launch.jsontasks.json文件進行了了編譯、調試等工作。

    我在VS2019上完成了個人項目作業,並進行了單元測試、代碼分析等工作。

    二者之間的比較:

    • VS Code很好的支持代碼補全等功能,其代碼補全功能的使用體驗要優於VS。VS Code解決了用戶快捷編碼的需求,豐富的插件也滿足了用戶自定義一個IDE的需求。

      VS2019解決了軟件工程開發團隊的大部分需求,從測試到性能分析不一而足。VS更適合管理千行以上的代碼。

    • VS Code界面美觀,簡潔大方,更支持多種插件進行界面美化,可以根據個人喜好進行配置。功能上通過插件能基本滿足代碼開發,但仍然很難進行單元測試、性能分析等功能。此外VS Code還支持linux、mac等平台。

      VS2019功能窗口繁多,但支持拖動窗口自定義窗口位置,插件比較少,外觀修改插件效果都不是很好。但VS2019功能強大,真正意義上的工作站。

    • VS Code的用戶體驗不錯,但在界面的設計上延續了VS的傳統,不如Sublime Text美觀,好在豐富的插件吸引了了更多的用戶。

      VS2019體驗不算很好,雖然它提供了許多功能,但在上次作業進行單元測試和代碼分析時,這兩個功能我都沒能順利使用。性能分析功能我刪除了重裝VS2019得以解決,代碼覆蓋率分析的問題直到博客發布之日才解決(bug部分)。

    VS Code我使用的比較少,沒有碰上什么bug,下面是我使用VS時碰上的bug:

    bug 1

    在個人項目作業中,我使用VS2019 Enterprise版本進行代碼覆蓋率測試,遇到了如下問題:

    項目報錯:生成了空結果:未檢測任何二進制文件。此時單元測試可以順利進行。

    一開始我以為我的單元測試代碼有問題,經過修改,將目標代碼改成最簡單的分支語句,進行單元測試,編譯器仍然顯示:生成了空結果。

    轉到VS2019 Community版本,使用OpenCppCoverage插件,仍然無法進行代碼覆蓋率測試:

    瀏覽上次作業的班級博客發現,這個問題並不是偶然的,也有其他同學Enterprise版本無法進行單元測試。上網查閱資料發現,這個bug在VS2017 15.3版本中就存在代碼覆蓋率在15.3中不起作用

    論壇中有人給出如下解決方法(論壇中給出了多種解決辦法,但這個方法解決了我的問題):

    UPDATE: It was a problem with the VC++ Unit Test Project configuration. Under Project Properties -> Configuration Properties-> Linker->Debugging, the "Generate Debug Info" option should be set for "Optimize for debugging (/DEBUG)" in order to enable code coverage.

    開發人員也表示將會修改:

    the issue that you are mentioning is with C++ CodeCoverage, where to get code coverage user has to generate Full pdb, by changing the linker proper as you did. This is a know issue to us, we also tried to investigate doing code coverage with default(fastlink) C++ pdb configuration, but the pdb files generated does not contain sufficient information for us to do code coverage.

    With release of VS 2017.5 we also plan to document this limitation for C++ projects.

    但是這個bug在VS2019版本中依舊存在,進行代碼覆蓋率測試依舊要手動修改項目屬性。同時,VS2019的官方文檔(代碼覆蓋率疑難解答)中也給出了這個解決方法。

    community版插件的問題目前還沒有解決。git上已經有人提出了這個問題,但作者尚未給出回復。

    bug 2

    VS在進行項目屬性設置時(項目->屬性),使用Alt+Tab鍵切換到其他程序界面(瀏覽器),再切回后會導致VS“最小化”失效,此時再使用Alt+Tab鍵進行切換將不起作用。使用win+D鍵顯示桌面也沒有效果。關閉VS重啟會恢復正常。

  3. 對產品有什么改進意見

    我認為這兩款產品都是十分優秀的,況且我對這兩款產品並沒有非常深入的了解,貿然提意見顯得不夠穩妥。但就我使用時的一些體驗,我還是建議:

    • VS

      VS的功能相當豐富,但對於學生以及個別開發團隊來說,有些功能是不是顯得有些冗余?建議可以推出“青春版”,把性能分析等一些使用較少的功能作為可選擇插件。

    • VS Code

      希望VSC可以出一個官方的中文文檔。插件管理略顯混亂,可以提供插件的分類管理功能。

  4. 結論:

    VS:d) 好,不錯

    VS Code:d) 好,不錯

    評分 (滿分 10 分, 良好 6 分, 及格 4 分,聊勝於無 1 分, 很差 -3 分)

    VS VS Code
    功能 8 7
    細節 8 8
    用戶體驗 7 9
    輔助功能 9 6
    差異化功能 6 9
    軟件的效能 6 8
    總分 44 47

第二部分 分析(參考8.6節對工作的估計,和14.1節軟件工程的質量)

  1. 使用此服務的所有功能,估計這個軟件/網站/服務做到這個程度大約需要多少時間(團隊人數6人左右,計算機大學畢業生,並有專業UI支持)。(必答

    VS需要5年甚至更長時間。VS要完成一個編譯器,還要完成龐大的測試、版本管理、代碼分析功能。我估算一年時間能完成一個編譯器,兩年時間完成測試、代碼分析等等功能,一年時間前端,,一年時間測試。

    VS Code需要2~3年。VS Code相對來說比較簡單,實現一個代碼編輯器所用時間要小於VS。但要是由團隊完成現有插件,時間可能會延長。

  2. 分析這個軟件目前的優劣(和類似軟件相比),這個產品的質量在同類產品中估計名列第幾?(必答

    • VS

      VS的同類產品有:IDEA、Eclipse、Android Studio。這幾款產品我都用過,VS的使用體驗要優於其他三款。在上文中我吐槽VS加載太慢,但跟IDEA和AS相比那VS的體驗不要好太多;S的界面設計也要更優秀一點(窗口自定義位置)。加上微軟的名頭,我估計VS應該是IDE中名列第一的,PYPL 1 月 IDE 榜單:Visual Studio Code 猛追 IntelliJ 一文也給出了2019年1月的排名,VS市場占比23.05%,位列第一

    • VS Code

      VS Code的同類產品有:Sublime Text、Atom、Vim等。VS Code的優勢在於免費以及豐富的插件,支持linux、macos平台也為它加分不少。但就我的實際體驗來看,我認為VS Code的市場排名應僅低於Sublime。在上面給出的鏈接中可以看出,VS Code的市場占比(4.26%)略微高於sublime(4.12%)

  3. 你在第一部分發現的bug,為何軟件團隊不能在發布前修復?他們是不知道,還是有意不修復?你覺得是什么原因?

    針對代碼覆蓋率測試的bug,我猜測這個bug的出現率並不是很高。開發者也提到了自己並不能復現這一bug。開發者可能覺得並不值得為了這樣一個bug去修改項目屬性的默認值,可能其他功能在<DebugType>full<DebugType>的情況下並不能正常使用。故開發團隊將這一bug的解決方案放在了文檔中,而沒有進行修復。

第三部分 建議和規划(參考《構建之法》第8章功能的定位和優先級;第九章項目經理)

  1. 軟件市場有多大?潛在用戶有多少?

    VS和VS Code的軟件市場涵蓋了整個軟件開發領域,從互聯網公司到計算機科學相關學生、教育工作者都是VS的戶。VS Code的潛在用戶不僅僅是程序員、學生,許多文字工作者也用VS Code代替文本編輯器,這樣便於管理龐大的文檔(小說、企划書等)。另外,VS Code的插件越來越豐富,已經有了取代VS成為IDE的趨勢,這也為它帶了潛在用戶。VS的知名度高,所以潛在用戶比較少。

  2. 目前市場上有什么樣的產品了,他們的優勢劣勢在哪里?和它直接競爭的產品在哪里?

    • IDEA
      • 優點:版本穩定,Bug非常少。對代碼重構有着強大的支持。代碼補全功能體驗舒適。
      • 缺點:占用內存嚴重。右鍵菜單非常長,甚至超出了屏幕。
    • Eclipse
      • 優點:非常適合java語言,開發、編寫、差錯等方面非常方便。開源、免費。插件功能強大。
      • 缺點:大工程是,吃內存耗cpu。插件對eclipse版本要求比較嚴格,插件更新速度跟不上eclipse更新速度。安裝插件過多之后,速度變慢
    • Sublime
      • 優點:體積小,運行速度快。文本功能強大。內嵌python解釋器支持插件開發以達到可擴展目的。界面美觀,快捷鍵豐富。
      • 缺點:插件下載不方便。收費。
  3. 作為新的項目經理,這個產品的核心用戶群是什么樣的人,典型用戶長什么樣?學歷,年齡,專業,愛好,收入,表面需求,潛在需求都是什么?

    VS和VS Code的核心用戶都是程序員。程序員大多反應敏捷,思維靈活。面對工作時會比較嚴肅、細心。學歷從大專到博士不等,年齡大多在25~35歲之間,專業為計算機專業或數學、物理專業,愛好不一而足,但6系學生人均二次元。收入相對其他職業較高。

    程序員的需求也是分階段的,初學者都希望能使用一款簡潔、易上手的編譯器,以便他們能迅速完成一些小規模代碼的編寫。當程序員面對的項目規模越來越大時,他們希望能有一款軟件能集成所有的開發功能。當然前端程序員也希望有一款輕量級的代碼編輯器來滿足他們的需求。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM