編程必備:程序員應該都知道的文本編輯器、書籍和技巧

編程語言 程序員 文本編輯器 Vim 程序員精選 2017-03-28

程序員在哪裡編寫代碼?最常見的就是使用文本編輯器了吧。

Sublime 2 & 3

Sublime Text 是許多開發人員日常使用的經典文本編輯器,可用於包括 Windows、Mac、Linux 等多個平臺。不過雖然可以不購買許可證免費使用,但不時會有彈窗消息提示,有點煩人。想去除彈窗的,還是去付費購買吧。

編程必備:程序員應該都知道的文本編輯器、書籍和技巧

TextMate

TextMate 是 Mac下的著名文本編輯器,曾經是 Ruby on Rails 開發人員默認使用的,原因就在於他們主要都在使用 Mac OS 系統。可惜的是,由於只適用於 Mac 系統,有點限制了它的使用性。

TextMate 具有豐富的功能集、外部庫和一些一出現就被其他編輯器複製的創新功能。個人認為其中最引人注目的當屬“模糊查找功能”,允許快速定位文件,無需通過 Command + T 來搜尋完整的文件目錄。

Vim / MacVim

如果你看到那些知道自己真正要做什麼的人使用 Vim 的話,你會感受到它的速度有多可怕。Vim 是一個命令行文本編輯器,意味著你可以不使用鼠標與它交互。

Vim 帶有多種編輯模式,這和其他文本編輯器有明顯的不同。同時它也是一個學習起來非常有挑戰性的文本編輯器,但一旦學會了,就能讓編程更快。

如果是剛剛開始學習編程的,其實不太建議使用 Vim。專業編程幾年後,再來考慮拿起 Vim 提高生產力。

編程必備:程序員應該都知道的文本編輯器、書籍和技巧

一提到有關編程方面的書籍,你就會想起江湖中傳說的“每個程序員必讀的12本計算機科學書籍”,然而,這份清單並沒有什麼實用性。

《Introduction to Algorithms》

編程必備:程序員應該都知道的文本編輯器、書籍和技巧

在江湖中流傳的各種版本“所有程序員必讀之書”的清單中,《算法導論》就佔據了半壁江山。這本書將嚴謹性和全面性融為一體,深入討論了各種算法。實際上,幾乎沒有讀者會讀完整本書。不過,全書各章自成體系,可以作為獨立的學習單元。它是全球讀者最多的算法聖經。

讀過操作系統書籍的人往往有偏見——正是做這方面的相關人士,如果你是骨灰級玩家,除非閱讀這些,你可能得不到同樣的結果。

《Operating System Concepts》

編程必備:程序員應該都知道的文本編輯器、書籍和技巧

好吧,這是Comet Book成為標準之前,我們在Wisconsin就用過的一本書。

《操作系統概念》涵蓋了高階概念並擊中要點,但是在技術層次的深度稍顯不足,沒有詳細闡述事情是如何工作的,也沒有清晰列出更高級的主題。

《Refactoring》

編程必備:程序員應該都知道的文本編輯器、書籍和技巧

那時候當我讀這本《重構:改善既有代碼的設計》時,由於它在關於代碼異味的單獨章節所花的篇幅,使得這本書非常值這個價。該書非常成功,因為它使重構和代碼異味的觀念成為主流。

另外,編程開發需要常用的兩大技巧:

1、充分利用代碼分析工具

測試的價值是編程早期階段就灌輸給軟件開發者的一個理念。近年來,單元測試,測試驅動開發和敏捷方法的興起,證實了我們開始注重於在開發週期的各個階段進行測試。但是,測試只是你可以用來提高代碼質量的許多工具之一。

回過頭去看,當C語言還是一個新事物的時候,CPU時間和任何類型的存儲都是非常寶貴的。

第一個C語言編譯器注意到了這一點,所以選擇了通過去掉一些語義分析,來減少代碼之間的傳遞次數。這意味著,在編譯時,編譯器檢查到的可能只是可被檢測到的bug中的一小部分。

為了彌補這個缺陷,Stephen Johnson寫了一個名為lint的工具——它將從你的代碼中刪除一些沒有價值的東西——從而實現一些已被它的兄弟C語言編譯器撤掉的靜態分析功能。然而,靜態分析工具卻因為可以給出大範圍的誤報警告和一些沒有必要遵循的靜態文體慣例的警告而倍受讚譽。

現在的語言、編譯器和靜態分析工具的設計和以前已經大不相同。由於內存和CPU時間變得相對比較便宜,因此負擔得起編譯器檢查更多的錯誤。

幾乎每一種語言都擁有至少一個工具,用來檢查風格指南的違規行為、常見問題以及一些狡猾的有時候可能很難捕捉到的錯誤,如潛在取消引用空指針。

更高級的工具,如C的Splint,以及Python的pylint,是可配置的,這意味著你可以通過命令行開關或在IDE中,使用配置文件來讓工具選擇放過其中的哪些錯誤和警告。Splint甚至還能讓你在註釋中註解你的代碼,以便於更好地提示你的程序是如何工作的。

2、關心代碼

優秀程序員能寫出好代碼,這是毋庸置疑的。壞程序員……則不能(他們能寫出好代碼,就不是壞程序員了,哈哈)。他們總是在生產其他人不得不消滅的怪獸。你的目標是寫出好代碼,對不?那麼你應該成為好程序員。

好的代碼並不是憑空而來的,也不能靠運氣然後恰巧讓你瞎貓碰到死老鼠。為了獲得良好的代碼,你必須努力的改進。過程是艱難的。但是如果你確實關心代碼的話,那麼你一定能收穫好代碼。

另外還有一點可以通過自身的學習來獲取一大進步。

分享給超過5萬的程序員朋友下載,這次我把所有乾貨重新梳理精簡,免費分享給大家 。

編程必備:程序員應該都知道的文本編輯器、書籍和技巧

究竟有哪些乾貨呢?

免費領取資料,請關注微信公眾號 “程序員精選”,或者微信搜索“wnl1121”

相關推薦

推薦中...