iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 1
1
自我挑戰組

30天學會Golang系列 第 1

day1 - Go語言的介紹

大家好,這是我生平第一次參加鐵人賽,想要透過比賽來強迫自己學習新的程式語言。我目前是一個C#後端工程師,平常在公司是寫.net core,因為最近對go很有興趣,剛好看到了鐵人賽這個機會,就決定給自己一個挑戰,希望可以在30天後學會go語言。

主要參考

這一系列文章會參考官網教學Tour of Go,和徐波老師寫的 Go語言從入門到進階實戰 這本書,以及在之後文章中有引用其他網站之內容或範例的地方,我會再特別於文末註明參考來源。如果有人發現任何錯誤內容或是未註明參考的地方,請麻煩告訴我,小弟感激不敬。

A Tour of Go: https://tour.golang.org

Go語言從入門到進階實戰: https://www.books.com.tw/products/CN11547747

Go語言的簡單介紹

這裡列出一些關於Go的簡單介紹,有的是書中提到的,有的是維基百科寫的:

  1. Go語言的原本名稱為go language,因此又稱golang,之後文章簡稱Go。

  2. Go是由Google開發的一個靜態編譯程式語言,支援垃圾回收與併發。

  3. Go於2009年11月正式宣布推出,成為開放原始碼專案,支援所有作業系統。

  4. Go是C語言家族的新成員,風格與C語言相似,有"網路的C語言"的稱號。

撰寫風格

Go的風格很像C語言,尤其是一樣用*表示指標,而Go也做了一些語法上的簡化及統一,使得程式在開發時更容易上手,以及更容易閱讀,以下是一些主要的差異:

  1. 每一行程式的結尾不需要分號 ( ; ) 。

  2. 大括號 { } 的左括號 { 不能換行寫。

  3. for, if, switch條件式不需要小括號 ( )。

特性與優點

Go的特性與優點應該是已經被講到爛掉的東西,不外乎就是編譯快、效能高、容易部屬、語法簡單,及內建併發之類的,以下列出的是書上提到的特性及優點:

  1. 環境簡單,跨平台,上手容易。
  2. 編譯輸出可執行文件,部屬快速容易。
  3. 編譯速度快,執行效能高。
  4. 語言層原生支援併發。
  5. 開發工具內建性能分析。
  6. 強大的標準庫。
  7. 代碼風格清晰、簡單,並且有強制性。

開源項目

Go的開源項目越來越多,表示社群成長十分快速,對於語言本身來說也是一大優勢之一,因為可以降低學習與開發的門檻,以下列出幾個我知道的開源項目:

  1. Golang: Go語言本身就是一個開源項目,原本是用C語言編寫,現在改以自身Go語言編寫。

    Github: https://github.com/golang/go/

  2. Docker: 近年來非常熱門的容器化技術開源軟體。
    Github: https://github.com/docker

  3. Kubernetes: 自動化部屬、擴展,及管理容器化應用程式的系統,支援docker。
    Github: https://github.com/kubernetes/kubernetes

  4. Gin: Go開源社群中星數最高的Web開發框架。
    Github: https://github.com/gin-gonic/gin

  5. Prometheus: 一個熱門的事件監控與警報系統。
    Github: https://github.com/prometheus/prometheus

參考來源

  1. 維基百科: https://zh.wikipedia.org/wiki/Go

下一篇
day2 - 開發環境與第一支程式
系列文
30天學會Golang30

尚未有邦友留言

立即登入留言