小編說: 疫情像施了魔法一樣,改變了我們每個(gè)人春節(jié)的軌跡。時(shí)間則從永遠(yuǎn)不夠用突然變成了多得似乎不知干什么用。博文菌希望疫情沒有改變我們那顆求知若渴的心。
博文菌在前兩天已經(jīng)為您開放了 博文視點(diǎn)學(xué)院平臺(tái)上80余本電子書+有聲書 ,供大家免費(fèi)學(xué)習(xí),我們也打探好了京東物流,無休為您服務(wù)!
___
Perl之父Larry Wall曾在 Programming Perl 一書中提到:程序員的三個(gè)美德是懶惰、不耐煩和傲慢。
懶惰,是程序員美德的第一要素。Larry Wall所說的“懶惰”,并不是安于現(xiàn)狀和不思進(jìn)取,而是付出最少的時(shí)間或者精力來達(dá)到同樣甚至更好的目標(biāo)?!皯卸琛钡某绦騿T會(huì)盡量使自己的代碼既實(shí)用又有很好的可讀性,這樣可以節(jié)省后面的很多維護(hù)成本;還會(huì)盡力完善代碼中的注釋及文檔,以免別人問自己太多問題,更擅長(zhǎng)使用各種工具,從方方面面提升自己的效率。
本文選自《程序員的三門課:技術(shù)精進(jìn)、架構(gòu)修煉、管理探秘》一書,本文會(huì)向你介紹一些非常實(shí)用的工具,這些工具可以大大提升你的工作效率,全方位把你武裝成一名“懶惰”的程序員。
對(duì)于開發(fā)者,尤其是Java開發(fā)者來說,使用開發(fā)工具編寫代碼真的可以大大提升工作效率,因?yàn)楝F(xiàn)在很多IDE都有很強(qiáng)大的工具,不僅提供了代碼補(bǔ)全、錯(cuò)誤提示、自動(dòng)編譯等功能,還提供了各種插件,方便和其他工具融合,能大大提升寫代碼的效率及代碼質(zhì)量。
目前市面上主要有兩款Java代碼開發(fā)工具:Eclipse和IntelliJIDEA,這兩款開發(fā)工具之爭(zhēng)由來已久,不過最近幾年,IntelliJIDEA逐漸撼動(dòng)了Eclipse的霸主地位,成為開發(fā)者的首選開發(fā)工具。在2013年的Google I/O大會(huì)上,Google推出了新的Android集成IDE“AndroidStudio”,其最大的轉(zhuǎn)變就是從Eclipse切換到了IntelliJ IDEA。
筆者也經(jīng)歷過從Eclipes轉(zhuǎn)向IntelliJ IDEA的過程,相比之下,Intellij IDEA在某些方面確實(shí)比Eclipse更加出色一些,配合Mac OS操作系統(tǒng)上的快捷鍵,真的可以在開發(fā)效率上提升一大截。
關(guān)于開發(fā)者使用的IDE,Jet Brains做過一項(xiàng)調(diào)查,結(jié)果顯示:有59%的開發(fā)者使用IntelliJ,有30%的開發(fā)者使用Eclipse,只有不到5%的開發(fā)者使用Sublime和Vim等普通文本編輯器。
程序員在協(xié)作開發(fā)時(shí)不可避免地要使用版本控制工具對(duì)代碼進(jìn)行管理,版本控制工具主要用于存儲(chǔ)和追蹤被管理的文件的修改歷史,是軟件開發(fā)者的必備工具。
目前市面上比較成熟的版本控制工具有CVS、Visual SourceSafe、PVCS、Subversion(SVN)和Git等,SVN和Git的使用較為廣泛。
無論是SVN還是Git,都提供了很好的版本控制功能,例如對(duì)代碼的統(tǒng)一管理、沖突解決、代碼權(quán)限控制、分支開發(fā)和合并等。開發(fā)者應(yīng)該熟練掌握SVN和Git,比如代碼拉取、代碼提交、代碼合并和沖突解決等,尤其要掌握一些Shell命令,這可以節(jié)省大量的時(shí)間。
雖然目前有很多開源代碼及很多公司的內(nèi)部代碼都傾向于使用Git進(jìn)行代碼托管,但我們不能保證所遇到的所有代碼都使用了Git。公司規(guī)模越大,使用SVN進(jìn)行代碼托管的可能性便越大,畢竟遷移也是需要一定成本的。
自動(dòng)化構(gòu)建指自動(dòng)創(chuàng)建軟件組建的一組進(jìn)程,包括將計(jì)算機(jī)源代碼編譯成二進(jìn)制碼、將二進(jìn)制碼包裝成軟件包并對(duì)其進(jìn)行自動(dòng)化測(cè)試。很早以前的自動(dòng)化構(gòu)建都是通過創(chuàng)建Make來完成的,后來發(fā)展為GNU Make。隨著時(shí)間的推移,如今的軟件開發(fā)主要使用更優(yōu)秀的自動(dòng)化構(gòu)建工具來完成,例如Java世界中的三大構(gòu)建工具Ant、Maven和Gradle,如今,Ant幾乎要退出歷史的舞臺(tái)了。
Maven和Gradle之所以能夠贏得眾多程序員的青睞,主要是因?yàn)樗鼈冊(cè)谝蕾嚬芾?、沖突解決、項(xiàng)目構(gòu)建、項(xiàng)目結(jié)構(gòu)管理和插件機(jī)制等方面的出色表現(xiàn)。
所謂一圖勝千言,無論是自己梳理思路,還是給別人講解,圖案都是很好的形式。而且,程序員還經(jīng)常要做一些PPT等,有了這些畫圖工具,就能大顯身手。
1. 思維導(dǎo)圖——XMind
人類大腦的最自然思考方式是放射性思考,也就是我們常說的發(fā)散性思維。我們通常在思考一個(gè)問題的時(shí)候,都是以一個(gè)思維點(diǎn)為起點(diǎn),然后不斷進(jìn)行發(fā)散式展開的。如果我們將這個(gè)思考過程通過圖形化的方式表達(dá)出來,就是一張思維導(dǎo)圖。思維導(dǎo)圖可以有效地把思維模式表現(xiàn)出來,有利于人腦的擴(kuò)散思維的展開。如圖所示是一張關(guān)于“提升工作效率的軟件”的思維導(dǎo)圖。
XMind是一款非常實(shí)用的商業(yè)思維導(dǎo)圖軟件,采用Java語言開發(fā)而成,具備跨平臺(tái)運(yùn)行的性質(zhì),且基于EclipseRCP體系結(jié)構(gòu),支持插件通過編寫XML清單文件擴(kuò)展系統(tǒng)定義好的擴(kuò)展點(diǎn),幫助用戶在真正意義上提高生產(chǎn)效率,被著名的互聯(lián)網(wǎng)媒體Lifehacker評(píng)選為“最佳頭腦風(fēng)暴和思維導(dǎo)圖工具”及“最受歡迎的思維導(dǎo)圖軟件”。
XMind的程序主體由一組插件構(gòu)成,包括一個(gè)核心主程序插件、一組Eclipse運(yùn)行時(shí)插件、一個(gè)幫助文檔插件和一組多語種資源文件插件,對(duì)Eclipse用戶非常友好。
XMind不僅可以繪制思維導(dǎo)圖,還可以繪制魚骨圖、二維圖、樹形圖、邏輯圖和組織結(jié)構(gòu)圖(Org、Tree、LogicChart、Fishbone),并且可以方便地在這些展示形式之間進(jìn)行轉(zhuǎn)換。用戶可以導(dǎo)入MindManager、FreeMind數(shù)據(jù)文件,靈活定制節(jié)點(diǎn)外觀、插入圖標(biāo)、豐富的樣式和主題。其輸出格式有HTML和圖片。
2.UML畫圖工具
UML(Unified Model Language)即統(tǒng)一建模語言,又被稱為標(biāo)準(zhǔn)建模語言,是用來對(duì)軟件密集系統(tǒng)進(jìn)行可視化建模的一種語言。開發(fā)人員在做詳細(xì)設(shè)計(jì)時(shí),免不了要和各種UML圖打交道,例如用例圖、類圖、對(duì)象圖、時(shí)序圖、活動(dòng)圖和狀態(tài)圖等。
簡(jiǎn)單來說,開發(fā)人員在寫代碼之前就需要了解需求,在這之后要對(duì)軟件系統(tǒng)進(jìn)行建模,將抽象的語言描述轉(zhuǎn)換成可視化的模型。而在建模過程中需要一種標(biāo)準(zhǔn)的語言,這種語言就是UML。
目前市面上有很多UML畫圖工具可供選擇,它們均能滿足基本的畫圖功能,下面簡(jiǎn)單列舉幾種。
- Rational Rose:是Rational公司出品的一種面向?qū)ο蟮慕y(tǒng)一建模語言的可視化建模工具,主要用于可視化建模。
- Visual Paradigm for UML(VP-UML):是一種功能強(qiáng)大、跨平臺(tái)、使用便捷、直觀的UML建模和CASE工具,它可以被整合在其他CASE工具或者其他IDE工具中。Visual Paradigm for UML支持UML建模、數(shù)據(jù)庫建模、對(duì)象關(guān)系映射、逆向工程和Java雙向工程等,功能異常強(qiáng)大。
- StarUML(SU):是一款開源的UML開發(fā)工具,支持繪制用例圖、類圖、序列圖、狀態(tài)圖等9種常用的UML圖,具有發(fā)展快、靈活、可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),唯一的不足之處是在反向工程時(shí)只能生成類圖,不能生成類之間的關(guān)系。
Markdown是一種輕量級(jí)標(biāo)記語言,創(chuàng)始人為約翰·格魯伯(John Gruber),允許人們使用易讀易寫的純文本格式編寫文檔,然后將文本格式轉(zhuǎn)換成有效的XHTML(或者HTML)文檔。
作為程序員,我們除了要具備編程的硬技能,還要具備寫作的軟件,而首選的寫作方式就是Markdown。目前,很多大型博客網(wǎng)站都開始支持使用Markdown寫文章,這無疑是對(duì)程序員的一種示好行為,著名的代碼托管網(wǎng)站GitHub也支持使用Markdown語法來編輯README文件等,如圖所示。
關(guān)于Markdown的編輯器,目前市面上也有很多選擇,主要有Mou、MacDown、Typed和Bear等,還有很多在線的Markdown編輯器,在后面的在線工具章節(jié)中會(huì)詳細(xì)介紹。
還需要提及的一點(diǎn)是,其實(shí)使用哪種Markdown編輯器并不很重要,重要的是程序員應(yīng)該掌握常用的Markdown語法。這樣寫出來的文章或者文檔,可以在任意支持MD語法的平臺(tái)上查看。
前面介紹過Java開發(fā)常用的IDE,但是在某些情況下我們僅需要打開一個(gè)單獨(dú)的文本文件,比如打開一個(gè)XML格式的文件、一個(gè)JSON格式的文件等,這時(shí)一款好用的文本編輯器就派上用場(chǎng)了。
SublimeText是一款流行的代碼編輯器軟件,可運(yùn)行在Linux、Windows和Mac OS X等操作系統(tǒng)之上,是許多程序員喜歡使用的一款文本編輯器軟件。它具有代碼高亮、語法提示、自動(dòng)完成且反映快速的編輯器軟件,不僅界面華麗,還支持插件擴(kuò)展機(jī)制,如圖所示。
Atom是GitHub專門為程序員推出的跨平臺(tái)的文本編輯器,因?yàn)橛泻?jiǎn)潔、直觀的圖形界面而受到了廣大程序員的青睞,而且它有很多有趣的特點(diǎn):支持CSS、HTML、JavaScript等網(wǎng)頁編程語言;支持宏,自動(dòng)完成分屏功能,集成了文件管理器;支持Mac OS、Windows和Linux操作系統(tǒng),支持Node.js所寫的插件,并內(nèi)置由GitHub提供的Git版本控制系統(tǒng)。多數(shù)的延伸包皆為開放源代碼授權(quán),并由社區(qū)建置與維護(hù)。
Notepad++也是一套被廣大程序員選用的純文本編輯器,基于同樣開放源碼的Scintilla文本編輯組件研發(fā)而成,整個(gè)項(xiàng)目起初被托管于SourceForge.net,曾經(jīng)兩度獲得SourceForge社區(qū)選擇獎(jiǎng)——最佳開發(fā)工具。Notepad++在2010年6月被托管于TuxFamily,現(xiàn)被托管于GitHub。
除了以上介紹的一些必備軟件,還有些常用工具也是程序員在日常工作中必不可少的,例如Host綁定、HTTP調(diào)試等。
1. Host綁定
在日常開發(fā)工作中,我們對(duì)Host綁定肯定不陌生,因?yàn)槲覀儙缀趺刻於家退蚪坏?。我們可能?jīng)常要在不同的Host綁定之間來回切換,尤其是在Java Web開發(fā)中,在本地開發(fā)測(cè)試時(shí)可能使用的是一套Host綁定,在測(cè)試環(huán)境部署之后提交給測(cè)試人員進(jìn)行測(cè)試時(shí)又要使用另一套Host綁定。在測(cè)試之后,要經(jīng)歷預(yù)發(fā)布、灰度發(fā)布等,都需要一套新的Host綁定。采用好用的Host綁定工具可以大大節(jié)省Host綁定切換的時(shí)間。
SwitchHosts是一個(gè)非常方便、快捷的Host綁定切換工具,免費(fèi)、開源,支持預(yù)發(fā)高亮、方案多選、單擊行號(hào)快速切換注釋、系統(tǒng)菜單欄快捷切換、方案導(dǎo)入導(dǎo)出等功能。
2.HTTP調(diào)試
在日常的Web開發(fā)中,我們除了會(huì)和Host綁定打交道,還經(jīng)常會(huì)和RESTful API打交道,有時(shí)我們需要一個(gè)工具來幫我們發(fā)送HTTP請(qǐng)求,或者說是模擬HTTP請(qǐng)求,比如幫我們發(fā)送POST請(qǐng)求等,這時(shí)就需要一款可以模擬發(fā)送HTTP請(qǐng)求的工具。
Postman是Google開發(fā)的一款功能強(qiáng)大的網(wǎng)頁調(diào)試與發(fā)送網(wǎng)頁HTTP請(qǐng)求,并能運(yùn)行測(cè)試用例的Chrome插件。除插件外,也提供軟件下載。它可以模擬各種HTTP請(qǐng)求,從常用的GET、POST到RESTful的PUT、DELETE等,甚至可以發(fā)送文件及額外的Header等。Postman可以將Response內(nèi)容的格式自動(dòng)美化,將JSON、XML或者HTML都整理成我們可以閱讀的格式。Postman還支持編寫測(cè)試腳本,可以快速檢查Request結(jié)果,并返回測(cè)試結(jié)果。總之,Postman是一款非常不錯(cuò)的可以用來做HTTP調(diào)試的軟件。
▌《程序員的三門課:技術(shù)精進(jìn)、架構(gòu)修煉、管理探秘》
于君澤 李偉山 張洪亮 彭首長(zhǎng) 劉朋 著
我們都有一個(gè)共同的夢(mèng)想——成為更棒的程序員,但是如何做?如何學(xué)習(xí)和精進(jìn)自己的技術(shù)?如何做業(yè)務(wù)分析和架構(gòu)設(shè)計(jì)?如何做技術(shù)管理?本書就廣大程序員都很關(guān)注的問題提供一些思路和方法。
? 本書內(nèi)容分為三大篇
第1篇介紹程序員的技能成長(zhǎng)路徑,介紹如何通過學(xué)習(xí)來加速成長(zhǎng),并講解非常重要的業(yè)務(wù)分析和設(shè)計(jì)知識(shí);
第2篇詳細(xì)介紹了架構(gòu)修煉中的必備架構(gòu)思維模式、架構(gòu)設(shè)計(jì)過程,還通過真實(shí)案例剖析了架構(gòu)設(shè)計(jì)的核心要素及關(guān)注點(diǎn),以及如何通過架構(gòu)設(shè)計(jì)來把控質(zhì)量和風(fēng)險(xiǎn);
第3篇總結(jié)了做技術(shù)管理的訣竅,揭秘如何從準(zhǔn)備做技術(shù)管理到實(shí)現(xiàn)自我管理再到實(shí)現(xiàn)團(tuán)隊(duì)管理。
? 作者簡(jiǎn)介
于君澤
某互聯(lián)網(wǎng)公司技術(shù)專家,在分布式系統(tǒng)架構(gòu)設(shè)計(jì)、高并發(fā)系統(tǒng)設(shè)計(jì)、領(lǐng)域建模、研發(fā)管理、內(nèi)建質(zhì)量等方面有較多心得,樂于交流和分享,曾創(chuàng)立技術(shù)社群“中生代技術(shù)”。維護(hù)技術(shù)公眾號(hào)“技術(shù)瑣話”。
李偉山
現(xiàn)任某人工智能公司技術(shù)總監(jiān),江湖人稱“山哥”,在分布式系統(tǒng)架構(gòu)設(shè)計(jì)、高并發(fā)系統(tǒng)設(shè)計(jì)、系統(tǒng)穩(wěn)定性保障等方面積累了豐富的實(shí)踐經(jīng)驗(yàn),擅于利用數(shù)據(jù)分析解決實(shí)際問題,對(duì)新技術(shù)有濃厚的興趣,樂于分享。個(gè)人技術(shù)公眾號(hào):技術(shù)方舟。
張洪亮
網(wǎng)名Hollis,知名技術(shù)博主,個(gè)人技術(shù)博客(http://www.hollischuang.com) 閱讀量達(dá)數(shù)百萬。90后程序員,2015年畢業(yè)于哈爾濱理工大學(xué),現(xiàn)任某互聯(lián)網(wǎng)公司技術(shù)專家,專注于Java研發(fā)、技術(shù)架構(gòu)及程序員的成長(zhǎng)等方面。個(gè)人技術(shù)公眾號(hào):Hollis。
彭首長(zhǎng)
熊貓優(yōu)福聯(lián)合創(chuàng)始人,聚美優(yōu)品前技術(shù)總監(jiān)。在團(tuán)隊(duì)管理、領(lǐng)域設(shè)計(jì)、分布式架構(gòu)、高并發(fā)設(shè)計(jì)、IoT架構(gòu)等方面有豐富的實(shí)踐經(jīng)驗(yàn),擅長(zhǎng)行業(yè)分析,對(duì)新技術(shù)高度敏感,熱衷于技術(shù)實(shí)踐且樂于分享。
劉朋
高績(jī)效團(tuán)隊(duì)教練,教練型領(lǐng)導(dǎo),中生代技術(shù)社區(qū)聯(lián)合創(chuàng)始人,北京大學(xué)理學(xué)學(xué)士、工學(xué)碩士?,F(xiàn)就職于中國(guó)移動(dòng)(成都)5G產(chǎn)業(yè)研究院,曾任諾基亞通信(成都)有限公司研發(fā)經(jīng)理。在敏捷實(shí)踐、高績(jī)效團(tuán)隊(duì)教練技術(shù)、技術(shù)團(tuán)隊(duì)管理等方面積累了豐富的經(jīng)驗(yàn),并總結(jié)出一套特別適合程序員突破自身瓶頸、快速成長(zhǎng)的領(lǐng)導(dǎo)力模式。
(正文已結(jié)束)
推薦閱讀:蘋果xr和x哪個(gè)好
免責(zé)聲明及提醒:此文內(nèi)容為本網(wǎng)所轉(zhuǎn)載企業(yè)宣傳資訊,該相關(guān)信息僅為宣傳及傳遞更多信息之目的,不代表本網(wǎng)站觀點(diǎn),文章真實(shí)性請(qǐng)瀏覽者慎重核實(shí)!任何投資加盟均有風(fēng)險(xiǎn),提醒廣大民眾投資需謹(jǐn)慎!