SOAR的IDE外掛——您的貼身DBA保鏢
本文將介紹SOAR外掛的基本實現以及現在已經實現的外掛的安裝與使用。
SOAR(SQL Optimizer And Rewriter)是小米近期開源的SQL智慧最佳化改寫工具,開源第一週就取得了2000+星的成績。我們開發SOAR的目的並不僅僅希望對DBA能夠提供幫助,也希望能夠協助廣大的SQL開發者更容易的寫出高質量的SQL。SOAR借鑑了其他SQLint[1]的思路,也提供了三種編輯器外掛,可以用來整合到Vim,Sublime Text,VS Code等程式碼編輯器中。
將report-type指定為lint時,SOAR會將評審內容以SQLint的樣形輸出。為了便於展示,lint模式下只保留了檔名、行號、建議型別和建議摘要等少數資訊。下面是一個簡單的例子。
$ cat file.sql select * from test $ soar -report-type lint -query file.sql file.sql:1:CLA.001
最外層SELECT未指定WHERE條件 file.sql:1:COL.001 不建議使用SELECT * 型別查詢
Vim外掛Vim外掛我們選擇了在知名的Syntastic[2]外掛基礎上進行增補,這就要求使用者首先安裝Syntastic外掛,它的安裝方法在官方文件[3]中有詳細描述,這裡不再過多贅述。讓我們來直接看看要怎樣配置SOAR生效。
確保soar二進位制檔案在可執行檔案查詢路徑$PATH下
確保soar二進位制檔案具有可執行許可權,chmod a+x soar
將原始碼中的doc/example/soar.vim檔案複製至${SyntasticInstalledPath}/syntax_checkers/sql目錄下,例如筆者使用bundle來管理Vim外掛,於是將soar.vim檔案複製至~/.vim/bundle/pristine/syntastic/syntax_checkers/sql目錄
修改${SyntasticInstalledPath}/plugin/syntastic/registry.vim註冊檔案,增加sql型別檔案的檢查工具,如'sql':['soar','sqlint']
更新Vim配置~/.vimrc,允許Syntastic預設彈窗
set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
一切順利的話使用Vim開啟一個檔案每次儲存時您就能看到SOAR給出的建議了。
Sublime Text3外掛
與Vim外掛的思路相同,在Sublime Text3中,我們選擇在SublimeLinter[4]的基礎上進行擴充。由於程式碼剛剛開源,SublimeLinter-soar[5]在PackageControlChannel相關Pull Request[6]尚未被合併完成,所以目前暫時不能透過Sublime Text3自帶的PackageControl進行安裝。
雖然不能使用簡便的方式進行安裝,但是如果您想立刻體驗SOAR的Sublime Text3外掛,可以按照下列方式手動進行安裝:
確保soar二進位制檔案具有可執行許可權,chmod a+x soar
根據官方文件[7]安裝SublimeLinter
開啟Sublime Text3的外掛相關目錄:Preferences -> Browse Packages…
在該目錄下載程式碼
git clone
配置個人相關引數:點選 Preferences -> PackageSettings -> SublimeLinter -> Settings,將下列內容修改後加入到個人配置中
// SublimeLinter Settings - User{ "linters": { "soar": { "soar_path":"your_soar_path" }, }, }
重新啟動Sublim Text3後,開啟一個SQL檔案就看到SOAR給出的建議了。
VS Code外掛
VS Code的外掛功能十分強大,對於語言類的功能擴充,微軟採用了一種稱為Language Server Protocol(LSP)的實現方式。這種協議標準化了語言工具和程式碼編輯器之間的通訊方式,感興趣的同學可以透過官方文件[8]進行更深入的瞭解。
SOAR的VS Code外掛目前在Github[9]上管理,尚未釋出到微軟的應用市場,無法直接在微軟官方網頁上點選安裝。想嚐鮮且擁有TypeScript及VS Code外掛開發相關經驗的同學可以透過以下方式來手動安裝體驗該外掛。其他同學可以靜靜等待微軟應用市場審批透過即可享受一鍵安裝的便利了。
確保soar二進位制檔案具有可執行許可權,chmod a+x soar
確保soar二進位制檔案在可執行檔案查詢路徑$PATH下
找到VS Code外掛安裝路徑,Mac/Linux使用者一般為${HOME}/.vscode/extensions,Windows使用者一般為%USERPROFILE%\.vscode\extensions
進入該路徑下載程式碼
git clone
參考專案README[10]編譯Client與Server目錄下的TypeScript程式
重啟VS Code,開啟一個SQL檔案檢視是否生效
總結
SOAR並不僅僅是為DBA準備的工具,我們希望SOAR能夠從SQL的全部生命週期來幫助提升程式碼質量。無論螢幕前的你是DBA還是軟體開發者,我們相信SOAR都能夠對您SQL的開發體驗帶來極大地提升。
參考
[1]:
[2]:
[3]:#installation
[4]:
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559359/viewspace-2218111/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用CodeTogether外掛在IntelliJ、Eclipse和VS Code之間實時共享您的 IDEIntelliJEclipseIDE
- ClipboardJS複製貼上外掛的使用JS
- Flutter 將您的外掛遷移到新的Android APIFlutterAndroidAPI
- 格式化Java原始碼的Vscode等IDE外掛 - RedditJava原始碼VSCodeIDE
- Vscode外掛:將程式碼連線到IDE中的文件VSCodeIDE
- (二)selenium IDE 外掛下載與安裝IDE
- 使用新 Android Gradle 外掛加速您的應用構建AndroidGradle
- Paste:您的Mac剪貼簿管家ASTMac
- 推薦一款常用的IDE外掛,越用越喜歡IDE
- [文件教程]onethink的外掛討論總貼(視訊、技巧)等
- 貼片電感和外掛磁環電感的區別
- Gradle 與 AGP 構建 API: 進一步完善您的外掛!GradleAPI
- 7款優秀Vim外掛幫你打造完美IDEIDE
- IDE中下載JDK的外掛:視覺化自由選擇下載特定版本的JDKIDEJDK視覺化
- [外掛擴充套件]支付寶外掛(即時到賬、擔保交易)套件
- 外掛如何呼叫本外掛的View?View
- HtmlWebpackPlugin外掛和HtmlWebpackInlineSourcePlugin外掛的使用HTMLWebPlugininline
- fastadmin的【外掛管理】外掛使用教程AST
- 6個很棒的PostCSS外掛,讓您成為一個CSS嚮導CSS
- ps外掛Camera Raw新增功能讓您的智慧修圖更簡單~
- 空管技保的現狀——身邊事
- sbt的assembly外掛
- 好用的chrome外掛Chrome
- mybatis的外掛:mapperMyBatisAPP
- burp外掛的使用
- jQuery的外掛列表jQuery
- Maven的常用外掛Maven
- IDEA好用的外掛Idea
- burpsuite好用的外掛UI
- VScode 好用的外掛VSCode
- 外掛的前世今生
- 講真,這兩個IDE外掛,可以讓你寫出質量槓槓的程式碼IDE
- PHP外掛系統的實現(七):外掛案例PHP
- IDE 外掛新版本釋出,開發效率 “biu” 起來了IDE
- AqseMarkets,您身邊最專業的理財專家!AQS
- 可確保專案的質量和安全性的三個Maven外掛 - rieckpilMavenKPI
- [外掛擴充套件]簡單的IP記錄外掛套件
- PHP外掛系統的實現(五):觸發外掛PHP