🔥《吐血整理》-頂級程式設計師工具集
你知道的越多,你不知道的越多
點贊再看,養成習慣
GitHub上已經開源 https://github.com/JavaFamily 有一線大廠面試點腦圖、個人聯絡方式和人才交流群,歡迎Star和指教
前言
這期是被人才群交流裡,還有很多之前網友評論強行頂出來的一期,就是讓我介紹自己常用的一些工具給他們安利一下,我一聽很高興呀,帥丙我這麼樂於奉獻的人是吧。
主要是能水一篇文章就很開心,不過寫下來發現花的時間完全不必寫技術少,點贊!!!
千萬不要白嫖,真香警告⚠️。
但是我在構思這篇文章的時候發現我貼個標題,然後發下軟體資訊會不會太乏味了,於是創作鬼才我呀,準備用一個產品的研發流程,是的就是用這樣的一個思路去寫這個工具集的介紹文章。
因為讀者很多還是學生,還有很多應屆生,對一個需求的研發流程都不是很熟悉,還有可能對於以後自己需要使用到的工具都不是很熟悉,那我就一一羅列一下,帥丙我作為一個還算有點小經驗的程式設計師都使用哪些工具呢?
那下面就跟隨暖男的腳步,走進頂級程式設計師的百寶箱吧(我所有的標題都是噱頭就為了誇大其詞,我是低階程式設計師,大家看了也不能吊打面試官,笑笑就好了)。
注意:下面的軟體我都是簡單的介紹下是幹啥的,因為太多了,真正的功能需要大家深挖的,能力允許的朋友下載正版,破解方法去Github https://github.com/JavaFamily 加我回復【軟體】就好了。
正文
既然都說了帥丙是要用一個產品的研發流程角度去介紹軟體,那我們先看看一個產品有哪些研發流程,帥丙就用自己接觸的阿里系的研發流程舉例了,這也基本上是網際網路大廠的研發流程了,可能細節有出入,但是絕對大同小異。
Tip:我從開發的視角去介紹的話我就會跳過一些軟體,比如提出需求這個其實一般都是文件類的,wiki呀這樣的形式。
我就不介紹那種流程工具了,公司很多自研的,大家工作了再去熟悉也很快的。
概要設計:
概要設計,這個是大廠程式設計師需求下來之後基本上都會做的一步,不過看需求大小,可能很多小需求直接就詳細設計了。
很多不瞭解的同學可能會問,需要設計什麼呢?為什麼要設計呢?
問得好,經常看我文章的都知道,技術是把雙刃劍,你用了技術之後你是不是需要列出他的優點缺點,出問題之後的解決方案,還有可能出現的問題,注意點等等。
這麼是為了讓你能有把控力,比如你用了個Es(Elasticsearch)你什麼都不管你就是要接入它,你把他開發好了上線了,但是有啥坑你知道麼?上線崩了怎麼辦?
帥丙我做Es設計的時候設計被老大打回N次,不過成長真心大,對Es的瞭解也飛速進步。
其實遠遠不止這些問題,這就是我們做設計的主要原因,也是大家工作裡面能成長的途徑之一,你以為大佬們的經驗是怎麼來的?
工具:Xmind/ProcessOn
- Xmind官網地址: https://www.xmind.cn
- ProcessOn線上作圖地址:https://www.processon.com
我這裡列舉了兩個工具,他們兩個都可以做概要設計的腦圖,我給大家看看我設計過的一些腦圖,都是出自這兩個軟體。
大家在學習,看書等等的時候做個腦圖,我告訴你後面你複習還是幹啥都思路賊清晰,而且效率瞬間高很多。
詳細設計
小夥伴又要問了啥是詳細設計呀帥丙?
誒呀簡單,見名知意嘛,概要設計是大概的設計,詳細設計是詳細的設計。
我們研發的時候整個流程往往很複雜,如果你理解不對直接就寫程式碼,最後容易造成返工,延期,加班,被罵,心情差,回家吵架,離家出走。。。
看到不做詳細設計的後果了吧,其實大家花點時間做詳細設計很有必要,你思路完全清晰了,寫程式碼那就是分分鐘的事情,不是嘛?
那再看看帥丙的一個小設計吧,之前文章中大量的流程圖,時序圖都來自它,主要是這玩意還是線上的,都不用下載很方便啊。
詳細設計的工具我用的就是線上作圖神器:ProcessOn
- 線上畫圖地址:https://www.processon.com
總之一句話很香,流程圖、思維導圖、原型圖、UML、網路拓撲圖、組織結構圖、BPMN等等一應俱全
Ascilflow
- 官網地址: http://asciiflow.com
進入網站後直接開畫!網頁上端是選單,自行操作!
研發
這個關鍵了:工欲善其事,必先利其器
想必大家都知道這個諺語吧,我就說一下我寫程式碼要用到的軟體吧。
Intellij IDEA
- 官網地址 : http://www.jetbrains.com/idea
這個我想都不用我介紹了吧,Java的同學都耳熟能詳了,有同學問為啥不用eclipse呀,我不作回答,但是我只能告訴你IDEA肯定是效率還有很多方面都要香的。
不過看個人習慣的哈,新同學還是推薦IDEA!!!
WebStorm
- 官網地址 : http://www.jetbrains.com/webstorm
有知道同學要問了,帥丙這不是前端的開發工具麼,為啥你要用,帥丙我呀全才來的呀,前端偶爾也寫點的嘛,主要是js,vue,jq,還有丟丟React,不過最近幫三歪改前端居然是jsx有沒有大佬救救我啊。
Visual Studio Code
- 官網地址:https://code.visualstudio.com
Visual Studio Code是一個輕量且強大的跨平臺開原始碼編輯器(IDE),支援Windows,OS X和Linux。內建JavaScript、TypeScript和Node.js支援,而且擁有豐富的外掛生態系統,可通過安裝外掛來支援C++、C#、Python、PHP等其他語言。
PyCharm
- 官網地址 :http://www.jetbrains.com/pycharm
這個是python之前那次還記得我寫程式碼大賽那期嘛,最開始就是用這個寫的,平時學的時候也用用。
Navicat Premium
- 官網地址 :https://www.navicat.com.cn
這個呀是資料庫的視覺化工具很香很好用,不過我們線上的表都是網頁操作的,這個只能用來看看本地的開發表了,不過也是很有必要的,你SQL怎麼都得本地跑一下沒問題,才向DBA申請的嘛。
Postman
- 官網地址 :https://www.getpostman.com
這個是介面除錯的神器,單測比較繁瑣的你可以試試這個嘛,不過很多介面還是隻能寫寫單測,反正很香。
不過這個名字一看就是男生用的,那我們女生用啥呢?往下看
Postwoman
- 官網地址 :https://postwoman.io
PostMan一聽就是男生用的,咋妹子們肯定要用最近開源的Postwoman啊,它是一款開源的 Postman 替代品
開源沒多久優點如下:
- 輕盈,可直接線上訪問;
- 簡約,採用簡約的 UI 設計精心打造;
- 支援 GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH 方法;
- 支援驗證;
- 實時,傳送請求即可獲取響應。
GIt
- 官網地址 :https://git-scm.com
程式碼文件管理工具,版本控制工具,大家之後的程式碼基本上都是使用git做版本管理
Maven
- 官網地址 :http://maven.apache.org
目前帥丙用到Maven的主要功能是:專案構建、專案構建、專案依賴管理、軟體專案持續整合、版本管理、專案的站點描述資訊管理
Gradle
- 官網地址 :https://gradle.org
Gradle是一個基於Apache Ant和Apache Maven概念的專案自動化構建開源工具。
它使用一種基於Groovy的特定領域語言(DSL)來宣告專案設定,目前也增加了基於Kotlin語言的kotlin-based DSL,拋棄了基於XML的各種繁瑣配置。
這個跟Maven功能是一樣的,但是兩者語法不一樣,而且我覺得版本控制的時候沒Maven好使,有小坑,勝在語法簡潔。
Charles
- 官網地址 :https://www.charlesproxy.com
這玩意是個HTTP代理伺服器,我用它的主要用法就是抓包!
都知道我是做電商的嘛,很多線上介面線上問題怎麼排查呢,抓包看看資料唄。
JMeter
- 官網地址 :https://jmeter.apache.org
Apache JMeter是Apache組織開發的基於Java的壓力測試工具
是的就是用來壓測的,你怎麼模擬很多請求呀,就用它就對了。
Dash
- 官網地址 :https://kapeli.com/dash
Dash for mac是使用與Mac OS平臺的軟體程式設計文件管理工具,可以瀏覽API文件,以及管理程式碼片段工具。Dash自帶了豐富的API文件,涉及各種主流的程式語言和框架。
DataGrip
- 官網地址 :http://www.jetbrains.com/datagrip
DataGrip是JetBrains公司推出的管理資料庫的產品,對於JetBrains公司,開發者肯定都不陌生,IDEA和ReSharper都是這個公司的產品,使用者體驗非常不錯。
最開始我用它就單純看同事在用很酷的介面,後面發現功能也香,高亮文字啥的,很多功能大家可以去挖。
JVisualVM
- 官網地址 :http://visualvm.github.io
VisualVM 是Netbeans的profile子專案,已在JDK6.0 update 7 中自帶,能夠監控執行緒,記憶體情況,檢視方法的CPU時間和記憶體中的對 象,已被GC的物件,反向檢視分配的堆疊(如100個String物件分別由哪幾個物件分配出來的)。
VisualVM可以根據需要安裝不同的外掛,每個外掛的關注點都不同,有的主要監控GC,有的主要監控記憶體,有的監控執行緒等。
Iterm2
- 官網地址 :https://www.iterm2.com/
這個是我做日誌排查的客戶端工具,也是支援很多配置,直接ssh上跳板機檢視線上機器的狀態等等,線上問題排查還是很有必要的。
網*有道詞典
- 官網地址 :http://www.youdao.com
有朋友要疑問了帥丙這是什麼情況,鬼畜亂入麼?
不是的,我們研發的時候很多單詞不認識,或者命名的時候這個詞彙的英文不知道還是很有必要查一下的,規範的命名是你成為頂級大牛的第一步,你命名都是A,B,C你程式碼review的時候,你的Leader會叫hr讓你提交前回家過年的,馬上過年了大家不要輕易嘗試。
Sublime Text
- 官網地址 :http://www.sublimetext.com
這是個文字記錄的工具,也可以用於寫程式碼,但是我們有IDE了那就用來當日常瑣事記錄的工具,臨時文件處理的工具也是可以的,反正還是很好用的。
剛好最近呀人才群裡的人才們都叫我安利一下我做筆記還有寫部落格的工具,說我排版好看。(我飄了)
安排!
印象筆記
- 官網地址 :https://www.yinxiang.com
這個可以說是陪伴我大學到現在的一個工具了吧,我數了下,上千檔案了,我的生活瑣事的記錄,還有學程式設計之後的很多東西,我都是收錄在裡面的。
這個東西我就不和別的筆記比較了,因為我最開始就用的這個一直沒換過,好不好用我說了不算的,大家下一個看看就知道了。
Typora
- 官網地址 :https://www.typora.io
Typora是我一直寫Markdown的工具,好用到不行,還可以切換模式你敢信?打字機模式,專注模式,原始碼模式總有一個你的菜.
Ipic
- 官網地址 :https://ipic.ca
圖床我是配合Typora一起使用的大家Markdown是不是複製圖片進來都是本地的地址,發到網上就會失效的,但是跟Typora搞基的這個工具他可以在你複製進來的時候直接傳到網上了,你再去任何平臺發表都可以隨心所欲了。
Md2All
- 官網地址 :http://md.aclickall.com
大家好奇我的markdown怎麼這麼好看呀,其實我寫了markdown之後還轉成了html的,用的也就是上面這個工具。
我寫完也是在這裡面進行排版然後發出去的,排版要花好久,忍不住給帥丙點贊。
影象處理
Adobe Photoshop CC 2019
- 官網地址 :https://www.adobe.com/cn/products/photoshop
Ps嘛大家都知道的,正常的圖片處理啊用這個香,沒事幫美女P下圖,搞不好能找個女朋友(我又開始YY了)
Adobe Premiere Pro CC 2019
- 官網地址 :https://www.adobe.com/products/premiere
這個可能是大家使用得最多的視訊處理軟體了吧,很好用!!!
功能全到無法令人呼吸,缺點就是學習成本有點大,入門很快,想成為大神需要大量時間積累。
Adobe After Effects CC 2019
- 官網地址 :https://www.adobe.com/cn/products/aftereffects
不知道大家視訊看得多麼,很多視訊的特效開場都是這個做的,下面也有一個我的demo。
GIPHY CAPTURE
- 官網地址 :https://giphy.com/apps/giphycapture
有時候大家文章不想用靜態的圖畫去表達,想錄制寫程式碼的Gif動圖,那這個軟體是真的好使。
視訊播放 KMPlayer
- 官網地址 :http://www.kmplayer.com
其實帥丙我心中有個播放神器的,快播。
可惜了還沒用多久,播播就夭折了,我會使用下面這個播放軟體去播放我自己的視訊。
因為很多格式電腦自帶的可能不支援,我又喜歡剪輯視訊,所以一直用它了。
DouTu
- 官網地址 : https://www.52doutu.cn/maker/1/?order=timedown
大家是不是發現我之前的文章很多表情包,其實都是線上製作的。
Carbon
- 官網地址 :https://carbon.now.sh/
帥丙之前的文章裡面很多程式碼的圖片都是這個網站生成的,很多樣式可以選擇,就很好看。
CodeLF
- 官網地址 :https://unbug.github.io/codelf
這個網站有意思了,寫程式碼不知道單詞怎麼命名就去這裡查,他是GItHub的一個爬蟲工具吧,看看大神的命名總是會有思路的吧。
注意:上面的軟體我都是簡單的介紹下是幹啥的,因為太多了,真正的功能需要大家深挖的,能力允許的朋友下載正版,破解方法去Github https://github.com/JavaFamily 加我回復【軟體】就好了。
總結
其實比較香的工具還有太多了,我這裡就不一一介紹了,其實有個很簡單的辦法,就是問,學習,借鑑。
我就是這樣的,我看Leader用的什麼工具我就問他這是啥,好用不?怎麼用?
包括我寫部落格吧,其實才寫了20多天,第一天準備寫的時候我就直接問三歪(Java3y),你用的什麼開發工具呀,怎麼用的呀,包括他主要釋出的哪些平臺呀,釋出的時間段呀,我都直接問。
他坐我對面,迫於我的淫威不得不和盤托出,主要是最近有個需求需要我幫他寫程式碼哈哈。
別人都這麼多的經驗下來了,軟體能差嘛?而且使用過程中不會的還可以問一下對方,不香嘛。
絮叨
先看人才交流群的某個人才提的問題:
Tip: GItHub https://github.com/JavaFamily 上有進群方式和個人聯絡方式,說實話在這個群,哪怕您不說話,光看聊天記錄,都能學到東西(美團王炸,三歪(Java3y),並夕夕等的大佬都在)。
不知道大家是否還記得我之前寫的冪等這樣的情況?
就是下圖這樣的情況,我下單增減GMV先去看看這個流水有麼,有就證明加過了,就直接返回,沒有才繼續下面的流程。
他其實提的問題很好,因為我們日常開發都是主從同步,讀寫分離的,就是說我們可能加GMV加了但是我們操作的是主庫,他需要將資料同步到從庫,但是這個過程中他發生了延遲。
那這個時候如果別的系統這個訂單號訊息重試了,你是不是又進來了,你去查詢流水你發現沒流水你以為沒加,你執行加錢的操作,結果那條延遲的也好了,是不是就加了兩次。
正常開發中確實會有,但