我與Jetbrains的這些年

本章主要說一下如何去使用Jetbrains的各類工具,并且在上周參加了Jetbrains開發(fā)者日的大會,把參會的感受和體驗在這里分享給各位。話不多說,我們進入正題。
使用想必各位一定使用過Jetbrains的任意一款產(chǎn)品,就算沒用過也應(yīng)該聽說過吧。Jetbrains從開始至今總共分為三大模塊
Developer Ide (集成開發(fā)工具)
Language (Jetbrains的開發(fā)語言 Kotlin)
DevOps (任務(wù)管理,持續(xù)集成,持續(xù)部署的一些東西)
對于Developer Ide我推薦使用Jetbrains ToolBox,它是管理所有Jetbrains Ide的工具。

Jetbrains平均一個月做一次小更新,安裝了Jetbrains ToolBox就不必再去關(guān)心更新的事情了。并且Jetbrains ToolBox 還提供了項目列表的功能,如果這時候你需要打開一個項目,你無需去關(guān)心項目是哪種開發(fā)語言做的,只需要打開它并選擇你需要開啟的項目即可。

這里要注意,使用Alfred的同學(xué),Jetbrains ToolBox將Ide安裝的目錄不在是/Application而是~/Application,要記得加入到可搜索列表中,否則是找不到啟動文件的。
以PhpStrom為例,來講解一下Jetbrains Ide的一些有趣的配置。
快速編碼
這在Jetbrains開發(fā)者日上范老師講過的一個技巧,你需要打開
Preferences -> Editor -> {General->Postfix Completion || Live Templates}
General->Postfix Completion 與 Live Templates 都是為了去提供編碼速度的設(shè)置。首先我們先看下 Live Templates

當你在輸入fore時按空格(當然也可以選擇回車,Tab鍵,這是需要設(shè)置的)

就會出現(xiàn)完整的foreach語句,你可以把他當做填空題去完善這個結(jié)構(gòu)
fore
---->
foreach ($ITERABLE$ as $VAR_VALUE$) {
$END$
}當然還有一些其他的例如 eco -> echo , prof -> 創(chuàng)建一個protected的類方法。Ide默認已經(jīng)為我們準備了一些常用的簡寫方法,涵蓋了至少你知道的所有語言。當然如果沒有你想要的你也可以自行添加新的模板。

真不愧叫 Live Templates,第二個來介紹下General->Postfix Completion,這個對于第一個來說是另外一種編輯,第一種是通過鍵入初始化命令來生成模板,例如eco -> echo ,第二種則是以對象形式去便捷的去生成模板。下面舉個栗子

當你鍵入 $a.notnull 則生成 if ($a !== null) {}
$a.notnull
---->
if ($a !== null) {
}在編碼的時候不是每次都會想好整個流程結(jié)構(gòu)在開始編碼,所以Live Templates 就有一定的局限性了。這時候 General->Postfix Completion 就起到了很大作用。最后我們介紹 File and Code Templates , 在快捷生成編碼及后續(xù)生成代碼是在編碼開始時的一些騷操作,為了將編碼更快,我們還需要將常用的文件模板加入其中

例如你長期使用Laravel框架去開發(fā)應(yīng)用,在使用laravel寫一個功能的時候我們會經(jīng)歷下面幾個步驟
聲明一個路由 -> 創(chuàng)建一個Controller,Model,Action ... 文件 -> 調(diào)用Model操作數(shù)據(jù) -> 返回給用戶結(jié)果
如果你使用PhpStrom你大致這樣寫
打開路由文件 router+空格 完成一個路由結(jié)構(gòu)的自動生成 (當然你需要提前設(shè)置)
創(chuàng)建一個 Php Controller,Model,Action 文件,文件結(jié)構(gòu)已經(jīng)設(shè)置好
使用General->Postfix Completion設(shè)置好的寫法分分鐘解決所有操作
Database
PhpStrom內(nèi)置了Database,面板十分簡潔易用。他面板的右上角
有興趣你可以去試試
Api
細心的朋友一定知道PhpStrom內(nèi)置了接口測試工具,他在 Tools -> Http Client -> Test RestFul Web Service 下。

