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