我與Jetbrains的這些年

clipboard.png

前言

本章主要說一下如何去使用Jetbrains的各類工具,並且在上週參加了Jetbrains開發者日的大會,把參會的感受和體驗在這裏分享給各位。話不多說,我們進入正題。

使用

想必各位一定使用過Jetbrains的任意一款產品,就算沒用過也應該聽說過吧。Jetbrains從開始至今總共分爲三大模塊

  1. Developer Ide (集成開發工具)
  2. Language (Jetbrains的開發語言 Kotlin)
  3. DevOps (任務管理,持續集成,持續部署的一些東西)

對於Developer Ide我推薦使用Jetbrains ToolBox,它是管理所有Jetbrains Ide的工具。

clipboard.png

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

clipboard.png

這裏要注意,使用Alfred的同學,Jetbrains ToolBox將Ide安裝的目錄不在是/Application而是~/Application,要記得加入到可搜索列表中,否則是找不到啓動文件的。

以PhpStrom爲例,來講解一下Jetbrains Ide的一些有趣的配置。

快速編碼

這在Jetbrains開發者日上範老師講過的一個技巧,你需要打開

Preferences -> Editor -> {General->Postfix Completion || Live Templates}

General->Postfix Completion 與 Live Templates 都是爲了去提供編碼速度的設置。首先我們先看下 Live Templates

clipboard.png

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

clipboard.png

就會出現完整的foreach語句,你可以把他當做填空題去完善這個結構

fore 
----> 
foreach ($ITERABLE$ as $VAR_VALUE$) {
    $END$
}

當然還有一些其他的例如 eco -> echo , prof -> 創建一個protected的類方法。Ide默認已經爲我們準備了一些常用的簡寫方法,涵蓋了至少你知道的所有語言。當然如果沒有你想要的你也可以自行添加新的模板。

clipboard.png

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

clipboard.png

當你鍵入 $a.notnull 則生成 if ($a !== null) {}

$a.notnull
---->
if ($a !== null) {

}

在編碼的時候不是每次都會想好整個流程結構在開始編碼,所以Live Templates 就有一定的侷限性了。這時候 General->Postfix Completion 就起到了很大作用。最後我們介紹 File and Code Templates , 在快捷生成編碼及後續生成代碼是在編碼開始時的一些騷操作,爲了將編碼更快,我們還需要將常用的文件模板加入其中

clipboard.png

例如你長期使用Laravel框架去開發應用,在使用laravel寫一個功能的時候我們會經歷下面幾個步驟

聲明一個路由 -> 創建一個Controller,Model,Action ... 文件 -> 調用Model操作數據 -> 返回給用戶結果

如果你使用PhpStrom你大致這樣寫

  1. 打開路由文件 router+空格 完成一個路由結構的自動生成 (當然你需要提前設置)
  2. 創建一個 Php Controller,Model,Action 文件,文件結構已經設置好
  3. 使用General->Postfix Completion設置好的寫法分分鐘解決所有操作

Database

PhpStrom內置了Database,面板十分簡潔易用。他面板的右上角
clipboard.png
有興趣你可以去試試

Api

細心的朋友一定知道PhpStrom內置了接口測試工具,他在 Tools -> Http Client -> Test RestFul Web Service 下。

clipboard.png

臨時的測試你不必打開萬能的Postman,你完全可以通過ide內置的測試工具去完成api測試。當然還有另外一種更厲害的方式 -> 創建一個 test.http 文件

GET www.baidu.com

clipboard.png

像上述這樣,點擊運行你將獲得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

<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>


Response code: 200 (OK); Time: 71ms; Content length: 81 bytes

當然對比Postman依舊不遜色,既然已經將軟件改爲編碼形式,那在Postman內的功能,我們在.http文件中很方便的就可以實現。可以添加請求參數

GET http://www.baidu.com
Content-Type: application/json
{
"name":"zhangsan"
}

每個請求以下一個請求方式前結束。具體請移步官網查看。

主題

工欲善其事,必先利其器。上面說的Jetbrains提供的功能只是冰山一角,想要具體的學習如何使用還請移步官方。帥氣的UI也是調整開發效率的一部分。看到自己的ide非常漂亮,編碼的心情自己好的不得了。我使用的是 Material Theme UI

clipboard.png

關於字體的調整可以在 Editor -> Font 下進行

clipboard.png

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

clipboard.png

隨後在通過 File -> Import Settings 來導入你的配置。這樣就OK了。如果你購買了 Jetbrains 全家桶或者任意的Ide,也可以通過File -> Sync Settings To Jetbrains Account 來同步到你的Jetbrains賬號,類似於雲同步一樣。

便捷

剩下的就是快捷鍵了,快捷鍵乃IDE編碼之本,什麼?不需要? 那你咋不用Word編碼去?快捷鍵我就不總結了,網絡上太多了。下面貼出laravel-china一位大神的總結。

https://laravel-china.org/top...

大會

以上說了一部分大會的內容了。Jetbrains的開發者日也並不是全部商業宣傳,至少它做的事情是值得讓開發者認可的。PPT無法分享給各位,我也不知道怎麼拿到。抱歉!大會主要將了以下幾項內容,上午是主會場,下午分倆個會場 Kotlin & Java 和 Web,作爲一個PHP程序員,我沒得選。


上午

  1. 大會開始,說了很多關於他們的語言 Kotlin 的使用方法。
  2. 隨後說了Jetbrains內部的工作方式及管理方法
  3. 開始ide -> Kotlin 顯示 Kotlin特性

下午

  1. 簡潔高效的PHP編程指南,推薦了一下測試、調試方法&類庫及PhpStrom的使用方法
  2. 在真實世界中進行 Go性能優化 講的go pprof
  3. 用TDD學習高效開發 開始這大佬寫了一通的java測試用例,不咋能看懂。後面說了一些關於程序人生的事情
  4. JetBrains的無痛DevOps解決方案 最後講了JetBrainsDevOps的一些套件,例如TeamCity (與TravisCi類似) ,Upsource 等等。具體可參考 https://www.jetbrains.com/dev...

總而言之,總體下來大多都是乾貨,至少我感覺沒有任何商業宣傳的性質。

致謝

到這裏本章就結束了,感謝看到這裏,不過我還要提醒一句給各位開發者

編輯器不要漢化
編輯器不要漢化
編輯器不要漢化

相信你可以明白。謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章