# Day01 介紹-開門見GO法 啊,一開門就見GO!真傷... 其實我不知道能不能撐過30天 ## 介紹一下GO * Go語言(Go Language)又稱**Golang**,是Google在2009年推出的一個實驗性項目的程式語言,會出現這個語言的原因之一是因為Google工程師們不是那麼喜歡使用C++。 * Go語言在2007年開始設計、2009年正式公開、2011年釋出v1.0版本,之後大約每半年的時間釋出下一個版本,如今已來到v1.15 (2020/08)。 * Golang 一開始是由C語言編寫而成。執行程式需要經過**編譯**,為**強**型別程式語言。 跟C語言有點類似、也具有指標功能,如果有學過C語言的很容易上手。也有人說Go是現代版的C語言,冠上如此華麗的美稱。但無論如何,想用來取代C語言終究是有一定難度的。 * 效能比Python好,但略比C差,然後常常被跟Rust比來比去。 內建**併發**,很容易的就能寫出多線程程式。 代表能榨乾CPU的資源,或者說是以最少的資源做最多的事、不浪費每顆CPU。 * 跨平台、容易部署,內建垃圾回收機制。而且簡單易學。 * 最大的重點是,GO語言 **很潮** ## Go語言工程師化 Go語言有著一堆很估摸龜毛的特性與怪癖, 很適合孤僻的工程師們使用,稍微提一下幾個特點: 1. 變數宣告了就要用!不然編譯器爆你錯! 2. 套件import就要用! 3. 大括號排版都要照格式 4. 還有gofmt(go format)可以幫助排版,固定格式 5. 變數字開頭大寫代表開放外界使用 6. 充斥大量的 if err != nil{ } 判斷錯誤的方法。 發生預期之外的事情就返回、跳出 往下執行的程式是預期中的事情 6. ... 等等,還沒完! Google對於程式風格的講究,推了一大堆嚴謹的[命名規範與慣例](https://golang.org/doc/effective_go.html), 反正人家Google是軟體界大佬, 大佬的建議、好的Coding習慣,多少就遵守唄。 ## Go可以幹嘛 簡而言之,Go語言穩定,也很容易上手, 工程師們寫出的程式碼風格較一致, 常被拿來架設伺服器以及網站後端。 除此之外,聽過Docker、Kubernetes嗎? 這兩個鼎鼎大名的容器專案是使用Go語言編寫的產物之一。 也可以看看在Github開源社區中的[星星排名](https://gitstar-ranking.com/repositories)與[Go百大專案](https://github.com/EvanLi/Github-Ranking/blob/master/Top100/Go.md)。 喔,學Golang還能**活口飯吃**[ ~~重點是很大碗?~~](https://github.com/golangtw/jobs/issues) 社群人數正往上攀升成長、成為最具前途及錢途的程式語言之ㄧ。 ## 題外話 * 這是Golang的吉祥物,是一隻地鼠,先記住他的樣子, 因為之後會在很多地方看到他在挖洞讓你跳。  * 而開發Go程式的人通常就叫作**Gopher**, 長這樣或這樣,這大概就是你我現在的樣子。  ## 尾聲 > 一本好的書籍內容編排不應過於沉悶,不應全盤談論晦澀的技術, > 而是讓讀者看懂、看得下去,同時學習到新知、也能獲得成就感。 Go繁不及備載 一文成就感可能略顯不足, 但我盡量以無腦詼諧的筆調及範例來作說明,盼大家看得下去。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up