2020BUAA軟工個人部落格作業-軟體案例分析
17373010 杜博玮
項目 | 内容 |
---|---|
這個作業屬于哪個課程 | 2020春季計算機學院軟體工程(羅傑 任健) |
這個作業的要求在哪裡 | 個人部落格作業-軟體案例分析 |
我在這個課程的目标是 | 學習軟體工程,培養工程開發能力、團隊協作能力,開闊視野 |
這個作業在哪個具體方面幫助我實作目标 | 通過案例分析更好的體會軟體工程原則在實際應用的展現 |
本次作業我選擇了VS和VS Code進行分析。
VS與VS Code在我的學習中占據很重要的地位。VS Code輕量,便捷,易拓展;VS則是全面而複雜。在日常生活中我的很多C/C++程式、python腳本等都是使用VS Code編寫的,同時大多數大型項目都是借助于VS來完成的。
VS和VS Code都是微軟旗下相當有名的産品,有着相當不錯的口碑。同時兩者也有着很多的共同點與差異。是以我準備選擇這兩個軟體來進行對比分析。
第一部分 調研、評測
Visual Studio:
主要功能介紹:
我們在VS的官網上可以看到微軟對VS的介紹:更快地進行代碼編寫。 更智能地執行操作。 使用同類最佳 IDE 建立未來。VS是一個基本完整的開發工具集,包括UML設計工具、內建開發環境(IDE)、代碼管理工具等,基本上從初始設計到最終部署,項目的整個過程都可以通過VS來實作。在官網的功能介紹位置,微軟給出了這幾項主要功能:開發、分析、調試、測試、協作、部署。這些功能的組合可以支撐一個團隊完成一個項目開發的完整流程。
下面是我借助VS進行這次結伴項目的開發、調試等流程的截圖。
開發操作:
調試操作:
除了VS強大而廣泛的功能,它也支援相當多種類的項目開發。從簡單的C/C++、Python等語言的控制台程式,到Unity開發、UWP應用開發、Web開發、甚至Visual Studio擴充開發、Office附加元件開發、資料存儲與處理等相當多的項目它都能支援。這種繁雜程度,實在使人難以想象。
此外,從上面的圖檔中,我們可以發現,我為我的界面設定了自定義的背景。這種功能則得益于VS強大的插件功能。盡管VS已經幾乎做到了全能,但是必然還會存在一些沒有實作的有需求的功能。借助他人的插件或者自己編寫的插件,可以讓你的VS體驗更上一層樓。
對這一軟體的使用體驗:
Visual Studio在使用過程中給人的感覺就像是一個精密的數控機床,各項功能都在這裡,你盡可能去幹,反正你想要的東西我這裡都有。代碼格式不好?VS這裡有排版功能。怎麼優化項目性能?VS有性能測試幫你解決。項目設計圖做出來了之後呢?VS幫你根據UML圖直接生成代碼。Git使用好難,VS自帶GUI的git版本控制系統。你簡直想不到VS所不能做到的事情。
然而想做到這一點可不是那麼輕松的,VS為這個全家桶付出的可不少。一個僅僅安裝了C++元件的VS安裝下來就是7GB以上,一個完全版的VS會占用幾乎30GB的硬碟空間。而打開這個VS需要接近1分鐘的時間(機械硬碟)。僅僅打開一個項目,不進行任何操作的VS也會占用500MB以上的記憶體空間。這種代價不可謂不大。
與此同時,對于這種大型軟體,VS給使用者的使用指引卻少的出奇。如何指引新手?微軟的答案是讓跨域新手門檻的人指引新手。遇到問題後,我們基本上不能從VS所提供的資訊中擷取解決方法,隻能通過官方的文檔,或者是掉過這個坑的前人的部落格,或者是通過StackOverflow解決。
優缺點評價:
優點:功能豐富、強大,支援拓展。
缺點:子產品化還是不夠細緻,基本上沒有人會使用所有的功能。使用指引缺乏,上手難度很高。
改進意見:
希望能夠針對上述缺點進行改進,增加安裝時的選項,以去掉一些不常用的功能;增加對新手的指引,同時優化各功能的布局。
VS Code:
在VS Code的首頁上,微軟将這一軟體定義為新一代的免費開源的代碼編輯器。
微軟着重重視它的五項功能
IntelliSense,VS Code的代碼補全功能相當智能,在我的體驗中我感覺它是強于VS的補全功能的。
編輯器内調試。VS Code盡管是一個代碼編輯器,但是它同樣可以直接在編輯器中調試代碼。在我看來,更友善的是它甚至還記錄了目前執行函數的前幾層函數,并可以查詢前幾層函數的各個變量的值,這使得調試極為友善。
内置的git服務。VS Code與VS一樣,均内置圖形化的git工具。
可以拓展。這是VS Code的精髓所在。可以說數以百萬計的拓展就是VS Code的核心。我們可以通過安裝中文插件漢化界面,我們可以通過安裝python插件使VS Code支援python,我們也可以通過npm插件運作npm腳本,我們還可以安裝debugger for chrome插件以便于web開發,我們甚至還可以安裝插件來美化代碼字型、改變背景、在代碼内插入Emoji。
下面是我上個學期使用VS Code進行編譯器的開發的使用圖:
VS Code用起來真的很爽,其中很大一部分原因要歸功于它的清爽。不同于VS,打開後我們隻能看見界面上密密麻麻的按鈕,以及長達一個螢幕的快捷菜單,這很難讓人有種安心的感覺,反而是感到無窮的壓力。VS Code則是幾乎不會有按鈕,它的設定主要是在項目檔案夾内的json檔案中設定的,我們配置好項目後就可以直接面向清爽的文本編輯畫面編寫代碼了。一個VS Code的大小不過500MB,我們完全可以将其放于固态硬碟之中,軟體10秒啟動,一般情況下占用記憶體34MB。與VS相比VS Code就是一個小蝦米。
在編寫過程中,對于那些用慣了Vim等編輯器的程式員,他們完全可以借助插件來變更編輯器的快捷鍵方式,真正做到海納百川,讓所有人感受寫代碼的愉悅。
然而,真正入門VS Code時你依然不能放松警惕。因為VS Code的json配置也可以勸退不少的新人。VS可以做到一鍵生成hello world程式,而VS Code各種參數都需要你去配置。盡管網上有比較多的教程,但是如何去綜合這些教程還是要看你自身的能力了。
此外,盡管插件是VS Code崛起的重要一環,但是插件同樣也會給VS Code提供不小的挑戰。如果安裝了太多的插件,VS Code就會退化成VS,臃腫不堪。同時很多第三方提供的插件品質良莠不齊,BUG較多。而且即使擁有了必要的插件,VS Code也不會像專業的IDE一樣悉心幫你安排項目的一切,最終的情形還是依賴于你自己。
優點:輕量,便捷,可擴充能力很強。
缺點:上手難度還是比較高,插件品質無法得到保障。
希望加強對于共享插件的監督,及時剔除功能重複的插件,嚴格保證插件的品質,增加對配置檔案的說明,提供一種圖形化的配置方案。
BUG描述:
想要找到VS和VS Code的BUG實在不是個容易完成的操作。這兩個軟體畢竟已經是經過了嚴格的開發部署的産品。下面簡單介紹一下我所發現的問題。
VS:
1 在解決方案的屬性中,一個很重要的屬性是附加依賴項。它預設是從父類或項目預設設定繼承的。如果你将它去掉并應用之後,再次編輯附加依賴項,你會看到從父類或項目預設設定繼承的選項會被勾上。這意味着不去掉這個勾,編輯之後的附加依賴項會重新從父類或項目預設設定繼承。
2 在代碼補全上,我們輸入一個變量名稱,VS的代碼補全可能會将其認定為一個宏,此時如果你輸入'.'字元,代碼補全可能會直接認定你輸入的是這個宏,而自動進行了代碼補全,很不友善。
1 VS Code自帶的終端的顯示行數存在上限。我們知道,VS Code是調用的windows下的powershell作為終端的,而powershell的終端顯示行數存在上限。在我的電腦上是3000,但是在一些情況下很容易輸出超過這一上限,進而隻能通過檔案輸出來解決這一問題。
2 VS Code将檔案夾從工作區删除後給出的提示會無預兆增加。此後在添加一個檔案夾到工作區後再次删除,提示會進一步增加。
評分:
visual studio | visual studio code | |
---|---|---|
核心功能 | 9.5(确實很全面) | 10.0(對編輯器的實作很完美) |
輔助功能 | 9.0(确實很全面) | 8.0(與VS的全面相比有些欠缺) |
使用者體驗 | 6.0(有些繁瑣) | 9.5(體驗很舒服) |
差異化功能 | 9.5(與同類相比更加全能) | 10.0(與vim等編輯器相比非常強勁) |
軟體的效能 | 4.0(真的很差) | 9.5(真的很好) |
客制化服務 | 8.0(插件比較完善) | 10.0(插件相當完善) |
visual studio:平均分7.67,總評d,好,不錯
visual studio code:平均分9.5,總評e,非常推薦
第二部分 分析
1 使用此服務的所有功能,估計這個軟體/網站/服務做到這個程度大約需要多少時間(團隊人數6人左右,計算機大學畢業生,并有專業UI支援)。
對于visual studio,6個計算機大學畢業生,并有專業UI支援的團隊應當完全無法完成。微軟公司于1993年推出Visual C++1.0,此後不斷更新,直到VS 2019.這是一個巨無霸企業經曆了近30年完成的項目,功能相當繁多,根本不是這種團隊可以完成的。
對于visual studio code,團隊可能需要6年左右的時間來開發一個不帶任何插件的版本。這主要是因為團隊的經驗問題。6個計算機大學畢業生的經驗會使完成項目的時間極大程度地拖延。
2 分析這個軟體目前的優劣(和類似軟體相比),這個産品的品質在同類産品中估計名列第幾?
visual studio的能力幾乎可以同JetBrains全家桶相當。而Eclipse的項目配置、軟體效能方面均與VS有很大差距。個人估計VS的品質是足以排名第一的。
VS Code則因其強大的插件支援與同類相比更強一些。我估計它也足以稱第一
我們可以看到上述IDE的熱度榜,visual studio遙遙領先,VS Code則遠超Vim、Sublime Text等編輯器,沖到了第四的位置,足以證明這兩個産品的強度。
3 你在第一部分發現的bug,為何軟體團隊不能在釋出前修複?他們是不知道,還是有意不修複?你覺得是什麼原因?
對于VS:
第一個BUG可能是因為從父類或項目預設設定繼承是一個相當常用的選項,幾乎不會有人去去掉這一選項,是以測試把關不嚴,沒能發現這一問題。
第二個BUG應當比較常見,但是沒有修複的原因很有可能是開發人員粗心大意。畢竟VS Code中是沒有這個BUG的。
對于VS Code:
第一個BUG是windows的powershell自身的問題,應當是因為對使用者需求掌握不好。
第二個BUG我在此前的版本中沒有發現,應當是新版本出現的BUG,我認為是測試把關不嚴,敷衍了事,沒有發現這一BUG。
第三部分 建議和規劃
-
首先,市場有多大?潛在的使用者有多少?
代碼編輯器和IDE的市場相當廣大,所有的程式員以及計算機專業的學生還有業餘愛好者都是潛在的使用者。 -
目前市場上有什麼樣的産品了,它們的優勢劣勢在哪裡?和它直接競争的産品在那裡?
經過這麼多年的發展,市場上存在大量的IDE和文本編輯器。
對于IDE,存在着IDEA,Pycharm等JetBrains全家桶、Eclipse等。JetBrains全家桶優勢在于專注于一個方面,軟體精緻而好用,缺點在于不夠全面,跨語言的項目不容易處理,同時價格也很昂貴。Eclipse的優勢在于使用者基礎大,功能也比較全面,缺點在于相當臃腫。
對于文本編輯器,存在着Apple Xcode、Vim等,因為我是win10系統,沒有使用過Apple Xcode,但是Apple Xcode也同樣是輕量級的文本編輯器,缺陷在于不像VS Code一樣跨平台。Vim優勢在于更為輕量化,且擁有不小的使用者基礎,缺點在于界面不如VS Code美觀,插件種類也不如它豐富。
-
作為新的項目經理,這個産品的核心使用者群是什麼樣的人,典型使用者長什麼樣?學曆,年齡,專業,愛好,收入,表面需求,潛在需求都是什麼?
核心使用者群是程式編寫者人群。
典型客戶既有我們這類學生,學曆不夠高,年齡較小,專業為計算機,幾乎沒有收入。或者業餘愛好者,他們學曆、年齡、收入都很難确定,但是他們的需求與學生相似,都更希望界面美觀、功能完善。他們可能會厭倦臃腫的VS,而去擁抱簡潔、舒适、輕量的VS Code。
也有專業的程式員,學曆高、年齡較大、出自計算機專業、收入高。他們更需要的是專業的IDE,需要更加支援團隊項目的軟體。是以更容易選擇全面、專業的VS。