golang是 Google 公司開發(fā)的一種靜態(tài)強類型、編譯型、并發(fā)型、并具有垃圾回收功能的編程語言。
Go語言(或 Golang)起源于 2007 年,并在 2009 年正式對外發(fā)布。Go 是非常年輕的一門語言,它的主要目標(biāo)是“兼具 Python 等動態(tài)語言的開發(fā)速度和 C/C++ 等編譯型語言的性能與安全性”。
Golang:Go的三個作者分別是: Rob Pike(羅伯.派克),Ken Thompson(肯.湯普森)和Robert Griesemer(羅伯特.格利茨默)
Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)強類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計算。
1、初學(xué)Go語言首先弄懂基礎(chǔ)語法和概念:基本數(shù)據(jù)類型、Struct、Array、map、Slice、指針、接口、map、內(nèi)置函數(shù),常用工具包
等,還有接口和Slice的底層數(shù)據(jù)結(jié)構(gòu)。這些不需要弄特別懂,能自己理解并自己描述我覺得就可以了,關(guān)鍵在實踐和應(yīng)用練習(xí)。
2、然后學(xué)文件操作、網(wǎng)絡(luò)編程、鎖、協(xié)程、對象序列化和反序列化,以及各種數(shù)據(jù)格式的封裝等,這是進階的內(nèi)容。
學(xué)完上面兩個階段,就可以自己接觸一些框架,然后搭建一個web服務(wù)器,來做一些測試和練習(xí)。Go各種框架都非常多了,github上
star數(shù)過萬的就有很多,這里列舉幾個:beego、iris、gin、echo、revel等。對于學(xué)習(xí)一些使用方法還是很有幫助的。
3、在第三個階段做的過程中,自然就接觸到了數(shù)據(jù)庫,io,操作系統(tǒng),網(wǎng)絡(luò),存儲優(yōu)化、需要排很多雷。到這一步,已經(jīng)能夠模塊化
誕生時間
Go 語言起源 2007 年,并于 2009 年正式對外發(fā)布。它從 2009 年 9 月 21 日開始作為谷歌公司 20% 兼職項目,即相關(guān)員工利用 20% 的空余時間來參與 Go 語言的研發(fā)工作。
其實可以看到,Go語言的歷史不算很短。
谷歌的“20%時間”工作方式,允許工程師拿出20%的時間來研究自己喜歡的項目。語音服務(wù)Google Now、谷歌新聞Google News、谷歌地圖Google Map上的交通信息等,全都是20%時間的產(chǎn)物。
Go語言最開始也是20%時間的產(chǎn)物
Golang最大的特色可以說是協(xié)程(goroutine)了, 協(xié)程讓本來很復(fù)雜的異步編程變得簡單, 讓程序員不再需要面對回調(diào)地獄。
要理解協(xié)程的實現(xiàn), 首先需要了解go中的三個非常重要的概念, 它們分別是G, M和P,沒有看過golang源代碼的可能會對它們感到陌生, 這三項是協(xié)程最主要的組成部分, 它們在golang的源代碼中無處不在..
go語言前景:
1.在云計算、微服務(wù)、基礎(chǔ)后端軟件上具有強大優(yōu)勢
2.得到諸多大廠的"青睞",很多部門由java轉(zhuǎn)golang,新公司甚至直接使用golang
3.優(yōu)秀開源項目不斷涌現(xiàn),以docker和k8s為代表
go語言優(yōu)勢:
1.兼顧C語言級別的編譯、運行效率,容易部署,PHP級別的開發(fā)效率
2.強大的標(biāo)準(zhǔn)庫,內(nèi)置高效的垃圾回收機制
3.簡單的并發(fā)編程,goroutine和channel極易上手
4.靜態(tài)類型語言,擁有強大的編譯檢查、嚴(yán)格的編碼規(guī)范
5.背景強大,由三位骨灰級大師創(chuàng)造,google公司運營維護
Ken Thompson(肯·湯普遜):1983年圖靈獎、1998年美國國家技術(shù)獎得主,他與Dennis Ritchie是Unix系統(tǒng)的原創(chuàng)者。Thompson也發(fā)明了C語言、B語言,同時也是C語言的主要發(fā)明人。
Rob Pike(羅布·派克): 加拿大人,曾是貝爾實驗室的Unix團隊和Plan 9操作計劃的成員。他與Thompson公事多年,并共創(chuàng)出廣泛使用的UTF-8字元編碼。(ps:Go語言的圖標(biāo)-gopher 囊地鼠,是Rob Pike老婆制作的)
Robert Griesemer:曾協(xié)助制作Java的HotSpot編譯器,和Chrom瀏覽器的JavaScript引擎V8.
goroutine, 天然支持并發(fā)。網(wǎng)絡(luò)編程很合適,在云計算方面用的較多, 如docker
工作職責(zé):
1、負(fù)責(zé)數(shù)據(jù)庫架構(gòu)設(shè)計及中長期規(guī)劃;
2、負(fù)責(zé)數(shù)據(jù)庫的監(jiān)控,備份,性能優(yōu)化及故障處理等 ;
3、數(shù)據(jù)庫分庫分表方案的設(shè)計、實施及數(shù)據(jù)遷移;
4、負(fù)責(zé)根據(jù)項目需求設(shè)計并制定數(shù)據(jù)庫解決方案;
5、負(fù)責(zé)SQL review,慢SQL優(yōu)化等工作;
6、負(fù)責(zé)高可用及容災(zāi)落地實施工作;
7、制定并不斷完善數(shù)據(jù)庫的運維規(guī)范、開發(fā)規(guī)范及安全規(guī)范。
任職資格:
1、計算機相關(guān)專業(yè)本科及以上,三年以上Oracle 、Mysql 、DB2運維管理經(jīng)驗,精通RAC,DATAGUARD,OGG,具備ES,MongoDB、Redis使用經(jīng)驗優(yōu)先考慮; 2、熟悉MySQL數(shù)據(jù)庫體系結(jié)構(gòu)和工作原理,熟悉常見存儲引擎的原理、特點以及主從復(fù)制原理和實踐,熟悉目前常用的開源中間件解決方案,有分表分庫相關(guān)項目經(jīng)驗;
3、具備較強的數(shù)據(jù)庫設(shè)計、SQL優(yōu)化能力,并能根據(jù)業(yè)務(wù)需求,提供高可用、高性能、可擴展、穩(wěn)定可靠的數(shù)據(jù)庫解決方案;
4、有一定的腳本語言編程(python,golang等)等自動化開發(fā)能力優(yōu)先;
5、良好的溝通、協(xié)調(diào)能力,能在一定的壓力下有效開展工作,有阿里云數(shù)據(jù)庫工作經(jīng)驗優(yōu)。
少則及幾千塊錢多則幾萬塊錢。自己可以在網(wǎng)上通過一些視頻來學(xué)習(xí),有很多都是免費的,也有一些付費的講解視頻。