臨時的測試你不必打開萬能的Postman,你完全可以通過ide內(nèi)置的測試工具去完成api測試。當然還有另外一種更厲害的方式 -> 創(chuàng)建一個 test.http 文件
GET?www.baidu.com
像上述這樣,點擊運行你將獲得Response
GET http://www.baidu.com
HTTP/1.1 200 OK
Date: Fri, 23 Nov 2018 05:19:42 GMT
Server: Apache
Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
ETag: "51-47cf7e6ee8400"
Accept-Ranges: bytes
Content-Length: 81
Cache-Control: max-age=86400
Expires: Sat, 24 Nov 2018 05:19:42 GMT
Connection: Keep-Alive
Content-Type: text/html
"refresh" content="0;url=http://www.baidu.com/">
Response code: 200 (OK); Time: 71ms; Content length: 81 bytes當然對比Postman依舊不遜色,既然已經(jīng)將軟件改為編碼形式,那在Postman內(nèi)的功能,我們在.http文件中很方便的就可以實現(xiàn)??梢蕴砑诱埱髤?shù)
GET http://www.baidu.com
Content-Type: application/json
{
"name":"zhangsan"
}
每個請求以下一個請求方式前結(jié)束。具體請移步官網(wǎng)查看。
主題
工欲善其事,必先利其器。上面說的Jetbrains提供的功能只是冰山一角,想要具體的學(xué)習(xí)如何使用還請移步官方。帥氣的UI也是調(diào)整開發(fā)效率的一部分。看到自己的ide非常漂亮,編碼的心情自己好的不得了。我使用的是 Material Theme UI

關(guān)于字體的調(diào)整可以在 Editor -> Font 下進行

當然如果你不僅僅從事PHP相關(guān)的開發(fā),好不容易配置出來一個自己滿意的IDE,寫Go的時候用Goland還要配置,大可不必這樣。你可以通過 File -> Export Settings 來導(dǎo)出你的配置

隨后在通過 File -> Import Settings 來導(dǎo)入你的配置。這樣就OK了。如果你購買了 Jetbrains 全家桶或者任意的Ide,也可以通過File -> Sync Settings To Jetbrains Account 來同步到你的Jetbrains賬號,類似于云同步一樣。
便捷剩下的就是快捷鍵了,快捷鍵乃IDE編碼之本,什么?不需要?那你咋不用Word編碼去?快捷鍵我就不總結(jié)了,網(wǎng)絡(luò)上太多了。下面貼出laravel-china一位大神的總結(jié)。
https://laravel-china.org/top...
大會以上說了一部分大會的內(nèi)容了。Jetbrains的開發(fā)者日也并不是全部商業(yè)宣傳,至少它做的事情是值得讓開發(fā)者認可的。PPT無法分享給各位,我也不知道怎么拿到。抱歉!大會主要講了以下幾項內(nèi)容,上午是主會場,下午分倆個會場 Kotlin & Java 和 Web,作為一個PHP程序員,我沒得選。
上午
大會開始,說了很多關(guān)于他們的語言 Kotlin 的使用方法。
隨后說了Jetbrains內(nèi)部的工作方式及管理方法
開始ide -> Kotlin 顯示 Kotlin特性
下午
簡潔高效的PHP編程指南,推薦了一下測試、調(diào)試方法&類庫及PhpStrom的使用方法
在真實世界中進行 Go性能優(yōu)化 講的go pprof
用TDD學(xué)習(xí)高效開發(fā) 開始這大佬寫了一通的java測試用例,不咋能看懂。后面說了一些關(guān)于程序人生的事情
JetBrains的無痛DevOps解決方案 最后講了JetBrainsDevOps的一些套件,例如TeamCity (與TravisCi類似) ,Upsource 等等。具體可參考?https://www.jetbrains.com/dev...
總而言之,總體下來大多都是干貨,至少我感覺沒有任何商業(yè)宣傳的性質(zhì)。
致謝到這里本章就結(jié)束了,感謝看到這里,不過我還要提醒一句給各位開發(fā)者
編輯器不要漢化
編輯器不要漢化
編輯器不要漢化
相信你可以明白。謝謝!
