LiteIDE是一款專門為Go語言開發(fā)的跨平臺(tái)輕量級(jí)集成開發(fā)環(huán)境(IDE),由QT編寫。

創(chuàng)新互聯(lián)是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營經(jīng)驗(yàn)。主營GPU顯卡服務(wù)器,站群服務(wù)器,四川移動(dòng)機(jī)房托管,海外高防服務(wù)器,大帶寬服務(wù)器,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
LiteIDE主要特點(diǎn): 支持主流操作系統(tǒng)
Windows
Linux
MacOS X Go編譯環(huán)境管理和切換
管理和切換多個(gè)Go編譯環(huán)境
支持Go語言交叉編譯 與Go標(biāo)準(zhǔn)一致的項(xiàng)目管理方式
基于GOPATH的包瀏覽器
基于GOPATH的編譯系統(tǒng)
基于GOPATH的Api文檔檢索 Go語言的編輯支持
類瀏覽器和大綱顯示
Gocode(代碼自動(dòng)完成工具)的完美支持
Go語言文檔查看和Api快速檢索
代碼表達(dá)式信息顯示F1
源代碼定義跳轉(zhuǎn)支持F2
Gdb斷點(diǎn)和調(diào)試支持
gofmt自動(dòng)格式化支持 其他特征
支持多國語言界面顯示
完全插件體系結(jié)構(gòu)
支持編輯器配色方案
基于Kate的語法顯示支持
基于全文的單詞自動(dòng)完成
支持鍵盤快捷鍵綁定方案
Markdown文檔編輯支持
實(shí)時(shí)預(yù)覽和同步顯示
自定義CSS顯示
可導(dǎo)出HTML和PDF文檔
批量轉(zhuǎn)換/合并為HTML/PDF文檔 Sublime Text 2(以下簡(jiǎn)稱Sublime)+ GoSublime + gocode + MarGo的組合。
其優(yōu)點(diǎn)有: 自動(dòng)化提示代碼。 保存的時(shí)候自動(dòng)格式化代碼,讓您編寫的代碼更加美觀,符合Go的標(biāo)準(zhǔn)。 支持項(xiàng)目管理 支持語法高亮 熟悉Java的讀者應(yīng)該對(duì)于idea不陌生,idea是通過一個(gè)插件來支持go語言的高亮語法,代碼提示和重構(gòu)實(shí)現(xiàn)。
執(zhí)行性能,縮短API的響應(yīng)時(shí)長,解決批量請(qǐng)求訪問超時(shí)的問題。
在Uwork的業(yè)務(wù)場(chǎng)景下,一次API批量請(qǐng)求,往往會(huì)涉及對(duì)另外接口服務(wù)的多次調(diào)用,而在之前的PHP實(shí)現(xiàn)模式下,要做到并行調(diào)用是非常困難的,串行處理卻不能從根本上提高處理性能。
而GO語言不一樣,通過協(xié)程可以方便的實(shí)現(xiàn)API的并行處理,達(dá)到處理效率的最大化。依賴Golang的高性能HTTPServer,提升系統(tǒng)吞吐能力,由PHP的數(shù)百級(jí)別提升到數(shù)千里甚至過萬級(jí)別。
開發(fā)效率,GO語言使用起來簡(jiǎn)單、代碼描述效率高、編碼規(guī)范統(tǒng)一、上手快。通過少量的代碼,即可實(shí)現(xiàn)框架的標(biāo)準(zhǔn)化,并以統(tǒng)一的規(guī)范快速構(gòu)建API業(yè)務(wù)邏輯。能快速的構(gòu)建各種通用組件和公共類庫,進(jìn)一步提升開發(fā)效率,實(shí)現(xiàn)特定場(chǎng)景下的功能量產(chǎn)。
cobra是一個(gè)提供簡(jiǎn)單接口來創(chuàng)建強(qiáng)大的現(xiàn)代CLI界面的庫類似git git tools,cobra也是一個(gè)應(yīng)用程序,它會(huì)生成你的應(yīng)用程序的腳手架來快速開發(fā)基于cobra的應(yīng)用程序
cobra提供:
cobra建立在命令、參數(shù)、標(biāo)志的結(jié)構(gòu)之上
commands代表動(dòng)作,args是事物,flags是動(dòng)作的修飾符
最好的應(yīng)用程序在使用時(shí)讀起來就像句子,因此,用戶直觀地知道如何與它們交互
模式如下:APPNAME VERB NOUN --ADJECTIVE. or APPNAME COMMAND ARG --FLAG(APPNAME 動(dòng)詞 名詞 形容詞 或者 APPNAME 命令 參數(shù) 標(biāo)志)
一些真實(shí)世界的好例子可以更好地說明這一點(diǎn)
kubectl 命令更能體現(xiàn)APPNAME 動(dòng)詞 名詞 形容詞
如下的例子,server 是command,port是flag
這個(gè)命令中,我們告訴git 克隆url
命令是應(yīng)用程序的中心點(diǎn),應(yīng)用程序支持的每一個(gè)交互都包含在一個(gè)命令中,命令可以有子命令,也可以運(yùn)行操作
在上面的例子中,server是命令
更多關(guān)于cobra.Command
flag是一種修改命令行為的方式,cobra支持完全兼容POSIX標(biāo)志,也支持go flag package,cobra可以定義到子命令上的標(biāo)志,也可以僅對(duì)該命令可用的標(biāo)志
在上面的命令中,port是標(biāo)志
標(biāo)志的功能由 pflag library 提供,pflag library是flag標(biāo)準(zhǔn)庫的一個(gè)分支,在添加POSIX兼容性的同時(shí)維護(hù)相同的接口。
使用cobra很簡(jiǎn)單,首先,使用go get按照最新版本的庫,這個(gè)命令會(huì)安裝cobra可執(zhí)行程序以及庫和依賴項(xiàng)
下一步,引入cobra到應(yīng)用程序中
雖然歡迎您提供自己的組織,但通常基于Cobra的應(yīng)用程序?qū)⒆裱韵陆M織結(jié)構(gòu):
在Cobra應(yīng)用程序中,main.go文件通常非常簡(jiǎn)單。它有一個(gè)目的:初始化Cobra。
使用cobra生成器
cobra提供了程序用來創(chuàng)建你的應(yīng)用程序然后添加你想添加的命令,這是將cobra引入應(yīng)用程序最簡(jiǎn)單的方式
這兒 你可以發(fā)現(xiàn)關(guān)于cobra的更多信息
要手動(dòng)實(shí)現(xiàn)cobra,需要?jiǎng)?chuàng)建一個(gè)main.go 和rootCmd文件,可以根據(jù)需要提供其他命令
Cobra不需要任何特殊的構(gòu)造器。只需創(chuàng)建命令。
理想情況下,您可以將其放在app/cmd/root.go中:
在init()函數(shù)中定義標(biāo)志和處理配置
例子如下,cmd/root.go:
創(chuàng)建main.go
使用root命令,您需要讓主函數(shù)執(zhí)行它。為清楚起見,Execute應(yīng)該在根目錄下運(yùn)行,盡管它可以在任何命令上調(diào)用。
在Cobra應(yīng)用程序中,main.go文件通常非常簡(jiǎn)單。它有一個(gè)目的:初始化Cobra。
可以定義其他命令,通常每個(gè)命令在cmd/目錄中都有自己的文件。
如果要?jiǎng)?chuàng)建版本命令,可以創(chuàng)建cmd/version.go并用以下內(nèi)容填充它:
如果希望將錯(cuò)誤返回給命令的調(diào)用者,可以使用RunE。
然后可以在execute函數(shù)調(diào)用中捕獲錯(cuò)誤。
標(biāo)志提供修飾符來控制操作命令的操作方式。
由于標(biāo)志是在不同的位置定義和使用的,因此我們需要在外部定義一個(gè)具有正確作用域的變量來分配要使用的標(biāo)志。
有兩種不同的方法來分配標(biāo)志。
標(biāo)志可以是“持久”的,這意味著該標(biāo)志將可用于分配給它的命令以及該命令下的每個(gè)命令。對(duì)于全局標(biāo)志,在根上指定一個(gè)標(biāo)志作為持久標(biāo)志。
也可以在本地分配一個(gè)標(biāo)志,該標(biāo)志只應(yīng)用于該特定命令。
默認(rèn)情況下,Cobra只解析目標(biāo)命令上的本地標(biāo)志,而忽略父命令上的任何本地標(biāo)志。通過啟用Command.TraverseChildren,Cobra將在執(zhí)行目標(biāo)命令之前解析每個(gè)命令上的本地標(biāo)志。
使用viper綁定標(biāo)志
在本例中,持久標(biāo)志author與viper綁定。注意:當(dāng)用戶未提供--author標(biāo)志時(shí),變量author將不會(huì)設(shè)置為config中的值。
更多關(guān)于 viper的文檔
Flags默認(rèn)是可選的,如果希望命令在未設(shè)置標(biāo)志時(shí)報(bào)告錯(cuò)誤,請(qǐng)根據(jù)需要進(jìn)行標(biāo)記:
持久性Flags
可以使用命令的Args字段指定位置參數(shù)的驗(yàn)證。
內(nèi)置了以下驗(yàn)證器:
在下面的示例中,我們定義了三個(gè)命令。兩個(gè)是頂級(jí)命令,一個(gè)(cmdTimes)是頂級(jí)命令之一的子命令。在這種情況下,根是不可執(zhí)行的,這意味著需要一個(gè)子命令。這是通過不為“rootCmd”提供“Run”來實(shí)現(xiàn)的。
我們只為一個(gè)命令定義了一個(gè)標(biāo)志。
有關(guān)標(biāo)志的更多文檔,請(qǐng)?jiān)L問
對(duì)于一個(gè)更完整的例子更大的應(yīng)用程序,請(qǐng)檢查 Hugo 。
當(dāng)您有子命令時(shí),Cobra會(huì)自動(dòng)將help命令添加到應(yīng)用程序中。當(dāng)用戶運(yùn)行“應(yīng)用程序幫助”時(shí),將調(diào)用此函數(shù)。此外,help還支持所有其他命令作為輸入。例如,您有一個(gè)名為“create”的命令,沒有任何附加配置;調(diào)用“app help create”時(shí),Cobra將起作用。每個(gè)命令都會(huì)自動(dòng)添加“-help”標(biāo)志。
以下輸出由Cobra自動(dòng)生成。除了命令和標(biāo)志定義之外,不需要任何東西。
幫助就像其他命令一樣。它周圍沒有特殊的邏輯或行為。事實(shí)上,你可以提供你想提供的。
您可以為默認(rèn)命令提供自己的幫助命令或模板,以用于以下功能:
當(dāng)用戶提供無效的標(biāo)志或無效的命令時(shí),Cobra通過向用戶顯示“用法”來響應(yīng)。
你可以從上面的幫助中認(rèn)識(shí)到這一點(diǎn)。這是因?yàn)槟J(rèn)幫助將用法作為其輸出的一部分嵌入。
您可以提供自己的使用函數(shù)或模板供Cobra使用。與幫助一樣,函數(shù)和模板也可以通過公共方法重寫:
如果在root命令上設(shè)置了version字段,Cobra會(huì)添加一個(gè)頂級(jí)的'--version'標(biāo)志。運(yùn)行帶有“-version”標(biāo)志的應(yīng)用程序?qū)⑹褂冒姹灸0鍖姹敬蛴〉綐?biāo)準(zhǔn)輸出。可以使用cmd.SetVersionTemplate(s string)函數(shù)自定義模板。
可以在命令的主運(yùn)行函數(shù)之前或之后運(yùn)行函數(shù)。PersistentPreRun和PreRun函數(shù)將在運(yùn)行之前執(zhí)行。PersistentPostRun和PostRun將在運(yùn)行后執(zhí)行。如果子函數(shù)不聲明自己的函數(shù),則它們將繼承Persistent*Run函數(shù)。這些函數(shù)按以下順序運(yùn)行:
輸出:
當(dāng)發(fā)生“未知命令”錯(cuò)誤時(shí),Cobra將打印自動(dòng)建議。這使得Cobra在發(fā)生拼寫錯(cuò)誤時(shí)的行為類似于git命令。例如:
基于注冊(cè)的每個(gè)子命令和Levenshtein距離的實(shí)現(xiàn),建議是自動(dòng)的。匹配最小距離2(忽略大小寫)的每個(gè)已注冊(cè)命令都將顯示為建議。
如果需要在命令中禁用建議或調(diào)整字符串距離,請(qǐng)使用:
or
您還可以使用SuggestFor屬性顯式設(shè)置將為其建議給定命令的名稱。這允許對(duì)在字符串距離方面不接近的字符串提供建議,但在您的一組命令中是有意義的,并且對(duì)于某些您不需要?jiǎng)e名的字符串。例子:
Cobra可以基于子命令、標(biāo)志等生成文檔。請(qǐng)?jiān)?docs generation文檔 中閱讀更多關(guān)于它的信息。
Cobra可以為以下shell生成shell完成文件:bash、zsh、fish、PowerShell。如果您在命令中添加更多信息,這些補(bǔ)全功能將非常強(qiáng)大和靈活。在 Shell Completions 中閱讀更多關(guān)于它的信息。
Cobra is released under the Apache 2.0 license. See LICENSE.txt
上一節(jié)中,我們?yōu)槊總€(gè)連接都創(chuàng)建了一個(gè)goroutine來讀取其中的消息,現(xiàn)在我們將這個(gè)讀取消息的方法實(shí)現(xiàn)一下。
我們?cè)赼pplication目錄下新建controllers目錄,并在其中創(chuàng)建一個(gè)MessageController.go文件。
首先我們新建一個(gè)MessageController的結(jié)構(gòu)體,內(nèi)容如下
這個(gè)結(jié)構(gòu)體包括兩個(gè)內(nèi)容,一個(gè)是我們將連接放在數(shù)組之后,返回的索引,另一個(gè)是連接本身.
這個(gè)是具體的方法。
我們首先設(shè)置了一下讀消息的大小、超時(shí)時(shí)間以及超時(shí)后需要的操作。
超時(shí)時(shí)間如果設(shè)置為0,那么就是永不超時(shí)。之前在這里直接寫0,被告知需要傳一個(gè)time.Time類型的數(shù)據(jù)。最終谷歌后才得到了這個(gè)值time.Time{}為"0001-01-01 00:00:00 +0000 UTC"。
我們將用戶手法消息的內(nèi)容定義為一個(gè)結(jié)構(gòu)體,然后將用戶的訂閱信息的json通過json.unmarshal轉(zhuǎn)換成這個(gè)結(jié)構(gòu)體。
之后的switch操作與我們?cè)赟woole中的操作基本雷同,在查詢到login之后,調(diào)用service中 的login方法來進(jìn)行注冊(cè)。
下一節(jié)中我們?cè)俳榻B具體的注冊(cè)邏輯。
1.先安裝Go對(duì)應(yīng)的開源Swagger相關(guān)的庫
go get?github.com/swaggo/swag/cmd/swag
go get github.com/swaggo/gin-swagger
go get?github.com/swaggo/files
go get?github.com/alecthomas/template
2.驗(yàn)證是否安裝成功:swag -v
3.針對(duì)接口寫入注解
// @Summary 獲取多個(gè)標(biāo)簽
// @Tags 標(biāo)簽
// @Produce? json
// @Param name query string false "標(biāo)簽名稱" maxlength(100)
// @Param state query int false "狀態(tài)" Enums(0, 1) default(1)
// @Param page query int false "頁碼"
// @Param page_size query int false "每頁數(shù)量"
// @Success 200 {object} model.TagSwagger "成功"
// @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"
// @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"
// @Router /api/v1/tags [get]
func (t Tag) List(c *gin.Context) {
}
// @Summary 新增標(biāo)簽
// @Tags 標(biāo)簽
// @Produce? json
// @Param name body string true "標(biāo)簽名稱" minlength(3) maxlength(100)
// @Param state body int false "狀態(tài)" Enums(0, 1) default(1)
// @Param created_by body string false "創(chuàng)建者" minlength(3) maxlength(100)
// @Success 200 {object} model.Tag "成功"
// @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"
// @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"
// @Router /api/v1/tags [post]
func (t Tag) Create(c *gin.Context) {
}
// @Summary 更新標(biāo)簽
// @Tags 標(biāo)簽
// @Produce? json
// @Param id path int true "標(biāo)簽ID"
// @Param name body string false "標(biāo)簽名稱" minlength(3) maxlength(100)
// @Param state body int false "狀態(tài) (0為未刪除、1為已刪除)" Enums(0, 1) default(1)
// @Param modified_by body string true "修改者" minlength(3) maxlength(100)
// @Success 200 {array} model.Tag "成功"
// @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"
// @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"
// @Router /api/v1/tags/{id} [put]
func (t Tag) Update(c *gin.Context) {
}
4.針對(duì)整個(gè)項(xiàng)目進(jìn)行注解,直接在main方法寫入如下注解
//@title 項(xiàng)目名稱
//@version 1.0
//@description 這里是描述
func main() {
5.生成執(zhí)行 swag init
這時(shí)會(huì)在我項(xiàng)目的docs文件夾下面生成docs.go、swagger.json、swagger.yaml三個(gè)文件
6.要在routers中進(jìn)行默認(rèn)初始化和注冊(cè)對(duì)應(yīng)的路由:
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
同時(shí)要引用 _"blog-service/docs" ,不然會(huì)報(bào)錯(cuò)
7.查看接口文檔 :
8.ok,完成
go語言作為google的一個(gè)主推語言,最近很多人都在研究,也花了一點(diǎn)時(shí)間對(duì)他的安裝進(jìn)行了測(cè)試,本人使用Sublime Text 2 + GoSublime + gocode
顧名思義首先是安裝Go,這里有很詳細(xì)的安裝說明, 或者(golang.org自己去找hosts),官方已經(jīng)支持Windows版本
下載解壓配置環(huán)境變量
“環(huán)境變量”(我的電腦-高級(jí)系統(tǒng)設(shè)置-環(huán)境變量),在系統(tǒng)變量的標(biāo)簽下,依次新建編輯如下幾個(gè)鍵值對(duì):
(1). 新建 變量名:GOBIN 變量值 :c:\go\bin
(2). 新建 變量名:GOARCH 變量值:386
(3). 新建 變量名:GOOS 變量值:windows
(4). 新建 變量名: GOROOT 變量值:c:\go
(5). 編輯 Path 在Path的變量值的最后加上 %GOBIN%
1. 下載 Sublime Text 2,地址如下:
2. 解壓以后,雙擊 sublime_text,就可以使用 Sublime Text 2 了。
破解:
用 WinHex 編輯 sublime_text_backup.exe 文件, 跳到 000CBB70 那一行,將該行的 8A C3 修改為 B0 01 然后保存
破解注冊(cè)成功
3. 安裝 Package Control,在打開 Sublime Text 2以后,按下快捷鍵 Ctrl + `,打開命令窗行(具體在view——show Console),并回車:
import urllib2,os; pf=’Package Control.sublime-package’; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),’wb’).write(urllib2.urlopen(‘’+pf.replace(‘ ‘,’%20′)).read()); print ‘Please restart Sublime Text to finish installation’
4. 重啟Sublime Text 2后,就可以發(fā)現(xiàn)在 Preferences菜單下,多出一個(gè)菜單項(xiàng) Package Control。
5.現(xiàn)在安裝GoSublime插件了,按住Ctrl+Shilft+p會(huì)彈出一個(gè)對(duì)話框輸入install回車彈出一個(gè)安裝包的對(duì)話框
同上輸入GoSublime選擇GoSublime回車
本機(jī)已經(jīng)安裝所以沒有出現(xiàn)選項(xiàng),輸入Go build選中回車(這個(gè)屬于可選)
到此GoSublime安裝成功
6.下面安裝gocode,
首安裝 Git-1.7.11-preview20120710。
打開控制臺(tái),輸入以下內(nèi)容:
go get github.com/nsf/gocode
go install github.com/nsf/gocode
go get github.com/DisposaBoy/MarGo
go install github.com/DisposaBoy/MarGo
也可以去github下載(要安裝google的git版本管理工具)
安裝完成后,我們可以在 go/bin 目錄下,發(fā)現(xiàn)多出了個(gè) gocode 文件。(一定要放在bin目錄下)
7. 修改GoSublime配置:在 Preferences菜單下,找到Package Settings,然后找到 GoSublime,再往下找到 Settings – Default。再打開的文件中,添加如下配置,并保存:
"env": {"path":"c:/go/bin;" },
好了,到目前為止,開發(fā)環(huán)境搭建完成。
下面可以自由編程了。呵呵。
按下快捷鍵 Ctrl + b 界面下方會(huì)出現(xiàn)如下界面:
好了,到現(xiàn)在,開發(fā)環(huán)境就搭建完畢了。
如下是內(nèi)容我這邊沒有使用照樣可以使用:
sublime Text 2 編譯配置設(shè)置方法
tools-build system-new build system 新建一個(gè)配置文件 設(shè)置為
{
“cmd”: ["go", "run", "$file_name"],
“file_regex”: “^[ ]*File \”(…*?)\”, line ([0-9]*)”,
“working_dir”: “$file_path”,
“selector”: “source.go”
}
然后就可以用ctrl+b 編譯了
保存
當(dāng)前標(biāo)題:go語言批量注冊(cè),goat注冊(cè)教程
當(dāng)前地址:http://chinadenli.net/article15/dseppgi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、自適應(yīng)網(wǎng)站、企業(yè)建站、網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營銷推廣、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)