IDE or Editor?
IDE(整合開發環境)介紹
IDE(IDE,Integrated Development Environment )整合開發環境:是用於提供程式開發環境的應用程式,一般包括程式碼編輯器、編譯器、偵錯程式和圖形使用者介面等工具。集成了程式碼編寫功能、分析功能、編譯功能、除錯功能等一體化的開發軟體服務套。所有具備這一特性的軟體或者軟體套(組)都可以叫整合開發環境。(來自百度百科)
每一種語言都有很多對應的IDE,比如C++開發的Code Blocks、Dev C++,Visual Studio;python的pycharm; php的phpstorm、zend studio;Golang有Liteide、goland;java有eclipse、myeclipse、InteliJ....很多很多,其實上面對於IDE的解釋,結合工作中最常用的幾個功能,也就下面這幾個了:
- 自動縮排、程式碼格式化、語法高亮
- 智慧感知、自動補全
- 程式碼片段
- 執行、單元測試、除錯
- lint
- 專案結構管理(包、模組管理)
- 定時自動儲存
可以看到IDE的功能的確是挺強大的,這也就導致一個問題:臃腫。直觀感受就是:
- 安裝時間太長、啟動慢
- 執行佔用記憶體太大,卡
- 響應時間比較慢
程式碼編輯器(文字開發編輯器)
程式碼編輯器,也可以說是文字編輯器,重點是:編輯器。
常見的編輯器有:Notepad++、EditPlus、Sublime text、vs code、Vim..
幾乎所有編輯器都有自動縮排的功能,幾乎所有編輯器都沒有上面列出的IDE的其他功能。可以說,編輯器很純粹,就是用來編輯文字的。同時,幾乎每一種編輯器都支援外掛,你可以下載自己需要的、喜歡的地外掛。擁有外掛的編輯器不一定比IDE差。
我的經歷
最初學習C++,使用codeblocks,當時就知道將程式碼寫好之後,按一下F9就可執行程式碼,至於為什麼可以執行程式碼,也是之後在大三的時候才知道。
期間學習一些指令碼,用的最多的就是sublime text,因為他可以切換主題,也可以安裝外掛,另外開啟檔案速度也很快(秒殺IDE)。
之後工作期間,按照規定,都登入到堡壘機中進行開發,於是開始使用Vim,雖然快捷鍵有點多,但是用熟練之後,開發效率真的特別高,從此,我的所有編輯器,都裝了vim外掛。
最近接觸到VS code,他的特點就是:sublime text有的,他都有。關鍵是免費,別給我說搜sublime text的序列號,在公司,呵呵。
個人推薦
我不會推薦哪一個IDE或者哪一個編輯器,我只要想說的是:如果你想穩紮穩打,那麼在學習的時候,不要使用IDE;在真正的開發任務中,推薦使用IDE。
為什麼呢?其實大家都很清楚,IDE有那麼多優點,可以省去很多手動編寫程式碼的時間,在開發任務進行中,利用IDE來生成程式碼(甚至生成一個成型專案也是可以的),無疑可以加快開發進度,因為有各種檢測和提示功能,也可以減少出錯;
但是,在學習過程中,最好不要使用IDE,除非你知道你的某個快捷鍵或者某個按鈕在底層為你做了什麼,為什麼按一下快捷鍵就能執行,為什麼點一下按鈕就能匯入包?底層執行了什麼命令?
另外,即使你學會了一個IDE的快捷鍵,如果換一個IDE,咋辦呢?快捷鍵不一定通用呀!
舉個我學習Java過程中的一個例子:
我一直用的是vs code,平時執行java程式,都是寫的一個指令碼(幾十行的shell指令碼),用這個指令碼來執行java程式。學到Java連線資料庫的時候,需要匯入一個mysql的驅動,但是,驚奇的發現,書上、網上的部落格、教程,全部都是使用eclipse來完成的(在eclipse專案右擊“構建路徑”--“配置構建路徑”--“庫”--“新增外部jar”--找到資料庫的驅動jar包--點選確定。會在左側包資源管理器中出現“引用的庫”,在裡面就能找到我們剛才匯入的jar包)。
為了學個Java連資料庫,我還要去安裝一個eclipse?真是搞笑,如果開發環境是純命令列的Linux系統,那你就呵呵噠。
當然,我不是說,用IDE就不好,IDE有他的優點,但在學習階段,如果真的想要走的更遠,那就別用IDE,雖然每一種語言有很多的API,並不需要你去記住API的每一個字母(最好能,但是不現實),但是真的需要你去 完整地、手動地敲幾遍,即使日後使用IDE,那也是莫問題的;想想以後面試的時候,手寫程式碼的時候,你好意思叫面試官給你準備電腦嗎?別傻了!
最後在說一句:學習是嚴謹的、需要腳踏實地。