本文適用于初學者,但也有一些老手可以使用的插件。這個答案試圖幫助您在一篇文章中涵蓋各個領域的開發(fā)工具。
看到標題我的第一反應,不就是各種IDE嗎?但畢竟我從高中開始寫代碼十幾年了,甚至在DOS系統(tǒng)下也寫過,純手工輸入代碼。過去的十年可以說見證了各種 IDE 的興衰。所以,我打算根據(jù)這些年來IDE的變化,總結一下過去好用和現(xiàn)在好用的IDE。當然,僅總結 IDE 是不夠的。結合不同的開發(fā)需求,推薦一些有用的插件。
0. 程序員開發(fā)概述
雖然統(tǒng)稱為程序員,但要知道程序員和程序員的工作差別是非常大的。在某個領域非常強的程序員可能會換個領域,不得不向新人學習。當然,一般情況下,A領域強的程序員,學習能力強。雖然技術不同,但寫代碼的“道”是一樣的。去B領域會比普通程序員快很多。
所以在程序員開發(fā)領域,習慣的IDE和插件是不一樣的。如果要對程序員進行分類,大概是這樣的(只是列舉程序員的多樣性,并不詳盡):
由于不同業(yè)務的程序員有不同的需求,所以他們對IDE和插件的要求也不同。比如客戶端需要可視化,服務端需要單元測試和壓力測試,游戲開發(fā)需要展示幀率等性能。下面的描述可能有點重疊,但我嘗試用“IDE/插件->適用組”的思路來擴展描述。在介紹IDE或者工具的時候,我也會介紹一些適合這個IDE的好用的插件。
1. 版本控制工具
【適用對象:所有程序員】
介紹這么詳細的介紹,其實我有點猶豫。畢竟我已經(jīng)點了這個問題,說明讀者對程序員的開發(fā)過程至少了解有限。我相信 90% 的人都了解版本控制。但是為了照顧新手,也為了讓這個答案覆蓋到每一個角落,還是介紹一下吧。
所謂版本控制,就是記錄你每次提交的代碼改動。如果您確定您的代碼已經(jīng)完成,您可以提交一次記錄。如果您發(fā)現(xiàn)您的代碼被更改了,您也可以從之前的記錄中恢復它。
業(yè)界常用的版本控制工具git和svn。
?1.1 SVN(全名)
之所以先引入 SVN,是為了突出 git 的好處(哈哈哈哈)。但是SVN并沒有死。我在 2013 年到 2016 年做游戲開發(fā)的時候,有幾家公司在使用 SVN。主要是為了統(tǒng)一流程,因為art也使用SVN來管理art資源,而art沒有使用git等分布式系統(tǒng),不適用。
SVN 的優(yōu)點是簡單易用。畢竟是中心化的。添加提交涉及的步驟要少得多,因為沒有拉/推操作。
但一個明顯的缺點是它不能支持離線操作。比如寫完一個函數(shù),發(fā)現(xiàn)網(wǎng)絡不通,無法提交版本。如果您此時繼續(xù)更改其他代碼,您可能會破壞您所做的工作。如果你不改變它,為什么還要等待?git中不存在這種問題
?1.2 Git
git 是一個分布式版本控制軟件。前面提到svn不支持離線操作,git中不存在這個問題??梢栽诒镜乇4鎛個版本,然后git push到遠程倉庫。
關于遠程存儲庫,有不同的選項,例如
?2. 基于 IDEA 的 IDE
【適用對象:很廣】
IDEA是由(簡稱.....是的,如你所想)軟件公司開發(fā)集成開發(fā)環(huán)境工具軟件,這家公司還是很強的,我們來看看這一系列IDE:
它的 UI 看起來像這樣,非常方便。
基于IDEA的各種IDE也是目前最流行的IDE,其應用涵蓋了開發(fā)、開發(fā)、Java開發(fā)、Web開發(fā)等諸多領域。這里就不一一介紹了,大家看上圖就知道它們是干什么的了。這里只有兩個:
?2.1
【適用對象:程序員】
圖標如下所示:
它是一款強大的跨平臺編輯器,可以幫助用戶提高語言開發(fā)效率,具有調(diào)試、語法高亮、管理、代碼跳轉(zhuǎn)、智能提示、自動補全、單元測試、版本控制等特性。
?2.2
【適用對象:程序員】
和之前一樣,由于是基于IDEA,所以還具備調(diào)試、語法高亮、管理、代碼跳轉(zhuǎn)、智能提示、自動補全、單元測試、版本控制等功能。當然,對可視化 UI 的支持是必須的。
圖源官網(wǎng)?2.3個基于IDEA的IDE的好用插件
2.3.1
在編寫復雜的條件時,嵌套括號對程序員來說是一件痛苦的事,每次都必須計算它們以確保代碼正確。
并且很好的解決了這個問題。安裝也很簡單。比如我用的話,可以直接搜索下載安裝。
當然,括號問題實際上是代碼規(guī)范問題,但是對于那些需要編寫復雜公式的人來說,使用彩虹括號,公式看起來要好得多。比如我公司的括號很長而且很多,如果沒有彩虹括號,真的很頭疼。
2.3.2
這個功能其實類似于(后面介紹)或者Xcode(后面介紹),這個插件可以在你的編輯器中嵌入代碼縮略圖。
來源:
2.3.3
這個插件是真正的“幫助程序員寫代碼”。是一個基于人工智能的代碼完成插件。與普通代碼補全不同,此插件使用機器學習對數(shù)百萬個代碼片段(Java 等)根據(jù)上下文建議補全代碼。官方demo如下
來源:
3. 基于 IDE
【適用對象:很廣】
一開始不想談這一段,但說到IDEA,難免會想起曾經(jīng)的王者。這是我學習的時候用的最多的,現(xiàn)在用的人越來越少了。
早期從事開發(fā)的人都用過,還是比較經(jīng)典的。它在Java IDE領域占據(jù)主導地位多年(但IDEA擁有更好的用戶體驗)。類似于IDEA的定位,是一個大而全的IDE。基于的IDE是:
我不會在這里列出它們,但仍然有很多。
4. Xcode
[適用于:iOS和macOS軟件程序員]
圖標看起來像錘子,所以我就不在這里貼鏈接了,因為這個軟件你需要用mac電腦去App Store下載
5.
【適用對象:開發(fā)應用和使用Unity的程序員】
我最后一次使用 VS 是在 2016 年。VS 是目前最強大的 IDE 之一。VS是一套基本完整的開發(fā)工具,包含了整個軟件生命周期所需的大部分工具,比如UML工具、代碼控制工具、集成開發(fā)環(huán)境(IDE)等等。
我使用 VS 和 Unity(如下所述)進行游戲開發(fā)。VS的界面很舒服。幾年前的UI即使在2020年也非常人性化。VS的最新版本是2019年。從官網(wǎng)的demo gif可以看出,新的VS比之前的版本更智能。
說到VS,很多程序員會想到另一個IDE:VS code。很快就會談到它。
6.其他輕量級 IDE
前面提到的IDEadobe軟件中用編程的,不得不說,太重量級了。功能大而全的缺點是安裝包大,啟動時間長。有些程序員會更喜歡輕量級的IDE,然后使用插件來匹配適合他們的工具。
?6.1個代碼(簡稱VS代碼)
【適用對象:很廣,推薦給有一定經(jīng)驗的程序員】
這是微軟在 2015 年發(fā)布的,歷史很短。這是微軟第一次為開發(fā)者提供真正的跨平臺編輯器。雖然它們被稱為“”,但 VS Code 比 VS 輕得多。目前,越來越多的人使用編碼。憑借免費、開源、輕量級、跨平臺的特點,獲得了一大批忠實粉絲。
?6.2 文本
【適用對象:很廣adobe軟件中用編程的,推薦給有一定經(jīng)驗的程序員】
文本非常相似,但它誕生于許多年前。
?6.3++(堅決抵制?。。。?/p>
【適用對象:無,堅決不使用】
我寫這個工具,不是給大家用的,而是給大家抵制的!這是正確的!為什么抵制這個工具?我真的不想?yún)⑴c非技術性的東西,但如果不是 ++ 開發(fā)人員先拿起它,我不想寫這個。如果不明白怎么回事,可以去這個issue看問題描述。
反正本來就是個過時的東西,結果開發(fā)商還是背著私貨跳到那里去,幫上忙是可笑的。
我查了一下開發(fā)商,侯金武,臺灣人。一切都明白了。說實話,我真的很鄙視軟件里這種背私貨的人。在開源社區(qū)帶私貨就像帶臭豆腐去圖書館吃一樣。你覺得好吃,別人覺得惡心。
如果它有用,而且我現(xiàn)在才知道,我建議卸載它并用其他工具替換它。不是很好嗎?當然,這不是綁架誰,誰來做什么,我只是告訴這件事,讓更多的人知道。
7. 游戲開發(fā)工具
【適用對象:游戲開發(fā)程序員】
?7.1 統(tǒng)一
Unity是一個跨平臺的2D/3D游戲引擎,可用于開發(fā)macOS和Linux平臺的單機游戲,Xbox、Wii、 3DS等主機平臺的視頻游戲,以及手機游戲如iOS等設備游戲。
這是引擎和IDE之間的區(qū)別。
Unity的主要UI如圖所示:
來源:
如您所見,您可以在 Unity 中定義資源、調(diào)整資源、管理代碼等。
如前所述,我使用 Unity 和 VS 進行開發(fā)。由于我好幾年沒做游戲了,不能自己截圖給大家看,所以這里放一張來自微軟官網(wǎng)的圖。
來源:?7.2(虛幻引擎)
虛幻引擎是由 Epic Games 開發(fā)的游戲引擎。該引擎最初是為第一人稱射擊游戲的開發(fā)而設計的,但現(xiàn)在已成功用于潛行游戲、格斗游戲、角色扮演游戲和許多其他不同類型游戲的開發(fā)。
這是5的渲染效果截圖。這是直接從游戲視頻中截取的一幀。你可以看到這個項目太強大了。有網(wǎng)友表示,虛幻引擎遲早會更名為“Real ”。
?7.3 Flash+Flex
不知道現(xiàn)在還有沒有人用這個,不過這是一套開發(fā)網(wǎng)頁游戲的組合。但是現(xiàn)在到了2020年,這套搭配已經(jīng)很落伍了?,F(xiàn)在大家都用H5開發(fā),很少用Flash。Adobe官方宣布將在2020年停止支持Flash,所以這只是懷舊之情,不建議想做頁游的人學習使用這個框架。自 2014 年以來我沒有制作網(wǎng)頁游戲,當時我們使用的是 Flash+Flex 的組合
8.
【適用于:數(shù)據(jù)分析師、數(shù)據(jù)科學家】
使用起來非常直觀,會以網(wǎng)頁的形式打開。您可以直接在網(wǎng)頁中編寫代碼并運行代碼,代碼的運行結果也會直接顯示在代碼塊下方。一般廣泛應用于數(shù)據(jù)分析、數(shù)據(jù)科學等領域(我也是忠實用戶之一一)
來源:
, 是 Julia 和 R 的縮寫,它們也是受支持的語言。事實上,它不僅支持這三種,而且支持超過 40 種編程語言。
最后
畢竟這個答案篇幅有限,不能窮盡所有工具。作為這個答案的最后,我附上了 2020 年 12 月的 IDE 排行榜。我沒有提到一些 IDE。有興趣的可以去搜搜。
參考平臺:構建開發(fā)者工具的開源平臺 - IDE index