軟件案例分析——VS和VS Code
第一部分 調研,測評
一、使用10–30分鍾這個軟件的基本功能(請上傳使用軟件的照片)
VS code
Visual Studio
二、主要功能和目標用戶有何不同,描述使用這個產品的過程,解決了用戶的問題么?
VS是個一系列開發套件,vscosde是一個編譯器
VS是Microsoft 開發的一系列的開發套件,是一個完整的開發工具集,包含了軟件開發中所需要的大多數工具,例如UML工具,代碼管理工具,IDE等。
vscode是一個單純的編譯器,專注於開發者最常用的功能:編譯器+代碼理解+調試。並通過使用海量插件來滿足不同用戶的需要。
跨平台能力上的區別
VS只能在Windows上運行,不能進行跨平台的編輯。vscode支持跨平台,例如:Win、Mac、Linux等平台
軟件大小的差別
VS大小10G+,內置了編譯工具,調試工具,各種語言的開發工具,全部都已經配置好了,可以做到開箱即用。vscode是一個簡介的文本編輯器,占用的內存不超過100M,剛安裝時相當於一個文本編輯器,需要安裝各種插件才能開始使用。
目標用戶的區別
VS致力於成為世界上最好 IDE,它的確也配得上這個稱號。它巨大的體量保證了功能的完整性,實際體驗的感覺也很不錯,上手非常快。在我剛開始編程時使用的就是VS,它可以說是我編程的啟蒙老師,無論是學習還是開發都非常方便。而vscode是最近流行的編輯器,它對mac和Linux環境下的用戶非常友好,但在Windows上體驗不如VS,它小巧的體型也預示着它要安裝大量的插件才能適應各種開發環境。
總而言之,他們的功能有交叉,也有不同。VS有很多的高級功能,也許只有專業的開發人員才會用到,甚至在用過以后就產生了依賴,成為了它的付費用戶。而vscode是輕量級編輯器,能夠在各種平台上適應各種工程的開發。只是用VS一小部分功能的用戶可能會選擇更輕便的vscode來開發。
三、兩個功能性BUG
- 我在使用VS寫結對項目時需要下載插件,但是在擴展下載的時候會卡死不動,無法下載。在網上查找解決辦法時發現這是一個普遍性的問題,據說是因為微軟在國內的服務器很不穩定,解決方法是打開右側了解詳情去到瀏覽器中下載。
-
在使用QT+VS編寫工程時,我才了解到了VS中Release和Debug兩種調試功能的不同
- Debug通常稱為調試版本,通過一系列編譯選項的配合,編譯的結果通常包含調試信息,而且不做任何優化,以為開發人員提供強大的應用程序調試能力。
- Release通常稱為發布版本,是為用戶使用的,一般客戶不允許在發布版本上進行調試。所以不保存調試信息,同時,它往往進行了各種優化,以期達到代碼最小和速度最優。為用戶的使用提供便利。
但是在debug模式和release模式下程序執行的結果可能會不一致,這是因為在Release版本會對程序進行優化處理以提高代碼的運行速度,對於錯誤的處理也沒有debug編譯時的全面,所以在debug編譯時不是問題的問題都會暴露出來。例如:內存分配問題:變量未初始化;以及最為嚴重的“DLL的災難”,當人們將不同版本的DLL混合在一起使用所造成的不一致稱被稱為“DLL Hell”。這種不一致只能在寫代碼時自己注意。
四、對產品有什么改進意見
微軟作為計算機界的龍頭之一,所開發的產品質量當然是毋庸置疑的。VS是我最喜歡使用的IDE,界面美觀,使用方便。而VS code是我剛剛接觸到的新編譯器,所以兩個軟件能提供的建議都十分有限。
- VS在編譯一個巨大的工程時可能會花費大量的時間,有時會顯得十分卡頓,當程序較為復雜時語法檢測的速度可能會更不上編程的速度,如果優化一下可能會更加優秀。
- VS code在今天下載好一打開就讓我眼前一亮,他的界面十分簡潔。但當真正使用起來時,對於環境的配置和插件的下載略顯復雜。對於剛剛接觸這款編譯器的萌新來說很不友好,需要一些適應期才能熟悉。
五、軟件評價
描述 | VS | VS Code | |
---|---|---|---|
功能(20) | 編譯器的強大性, | 19 | 18 |
界面(10) | 界面的美觀 | 10 | 10 |
用戶體驗(10) | 用戶使用時的舒適度 | 10 | 9 |
輔助功能(10) | 優化用戶的使用體驗的功能 | 10 | 9 |
擴展功能(10) | 支持插件擴展的程度 | 9 | 10 |
軟件效能(10) | 啟動速度,運行速度 | 8 | 10 |
軟件的適應性(10) | 跨平台性 | 5 | 10 |
用戶有控制權(10) | 讓用戶方便地從錯誤中恢復工作, 快捷操作鍵可調整。 | 9 | 9 |
軟件的上手難度(10) | 10 | 8 | |
總分 | 90 | 93 |
兩個軟件我都十分推薦使用,而我自己在今后的學習工作中肯定離不開他們了。
第二部分 分析
1.使用此服務的所有功能,估計這個軟件/網站/服務做到這個程度大約需要多少時間(團隊人數6人左右,計算機大學畢業生,並有專業UI支持)。
對於VS來說僅僅使用六人的計算機大學畢業生,我認為是非常困難的項目。VS背后應該是一個接近千人的團隊共同開發的產品,它的許多功能我甚至都沒有接觸過,甚至以后也不會接觸到,所以難度可想而知。我估計至少得需要五年的時間,才能開發出一個基本的結構,能夠有一些基本的功能,例如IDE。想要徹底完善,可能需要更久的時間。
VS code:據我了解,VS code因其體量小的緣故,它的開發團隊只有20多個人,大部分功能都是依賴插件,而插件都有對應的團隊在開發,不用自己去操心。所以VS Code的開發相對於VS來說比較容易,我估計大概一年的時間就可以開發出可發行版。
2.分析這個軟件目前的優劣(和類似軟件相比),這個產品的質量在同類產品中估計名列第幾?
作為VS的“老用戶”,我認為它給我帶來的體驗是比較好的,無論是界面還是編寫程序時的體驗都很好。當然其他的同類工具例如:IDEA,Eclipse等,都有他們各自的優勢,是好是壞都需要使用者自己去評判。但VS應該是這幾年里我心中的業界第一,再加上微軟這個靠山,我相信它帶給用戶的體驗不會遜色與其他同行。
VS code據說是因為微軟看不下去同類軟件做的糟糕至極,所以要自己來開發一個。雖然這種說法具有誇張之意,但短短的體驗也帶給了我莫大的震驚,它如同萬能拼圖,想要什么形狀都可以,使用過的人都連連稱贊。所以,雖然交情不深,但我還是把它排到業界第一。
3.你在第一部分發現的bug,為何軟件團隊不能在發布前修復?他們是不知道,還是有意不修復?你覺得是什么原因?
第一個BUG可能是無法更根治的問題,也可能是因人而異的而問題,如果要徹底解決服務器不穩定的狀況可能需要大量的投入,況且還有備用方案可以使用,所以解決它不是很大的問題。
第二個稱不上是BUG,但在出現時微軟也對它束手無策,但隨着使用者的約定幾乎解決了這個問題,只要將DLL的版本號寫入文件夾中,識別到版本不同的DLL就拒絕編譯。當大家都遵守編程規范時,這個問題就不是問題了。
第三部分 建議和規划
1.首先,市場有多大?潛在的用戶有多少?
對於VS和VS Code來說,幾乎所有接觸到編程的人,上至項目經理,下至剛剛接觸的小學生,都是潛在用戶,可以說市場如大海般廣闊。
2.目前市場上有什么樣的產品了,它們的優勢劣勢在哪里?和它直接競爭的產品在那里?
因為這是一個很大的市場,所以競爭也相當的激烈。
VS和VS Code
本公司的明星產品。
NetBeans
NetBeans是一個免費開源的Java集成的開發環境軟件,主要用於Java開發。適合從零開始或者對已有工程進行開發。NetBeans支持多種編譯器,如CLang/LLVM、Cygwin(GNU)、MinGW和Oracle Solaris Studio。
NetBeans是一款跨平台的IDE,支持Windows,Linux,OS X等多種平台。
PyCharm
PyCharm是著名的PythonIDE,有知名的IDE開發商JetBrains出品。除了最常用的IDE功能支持外,PyCharm特別對Python Web開發進行優化設計(Django、Flask、Pyramid、Web2Py)。PyCharm還支持Google App Engine和IronPython/Jupyter。除了Python之外,它還支持其他Web開發語言:JavaScript、Node.js、CoffeeScript、TypeScript、Dart、CSS、HTML。它可以很容易地與Git,Mercurial和SVN等版本管理(VCS)工具集成。
IntelliJ IDEA
IntelliJ IDEA由Jet Brains出品的另外一款IDE。主要用於JAVA開發,集成了廣泛的工具,可以用於Web和安卓移動應用程序開發。除了Java、Sass和Ruby之外,它還支持與Pycharm相同的語言。同樣的它也支持Google App Engine,IDEA目前開源,有免費的社區版本,但是重要功能的版本是收費的。
Eclipse
被廣泛應用的免費開源的Java編輯器和IDE。可以靈活的適用於初學者和專業人。有很好的插件機制,支持各種各樣的擴展和插件。最初是一個Java IDE。現在擴展到支C/C ++,Java、Peri、PHP、Python、Ruby以及更多的語言。Eclipse也是一個跨平台的IDE,支持Windows、Linux和Mac OS X。
Code:: Blocks
Code:: Block免費開源的自由軟件,是一款支持高度定制跨平台IDE,並堅持所有平台上執行始終如一地的效果。對於經常在不同平台切換的開發人員而言,非常方便。它主要支持C、C ++語言。還支持很多預設和定制插件。
3.作為新的項目經理,這個產品的核心用戶群是什么樣的人,典型用戶長什么樣?學歷,年齡,專業,愛好,收入,表面需求,潛在需求都是什么?
本用戶的核心用戶群應該是軟件的開發者和學習者,學歷是本科及本科以上,年齡從18歲到38歲居多,專業大多是是計算機和軟件,愛好是自己寫代碼、與他人一起寫代碼和閱讀學習他人的代碼,收入普遍較高。表面需求是尋找一款適合自己做軟件開發和學習的工具,一定要用起來舒適方便。潛在需求是能夠快且正確的寫出盡量多還要清晰的代碼。
4,如果你有錢可以招聘6個人,有4個月的時間,你作為項目經理,應該如何配置角色(開發,測試,美工等等)?描述你的團隊在16周期間每周都要做什么,才能在第16周如期發布軟件的改進版本,並取得預想中的成績。
時間 | 開發 | 測試 | 美工 |
---|---|---|---|
1-8周 | 4 | 1 | 1 |
8-14周 | 2 | 2 | 2 |
15-16周 | 2 | 3 | 1 |
一個項目最終要的就是開發,開發者必須思路清晰,分工合理,最后的成品才能經得住檢驗,所以開發者之中一定要有一個先鋒角色來引導團隊的開發。在前8周,必須快而好的拿出一個半成品,需要許多人力,而測試和美工不需要太着急。在8-14周要抓緊時間完善美工,同時推進測試的進行,軟件開發進入收尾階段。12-16周,最后的時間里要確保軟件處於最佳狀態,測試成為了重中之重同時開發者要修復之前犯下的錯誤。我相信16周之后一定能取得好的成績。