前言 學習任何知識都會有一個學習背景 最近,我們團隊乃至我司整個雲服務,上go的呼聲越來越高!新服務已經開始用go開發,部分現有Java版的服務重構為go也只是時間問題而已,故相關技術積累勢在必行!在雲網路的分散式服務乃至在一切高併發,分散式後臺服務中,golang都有著很大的優勢。 據我對國內互聯 ...
前言
學習任何知識都會有一個學習背景
最近,我們團隊乃至我司整個雲服務,上go的呼聲越來越高!新服務已經開始用go開發,部分現有Java版的服務重構為go也只是時間問題而已,故相關技術積累勢在必行!在雲網路的分散式服務乃至在一切高併發,分散式後臺服務中,golang都有著很大的優勢。
據我對國內互聯網行業的實際考察,瞭解,目前國內主流互聯網公司都在積極投入go的懷抱……
青雲更是全棧使用了go……
還有火的一塌糊塗的docker。
它為雲而生。
它為併發而生。
還有go的安全、簡潔、高效
有良好的Java、C/C++背景,拿起go很容易。
……
參考:
2017年編程語言排行榜,相比2016,go的飛速上升趨勢很明顯。而Java有很大份額的縮減……
當然,當前在企業級應用開發中,Java依然占有一席之地。
而個人認為:一個優秀的研發工程師乃至架構師……是不能僅僅局限於一門語言的,語言只是拿來就用的工具,關鍵還是實戰經驗和行業內功的修煉。但是對於任何編程語言,不學也不是憑空就會的。
簡單說go的歷史和應用
歷史和概況
Go語言是一個年輕的語言,是Google在2009年發佈的第二款開源的編程語言,它是編譯型語言,專門針對多處理器系統應用程式的編程進行了優化,因此使用Go編譯的程式可以媲美C或C++代碼的速度。 go還具有類似Java的垃圾回收機制,且實現了數組安全……故go有機的結合了Java和C/C++,使其本身更加安全、高效的同時還天然支持並行進程。 可以說,go是為併發而生的! 既然它是為併發而生,那麼在編寫高併發程式時,go寫起來也十分簡潔。目前流行的go應用
1、Go語言的殺手級應用就是Docker,Docker應該大家都知道,目前在國內火的一塌糊塗 2、Codis,一種Redis的集權解決管理方案,很大部分go開發,由豆瓣推出。 3、 Glow,類似Hadoop,也是一種大數據處理框架,性能非常好,是Hadoop的go的實現。 4、 Cockroach資料庫,譯作蟑螂……意味著該資料庫的生存能力很強,是高穩定性業務環境的首選資料庫之一 ……go的開發環境搭建
可以選擇源碼安裝、標準安裝包(win下),第三方工具安裝(brew,install,yum等)。 如果是win,就使用標準包。官網有下載地址。 推薦第三方工具安裝,簡單。 比如Mac下的Homerbrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝go
brew install go
看安裝成功之後的提示就能知道,go的運行需要一個環境變數——GOPATH,是go中非常重要的一個環境變數,必須配置好,假如不配,那麼安裝go的一些工具,或者自己寫的包,就會出問題。當然還有GOROOT。
PS:其實在目前的go版本中,這些環境變數已經在安裝的時候預設被配置ok了。只需要在機器的環境配置文件中做如下操作即可:
You may wish to add the GOROOT-based install location to your PATH: export PATH=$PATH:/usr/local/opt/go/libexec/bin ==> Summary