golang

從一知半解到略懂 Go modules

一直以來沒有好好去詳讀 go modules 的文件,所以都覺得對 go modules 只是一知半解。這次花了些時間看了關於 go modules 的相關文件,並實際寫個小範例體驗,最後整理成本文分享。

Posted on  Nov 2, 2020  in  Go 程式設計 - 初階  by  Amo Chen  ‐ 3 min read

Golang - 從 Hello World 認識 GOPATH

初學 golang 的人應該都會對環境變數 GOPATH 感到困惑。

譬如 PYTHONPATH 是 Python 尋找模組與套件的路徑,一般來說並不需要特別設定,也可以用得很開心。

然而 GOPATH 則不一樣,一旦程式涉及 package 就會需要留心 GOPATH 的設定,很容易令人感到困惑,但是只要弄清楚 GOPATH 的基本,就能夠很輕鬆地開發 Go 應用程式。

那麼,就從 Hello World 開始認識 GOPATH 吧!

Posted on  Jul 26, 2020  in  Go 程式設計 - 初階  by  Amo Chen  ‐ 4 min read

Golang GORM - PostgreSQL JSONB 使用範例

GORM 是 Golang 生態系中知名的 ORM(Object-Relational Mapping) 函式庫,如果想在 Golang 使用 ORM 相關的功能,不妨試試 GORM!

不過, GORM 文件中比較少篇幅提到 PostgreSQL 的 JSONB 如何使用,本文用以紀錄 GORM 使用 JSONB 的範例,如果沒使用 GORM 經驗的話,建議看過 GORM 文件後再閱讀本篇文章。

Posted on  Feb 16, 2020  in  Go 程式設計 - 高階  by  Amo Chen  ‐ 1 min read

Golang gRPC 教學 - part 1

gRPC 是由 Google 所開源的一項 RPC(Remote Procedure Call) 專案。

由於 Google 內部使用了相當多的 Microservices, 也因此 Google 內部十分仰賴以 RPC 技術作為資料傳遞、處理的骨幹,他們內部也使用了一套稱為 Stubby 的 RPC 技術框架,可以視為 gRPC 的前身,不過隨著 SPDY, HTTP/2 及 QUIC 等技術的出現,加上多年使用 Stubby 的經驗以及為了改近 Stubby 的不足,促使 Google 決定打造一套新世代的 RPC 框架,最後造就 gRPC 問世。(有興趣可以進一步閱讀 gRPC Blog

Posted on  Feb 4, 2020  in  Go 程式設計 - 高階  by  Amo Chen  ‐ 4 min read

Golang VSCode 開發環境建置 - 手把手教學

VS Code 作為 Go 的 IDE 其實相當方便,但由於初學者多半對 GOPATH 或 launch.json 的設定仍處於半生不熟的情況,對於環境設定都會感到棘手,因此本文特別將過程陳列出來,以期大家都能夠開啟一段愉快的 Go 旅程。

Last updated on  Mar 2, 2023  in  Go 程式設計 - 初階  by  Amo Chen  ‐ 4 min read

Golang HTTP FileServer 簡介

Golang 內建提供 http.FileServer ,可以方便地透過 HTTP 存取檔案系統(file system),例如以下程式碼執行之後,就可以透過瀏覽器打開網址 http://localhost:8080 瀏覽 /usr/share/doc 資料夾內的檔案。

package main

import (
	"net/http"
)

func main() {
	http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/share/doc")))
}

Posted on  Jun 4, 2018  in  Go 程式設計 - 初階  by  Amo Chen  ‐ 2 min read