本節將要介紹的多種實用工具,就能夠幫咱們全方位武裝成「懶惰」的程序員,例如可幫咱們提高工做效率的硬件、操做系統和軟件。php
能夠幫咱們提高工做效率的硬件這裏盤點一下那些能夠提高程序員工做效率的硬件設備。html
1.顯示器java
筆記本電腦基本上是程序員開發的標配,那麼要不要給本身再多配置一臺顯示器呢?配置一臺多大的顯示器呢?程序員
在 StackOverflow2018 開發者調查報告中顯示,有 51.1%的開發者使用兩個顯示器,有17%的開發者使用三個以上顯示器。正則表達式
美國猶他州立大學的研究人員也測試了工做效率與不一樣電腦配置的 關 聯 性 。他 們 讓 受 訪 者 完 成 同 樣 的 工 做 , 測 試 結 果 如 下(http://dwz.cn/Kf579):算法
◎ 使用24寸顯示器工做的人比使用18寸顯示器工做的人在工做效率上要高52%;sql
◎ 使用兩個 20 寸顯示器工做的人比使用單個 18 寸顯示器工做的人在工做效率上要高44%;數據庫
◎ 當顯示器達到26寸時,受訪者的工做效率開始降低。編程
因此,咱們基本能夠得出結論:額外配置一臺24寸左右的顯示器能夠提高工做效率。由於做爲程序員,咱們可能要同時和 IDE、Linux命令行及瀏覽器等打交道,有多臺顯示器能夠幫咱們減小切換時間。json
2.外設
鍵盤和鼠標等外設對於程序員來講,其重要性不言而喻。在
StackOverflow2018 開發者調查報告中顯示,有超過52%的開發者認爲
人體工程學鍵盤和鼠標可使本身在繁忙的工做中感到一點點溫馨
感。
關於鍵盤和鼠標,筆者認爲,一個好的機械鍵盤或電容鍵盤加一個比較靈敏的無線鼠標,不只能夠令一個程序員的工做效率獲得很大提高,還能夠在必定程度上起到愉悅心情的做用,尤爲是經過調試解決一個Bug後,最後敲擊鍵盤的那一刻。
能夠幫咱們提高工做效率的操做系統目前,主流的操做系統共有三種:Linux、Windows及Mac OS。關於操做系統的使用及選擇,StackOverflow 在 2018 年也作過相似調查(DeveloperSurveyResults2018,https://insights.stackoverflow.com/survey/2018),
結果顯示:
主要使用Windows操做系統的開發者佔了49.9%,主要使用Mac OS操做系統的開發者佔了 26.7%,主要使用 Linux操做系統的開發者佔了23.2%。從數字上來看,雖然使用Windows操做系統的開發者佔了一半左右,但另外一項關於程序員最想使用的系統平臺的調查結果顯示,有76.5%的開發者指望使用Linux操做系統,有63.9%的開發者喜歡而且指望使用Mac OS操做系統,有61.2%的開發者指望使用Windows操做系統。
對於以上三種操做系統,筆者在本身的開發生涯中均使用過,目前使用Mac OS做爲主要的操做系統進行開發。因爲開發者開發出來的應用基本都部署在Linux服務器上,並且 Linux 操做系統提供了不少Shell 命令,能夠快速地進行構建、編譯、執行、排查問題等,因此在平常的純代碼開發、交付及運維方面能夠大大提高效率。可是,程序員又沒法避免地要和各類軟件打交道,好比開發工具、瀏覽器、畫圖工具等,這時提供圖形界面的Windows操做系統就能夠很好地支持這些圖形化軟件了。Mac OS做爲一款基於UNIX的圖形化操做系統,就兼容了Linux和Windows操做系統的優勢,既能夠運行Shell命令,又能夠進行圖形化操做,固然,Mac OS操做系統也有一些缺點,好比支持的軟件不夠多、價格昂貴等。
筆者以爲,程序員選擇操做系統的優先級順序應該是Mac OS、Linux、Windows。
能夠幫咱們提高工做效率的軟件這裏再介紹一些能夠幫助開發者提高工做效率的軟件,主要包括開發工具、版本控制工具、自動化構建工具和畫圖工具等。
1.開發工具對於開發者,
尤爲是Java開發者來講,使用開發工具編寫代碼真的能夠大大提高工做效率,由於如今不少IDE都有很強大的工具,不只提供了代碼補全、錯誤提示、自動編譯等功能,還提供了各類插件,方便和其餘工具融合,能大大提高寫代碼的效率及代碼質量。
目前市面上主要有兩款Java代碼開發工具:Eclipse和IntelliJIDEA,這兩款開發工具之爭由來已久,不過最近幾年,IntelliJ IDEA逐漸撼動了Eclipse的霸主地位,成爲開發者的首選開發工具。在2013年的Google I/O大會上,Google推出了新的Android集成IDE「AndroidStudio」,其最大的轉變就是從Eclipse切換到了IntelliJ IDEA。
筆者也經歷過從Eclipes轉向IntelliJ IDEA的過程,相比之下,Intellij IDEA在某些方面確實比Eclipse更加出色一些,配合Mac OS操做系統上的快捷鍵,真的能夠在開發效率上提高一大截。
關於開發者使用的 IDE,Jet Brains 作過一項調查,結果顯示:有 59%的開發者使用IntelliJ,有30%的開發者使用Eclipse,只有不到5%的開發者使用Sublime和Vim等普通文本編輯器。
2.版本控制工具
程序員在協做開發時不可避免地要使用版本控制工具對代碼進行管理,版本控制工具主要用於存儲和追蹤被管理的文件的修改歷史,是軟件開發者的必備工具。
目 前 市 面 上 比 較 成 熟 的 版 本 控 制 工 具 有 CVS 、 VisualSourceSafe、PVCS、Subversion (SVN)和Git等,SVN和Git的使用較爲普遍。
不管是SVN仍是Git,都提供了很好的版本控制功能,例如對代碼的統一管理、衝突解決、代碼權限控制、分支開發和合並等。筆者認爲,開發者應該熟練掌握SVN和Git,好比代碼拉取、代碼提交、代碼合併和衝突解決等,尤爲要掌握一些 Shell 命令,這能夠節省大量的時間。雖然目前有不少開源代碼及不少公司的內部代碼都傾向於使用Git進行代碼託管,但咱們不能保證所遇到的全部代碼都使用了Git。公司規模越大,使用SVN進行代碼託管的可能性便越大,畢竟遷移也是須要必定成本的。
3.自動化構建工具
自動化構建指自動建立軟件組建的一組進程,包括將計算機源代碼編譯成二進制碼、將二進制碼包裝成軟件包並對其進行自動化測試。很早之前的自動化構建都是經過建立Make 來完成的,後來發展爲GNU Make。隨着時間的推移,現在的軟件開發主要使用更優秀的自動化構建工具來完成,例如Java世界中的三大構建工具Ant、Maven和Gradle,現在,Ant幾乎要退出歷史的舞臺了。
Maven和Gradle之因此可以贏得衆多程序員的青睞,主要是由於它們在依賴管理、衝突解決、項目構建、項目結構管理和插件機制等方面的出色表現。
4.畫圖工具
所謂一圖勝千言,不管是本身梳理思路,仍是給別人講解,圖案都是很好的形式。並且,程序員還常常要作一些PPT等,有了這些畫圖工具,就能大顯身手。
1)思惟導圖——XMind
人類大腦的最天然思考方式是放射性思考,也就是咱們常說的發散性思惟。咱們一般在思考一個問題的時候,都是以一個思惟點爲起點,而後不斷進行發散式展開的。若是咱們將這個思考過程經過圖形化的方式表達出來,就是一張思惟導圖。思惟導圖能夠有效地把思惟模式表現出來,有利於人腦的擴散思惟的展開。如圖1.12所示是一張關於「提高工做效率的軟件」的思惟導圖。
圖1.12
XMind 是一款很是實用的商業思惟導圖軟件,採用 Java 語言開發而成,具有跨平臺運行的性質,且基於EclipseRCP體系結構,支持插件經過編寫XML清單文件擴展系統定義好的擴展點,幫助用戶在真正意義上提升生產效率,被著名的互聯網媒體Lifehacker評選爲「最佳頭腦風暴和思惟導圖工具」及「最受歡迎的思惟導圖軟件」。
XMind 的程序主體由一組插件構成,包括一個核心主程序插件、一組 Eclipse 運行時插件、一個幫助文檔插件和一組多語種資源文件插件,對Eclipse用戶很是友好。
XMind不只能夠繪製思惟導圖,還能夠繪製魚骨圖、二維圖、樹形圖、邏輯圖和組織結構圖(Org、Tree、Logic Chart、Fishbone),而且能夠方便地在這些展現形式之間進行轉換。用戶能夠導入MindManager、FreeMind數據文件,靈活定製節點外觀、插入圖標、豐富的樣式和主題。其輸出格式有HTML和圖片。
2)UML畫圖工具
UML(Unified Model Language)即統一建模語言,又被稱爲標準建模語言,是用來對軟件密集系統進行可視化建模的一種語言。開發人員在作詳細設計時,免不了要和各類UML圖打交道,例如用例圖、類圖、對象圖、時序圖、活動圖和狀態圖等。
簡單來講,開發人員在寫代碼以前就須要瞭解需求,在這以後要對軟件系統進行建模,將抽象的語言描述轉換成可視化的模型。而在建模過程當中須要一種標準的語言,這種語言就是UML。
目前市面上有不少 UML畫圖工具可供選擇,它們均能知足基本的畫圖功能,下面簡單列舉幾種。
◎ Rational Rose:是Rational公司出品的一種面向對象的統一建模語言的可視化建模工具,主要用於可視化建模。
◎ Visual Paradigm for UML(VP-UML):是一種功能強大、跨平臺、使用便捷、直觀的 UML建模和 CASE工具,它能夠被整合在其餘CASE工具或者其餘 IDE工具中。Visual Paradigm for UML支持UML建模、數據庫建模、對象關係映射、逆向工程和Java雙向工程等,功能異常強大。
◎ StarUML(SU):是一款開源的UML開發工具,支持繪製用例圖、類圖、序列圖、狀態圖等9種經常使用的UML圖,具備發展快、靈活、可擴展性強等優勢,惟一的不足之處是在反向工程時只能生成類圖,不能生成類之間的關係。
5.Markdown編輯器
Markdown是一種輕量級標記語言,創始人爲約翰·格魯伯(JohnGruber),容許人們使用易讀易寫的純文本格式編寫文檔,而後將文本格式轉換成有效的 XHTML (或者HTML)文檔。
做爲程序員,咱們除了要具有編程的硬技能,還要具有寫做的軟件,而首選的寫做方式就是 Markdown。目前,不少大型博客網站都開始支持使用 Markdown 寫文章,這無疑是對程序員的一種示好行爲,著名的代碼託管網站 GitHub 也支持使用 Markdown 語法來編輯README文件等,如圖1.13所示。
圖1.13
關於Markdown的編輯器,目前市面上也有不少選擇,主要有Mou、MacDown、Typed和Bear等,還有不少在線的Markdown編輯器,在後面的在線工具章節中會詳細介紹。
還須要說起的一點是,其實使用哪一種Markdown編輯器並不很重要,重要的是程序員應該掌握經常使用的Markdown語法。這樣寫出來的文章或者文檔,能夠在任意支持MD語法的平臺上查看。
6.文本編輯器
前面介紹過Java開發經常使用的IDE,可是在某些狀況下咱們僅須要打開一個單獨的文本文件,好比打開一個 XML格式的文件、一個 JSON格式的文件等,這時一款好用的文本編輯器就派上用場了。
Sublime Text是一款流行的代碼編輯器軟件,可運行在Linux、Windows和Mac OS X等操做系統之上,是許多程序員喜歡使用的一款文本編輯器軟件。它具備代碼高亮、語法提示、自動完成且反映快速的編輯器軟件,不只界面華麗,還支持插件擴展機制,如圖1.14所示。
圖1.14
Atom是GitHub專門爲程序員推出的跨平臺的文本編輯器,由於有簡潔、直觀的圖形界面而受到了廣大程序員的青睞,並且它有不少有趣的特色:支持CSS、HTML、JavaScript等網頁編程語言;支持宏,自動完成分屏功能,集成了文件管理器;支持Mac OS、Windows和Linux操做系統,支持Node.js所寫的插件,並內置由GitHub提供的Git版本控制系統。多數的延伸包皆爲開放源代碼受權,並由社區建置與維護。
Notepad++也是一套被廣大程序員選用的純文本編輯器,基於一樣開放源碼的Scintilla文本編輯組件研發而成,整個項目起初被託管於SourceForge.net,曾經兩度得到SourceForge社區選擇獎——最佳開發工具。Notepad++在2010年6月被託管於TuxFamily,現被託管於GitHub。
7.其餘軟件
除了以上介紹的一些必備軟件,還有些經常使用工具也是程序員在平常工做中必不可少的,例如Host綁定、HTTP調試等。
1)Host綁定
在平常開發工做中,咱們對 Host 綁定確定不陌生,由於咱們幾乎天天都要和它打交道。咱們可能常常要在不一樣的Host綁定之間來回切換,尤爲是在Java Web開發中,在本地開發測試時可能使用的是一套 Host 綁定,在測試環境部署以後提交給測試人員進行測試時又要使用另外一套 Host 綁定。在測試以後,要經歷預發佈、灰度發佈等,都須要一套新的Host綁定。採用好用的Host綁定工具能夠大大節省Host綁定切換的時間。
SwitchHosts是一個很是方便、快捷的Host綁定切換工具,免費、開源,支持預發高亮、方案多選、單擊行號快速切換註釋、系統菜單欄快捷切換、方案導入導出等功能,如圖1.15所示。
圖1.15
2)HTTP調試
在平常的Web開發中,咱們除了會和Host綁定打交道,還常常會和RESTful API打交道,有時咱們須要一個工具來幫咱們發送HTTP請求,或者說是模擬HTTP請求,好比幫咱們發送POST請求等,這時就須要一款能夠模擬發送HTTP請求的工具。
Postman是Google開發的一款功能強大的網頁調試與發送網頁HTTP請求,並能運行測試用例的Chrome插件。除插件外,也提供軟件下載。它能夠模擬各類HTTP請求,從經常使用的GET、POST到RESTful的PUT、DELETE等,甚至能夠發送文件及額外的Header等。Postman 能夠將Response內容的格式自動美化,將 JSON、XML或者 HTML都整理成咱們能夠閱讀的格式。Postman 還支持編寫測試腳本,能夠快速檢查Request 結果,並返回測試結果。總之,Postman是一款很是不錯的能夠用來作HTTP調試的軟件。
在線工具前面介紹了不少經常使用軟件,接下來介紹一些在線工具,咱們無須安裝這些在線工具,能夠在瀏覽器上直接使用,很是便捷。
1.搜索類在線工具
本節講解幾種搜索類在線工具。Grepcode(http://grepcode.com/)是一個面向於 Java 開發人員的網站,在這裏你能夠經過Java的projects、classes等關鍵字在線查看對應的源碼。經過Grepcode,還能夠在線查看不少不一樣版本的源碼,並下載相關的 jar 包、源碼 jar 包和 Doc 文件。一樣,咱們可使用xxx-1.1.1.jar相似的名字直接找到對應的jar包並下載。
SearchCode(https://searchcode.com/)是一個源碼搜索引擎,目前支持從 GitHub、Bitbucket、Google Code、CodePlex、SourceForge和Fedora Project平臺搜索公開的源碼,如圖1.16所示。
圖1.16
對於 mvnrepository(http://mvnrepository.com)就不詳細解釋了,它用於查詢 Maven的gav(groupId、artifactId、version)等信息,如圖1.17所示。
圖1.17
2.生成類在線工具
下面講解各類生成類在線工具。1)用SQL自動生成Java代碼AutoJCode(http://www.autojcode.com/code/sql2class.jsp)能夠從SQL的建表語句中生成一個DO類。不少時候,咱們在有了數據庫的建表語句以後,會但願快速生成與之相對應的POJO,這時這種自動生成工具就派上用場了。
2)用JSON生成Java類
JSON是目前Java Web中數據傳輸的主要格式,咱們在不少時候都會有將JSON轉成Java對象的需求。有時合做方會提供一個JSON樣例,需 要 我 們 自 定 義 Java 類 , 這 時 這 個 工 具 就 派 上 用 場 了 。
BeJSON(http://www.bejson.com/json2javapojo)就是一款比較好用的工具。
3)Corn表達式的生成
Cron通常用於配置定時任務的執行,可是要想一次性地把一個Corn表達式配置好,確實很難,須要咱們記住其語法。有一些在線工具能夠提供圖形化的界面,只要輸入想要定時執行的週期等,就能夠自 動 生 成 Corn 表 達 式 。推 薦 使 用 pdtools 提 供 的 becorn(http://www.pdtools.net/tools/becorn.jsp)。
4)正則代碼的生成
正則表達式,又叫做規則表達式,是計算機科學中的一個概念,一般被用於檢索、替換那些符合某個模式(規則)的文本。在使用正則表達式進行字符串過濾時,須要用事先定義好的一些特定字符及這些特定字符的組合,組成一個規則字符串,這個規則字符串用於表達對字符串的一種過濾邏輯。這個規則字符串的定義一般是比較麻煩和複雜的,也須要通過大量的測試和驗證才能被採用。某些網站(如http://tool.chinaz.com/tools/regexgenerate)提供了正則表達式的生成工具,能夠一鍵生成身份證號、郵箱、手機號等經常使用的正則表達式。
3.轉換類在線工具
下面講解一些轉換類在線工具。
1)編碼轉換
編碼問題一直困擾着開發人員,尤爲在Java中更加明顯,由於Java是跨平臺的語言,在不一樣的平臺之間及編碼之間的切換較多。在計算機中提供了多種編碼方式,常見的有ASCII、ISO-8859-一、GB23十二、GBK、UTF-八、UTF-16等。有些時候,開發人員須要經過編碼轉換的方式來查看不一樣編碼下的文件內容。「站長工具」的編碼轉換(http://tool.chinaz.com/tools/unicode.aspx)功能比較全面,提供了Unicode編碼、UFT8編碼、URL編碼及解碼等功能。
2)時間戳轉換
時間戳(英語:Timestamp)是指在一連串的資料中加入辨識文字,如時間或日期,用於保障本地端(local)資料的更新順序與遠端(remote)一致。
在 Java 中有不少地方都會用到時間戳,也常常會使用這種轉換工具(http://tool.chinaz.com/Tools/unixtime.aspx)。
3)世界時間轉換
世界時間轉換,比較常見的是將北京時間轉換成紐約時間、將紐約時間轉換成洛杉磯時間等。Timebie(http://www.timebie.com/cn/easternbeijing.php)便提供了世界時間相互轉換的功能。
4)加密、解密加密、解密也是在 Java Web 中常常遇到的,有時咱們須要驗證加密算法是否正確,或者須要解密等,就須要一款在線工具(參見http ://tool.chinaz.com/tools/textencrypt.aspx ) 來 快 速 驗 證了。
5)單位換算
Convertworld(https://www.convertworld.com/zh-hans/)是一個比較全的單位換算的網站。筆者常常用它進行時間單位和貨幣單位的換算。
4.檢查類在線工具
下面講解一些檢查類在線工具。
1)JSON在線驗證及格式化
JSON 是一種由道格拉斯·克羅克福特構想和設計的輕量級的數據交換語言,該語言以容易讓人閱讀的文字爲基礎,傳輸由屬性值或者序列性的值組成的數據對象。目前有不少編程語言都支持JSON格式數據的生成和解析。
在不少Web應用中都會使用JSON進行數據傳輸,因此,咱們在開發過程當中會常常接觸JSON格式的文本,有時咱們不肯定這個文本是否徹底符合JSON格式,或者想更清晰地查看這個JSON文本的格式關係,這就須要一款工具進行JSON格式的驗證和格式化。
筆 者 用 過 很 多 JSON 在 線 格 式 化 工 具 , 經 過 實 踐 發 現 ,Json.cn(https://www.json.cn/)比較不錯,不只支持JSON格式的驗證及格式化,還能夠將JSON格式壓縮成普通文本等,如圖1.18所示。
圖1.18
2)Diff Check
使用過SVN或者Git的人對Diff Check確定不陌生,但有時候咱們修改的文本內容並無被版本控制工具管理起來,那麼可使用在線的網站查看文件的修改狀況,好比Diffchecker(https://www.diffchecker.com/),如圖1.19所示。
圖1.19
3)正則驗證
Java 開發人員對正則表達式確定不陌生。「站長工具」提供的正則驗證(http://tool.chinaz.com/regex)就比較不錯。
5.對照類在線工具
對照類在線工具以下。
◎ ASCII 對 照 表 :http ://tool.oschina.net/commons ?type=4。
◎ HTTP狀態碼:http://tool.oschina.net/commons?type=5。
◎ HTTP Content-type:http://tool.oschina.net/commons.
◎TCP/UDP常見端口參考:http://tool.oschina.net/commons?type=7。◎ HTML 轉 義 字 符 :http ://tool.oschina.net/commons ?type=2。
◎ RGB 顏 色 參 考 :http ://tool.oschina.net/commons ?type=3。
◎ 網 頁 字 體 參 考 :http ://tool.oschina.net/commons ?type=8。
6.其餘類型的在線工具
下面講解其餘類型的一些在線工具。
1)在線UML製圖
ProcessOn(https://www.processon.com/)是一個在線協做繪圖平臺,爲用戶提供了很是強大、易用的做圖工具,支持在線創做流程圖、BPMN、UML 圖、UI 界面原型設計、iOS界面原型設計等。
2)在線代碼運行
coderunner(https://tool.lu/coderunner/)能夠在線運行PHP、C、C++、Go、Python、Java、Groovy等代碼,在咱們手頭沒有IDE又想執行一個小程序時是個不錯的選擇。
IT技術分享社區
我的博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖經常使用的工具程序員效率:整理經常使用的在線筆記軟件遠程辦公:經常使用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識