1、簡單易學(xué)。
成都創(chuàng)新互聯(lián)公司云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過13年的服務(wù)器租用、多線BGP機(jī)房、云服務(wù)器、網(wǎng)站空間、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn),已先后獲得國家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、網(wǎng)站空間、主機(jī)域名、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
Go語言的作者本身就很懂C語言,所以同樣Go語言也會有C語言的基因,所以對于程序員來說,Go語言天生就會讓人很熟悉,容易上手。
2、并發(fā)性好。
Go語言天生支持并發(fā),可以充分利用多核,輕松地使用并發(fā)。 這是Go語言最大的特點(diǎn)。
描述
Go的語法接近C語言,但對于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類似模型的其他語言包括Occam和Limbo,但它也具有Pi運(yùn)算的特征,比如通道傳輸。
在1.8版本中開放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動態(tài)加載部分函數(shù)。
與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 切片(Slice) 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語言級支持。
⑴ Go Kit
它本身不是一個(gè)框架,而是一套微服務(wù)工具集,可以用于解決分布式系統(tǒng)開發(fā)中的大多數(shù)常見問題,所以使用者可以專注于你的業(yè)務(wù)邏輯中。
⑵ Gingko
是一個(gè)Go測試框架,目的是幫助我們使用行為驅(qū)動開發(fā)風(fēng)格高效地編寫富有表現(xiàn)力和全面的測試,它有著非常良好的幫助文檔,任何人都可以輕松地在項(xiàng)目中集成使用它。
⑶ NSQ
實(shí)時(shí)分布式消息傳遞平臺,提供高可用性和可靠的消息傳遞保證,可以水平擴(kuò)展,支持負(fù)載均衡,安裝部署非常方便。
⑷ Goose
Golang中最佳的數(shù)據(jù)庫遷移包,通過創(chuàng)建增量SQL更改和Go函數(shù)來管理數(shù)據(jù)庫結(jié)構(gòu),在Go1.16版本以上,還支持了嵌入式sql遷移。
⑸ GORM
是一個(gè)功能齊全的Golang對象關(guān)系映射庫,是一種開發(fā)人員友好的工具,用于在不兼容的類型系統(tǒng)之間轉(zhuǎn)換數(shù)據(jù),專門設(shè)計(jì)用于在類型系統(tǒng)之間切換時(shí)最大限度地減少重寫代碼。
⑹ Authboss
一個(gè)模塊化的身份驗(yàn)證包,使用它你可以快速地在項(xiàng)目中進(jìn)行身份驗(yàn)證管理。它有幾個(gè)常見的身份驗(yàn)證和授權(quán)模塊供開發(fā)人員選擇。
⑺ cli
是一個(gè)簡單快捷的命令行管理包,用于為Go語言構(gòu)建命令行應(yīng)用程序,允許開發(fā)人員開發(fā)自己的富有表現(xiàn)力的命令行應(yīng)用程序,用于創(chuàng)建標(biāo)志、bash完成例程并生成幫助文本。
⑻ Vegeta
是一個(gè)用于HTTP負(fù)載測試的工具包,這個(gè)多功能工具專為測試具有恒定請求率的HTTP服務(wù)而設(shè)計(jì)。它可以有效地分析程序中的潛在問題,是一個(gè)始終貫穿以提高整體性能為目的的包。
實(shí)際業(yè)務(wù):go 二進(jìn)制文件在私有化部署中,需要對客戶的服務(wù)器mac和ip進(jìn)行綁定,系統(tǒng)只能運(yùn)行在綁定的服務(wù)器上。把mac和ip地址配置到config中。
運(yùn)行效果:系統(tǒng)可正常編譯,正常訪問,在用戶Auth接口進(jìn)行核對。
//檢驗(yàn)Mac和內(nèi)網(wǎng)IP,測試環(huán)境不做校驗(yàn)
func (c *CommonBase)CheckMacAndIp()error {
ipCfg :=g.Cfg().GetString("machine.Ipaddr")
macCfg :=g.Cfg().GetString("machine.Macip")
if ipCfg =="127.0.0.1" {
return nil
}
macArray,_ :=gipv4.GetMacArray()
if len(macArray) ==0 {
return gerror.New("mac地址獲取失敗")
}
if garray.NewStrArrayFrom(macArray).Contains(macCfg) ==false {
return gerror.New("示授權(quán)的應(yīng)用MAC,請聯(lián)系")
}
ipArray,_ :=gipv4.GetIpArray()
ipIntranetArray,_ :=gipv4.GetIntranetIpArray()
if len(ipArray) ==0 len(ipIntranetArray) ==0 {
return gerror.New("ip地址獲取失敗")
}
if garray.NewStrArrayFrom(ipArray).Merge(ipIntranetArray).Contains(ipCfg) ==false {
return gerror.New("示授權(quán)的應(yīng)用IP,請聯(lián)系")
}
return nil
}
項(xiàng)目使用GoFrame框架1.6??紤]到客戶可能會對內(nèi)存數(shù)據(jù)做分析破解,可以把mac和ip地址做AES加密。
中行跨境GO第三方服務(wù)授權(quán)查詢:
您可以通過【我的】-【設(shè)置】-【第三方服務(wù)授權(quán)管理】查看已授權(quán)的服務(wù)。
以上內(nèi)容供您參考,業(yè)務(wù)規(guī)定請以實(shí)際為準(zhǔn)。
如有疑問,歡迎咨詢中國銀行在線客服。
誠邀您下載使用中國銀行手機(jī)銀行APP或中銀跨境GO APP辦理相關(guān)業(yè)務(wù)。
1、學(xué)習(xí)曲線
它包含了類C語法、GC內(nèi)置和工程工具。這一點(diǎn)非常重要,因?yàn)镚o語言容易學(xué)習(xí),所以一個(gè)普通的大學(xué)生花一個(gè)星期就能寫出來可以上手的、高性能的應(yīng)用。在國內(nèi)大家都追求快,這也是為什么國內(nèi)Go流行的原因之一。
2、效率
Go擁有接近C的運(yùn)行效率和接近PHP的開發(fā)效率,這就很有利的支撐了上面大家追求快速的需求。
3、出身名門、血統(tǒng)純正
之所以說Go語言出身名門,是因?yàn)槲覀冎繥o語言出自Google公司,這個(gè)公司在業(yè)界的知名度和實(shí)力自然不用多說。Google公司聚集了一批牛人,在各種編程語言稱雄爭霸的局面下推出新的編程語言,自然有它的戰(zhàn)略考慮。而且從Go語言的發(fā)展態(tài)勢來看,Google對它這個(gè)新的寵兒還是很看重的,Go自然有一個(gè)良好的發(fā)展前途。我們看看Go語言的主要創(chuàng)造者,血統(tǒng)純正這點(diǎn)就可見端倪了。
4、組合的思想、無侵入式的接口
Go語言可以說是開發(fā)效率和運(yùn)行效率二者的完美融合,天生的并發(fā)編程支持。Go語言支持當(dāng)前所有的編程范式,包括過程式編程、面向?qū)ο缶幊桃约昂瘮?shù)式編程。
5、強(qiáng)大的標(biāo)準(zhǔn)庫
這包括互聯(lián)網(wǎng)應(yīng)用、系統(tǒng)編程和網(wǎng)絡(luò)編程。Go里面的標(biāo)準(zhǔn)庫基本上已經(jīng)是非常穩(wěn)定,特別是我這里提到的三個(gè),網(wǎng)絡(luò)層、系統(tǒng)層的庫非常實(shí)用。
6、部署方便
我相信這一點(diǎn)是很多人選擇Go的最大理由,因?yàn)椴渴鹛奖悖袁F(xiàn)在也有很多人用Go開發(fā)運(yùn)維程序。
7、簡單的并發(fā)
它包含降低心智的并發(fā)和簡易的數(shù)據(jù)同步,我覺得這是Go最大的特色。之所以寫正確的并發(fā)、容錯(cuò)和可擴(kuò)展的程序如此之難,是因?yàn)槲覀冇昧隋e(cuò)誤的工具和錯(cuò)誤的抽象,Go可以說這一塊做的相當(dāng)簡單。
8、穩(wěn)定性
Go擁有強(qiáng)大的編譯檢查、嚴(yán)格的編碼規(guī)范和完整的軟件生命周期工具,具有很強(qiáng)的穩(wěn)定性,穩(wěn)定壓倒一切。那么為什么Go相比于其他程序會更穩(wěn)定呢?這是因?yàn)镚o提供了軟件生命周期的各個(gè)環(huán)節(jié)的工具,如go
tool、gofmt、go test。