Generate mock DB 既然我們已經有了 db.Store interface,我們可以使用 gomock 生成 mock interface。...
Why mock database? 當談到APIs 的測時,有些人可能選擇連接到真實的資料庫,而有些人則認為使用 mocking 較好,原因如下: 首先,...
這幾天我們都是透過電腦版的Line來做測試,但是如果是使用手機版的話,會發現當我們點擊Google OAuth的URL要進行認證授權的時候,雖然前面的步驟都一切...
一、 本篇提要 接下來會說明檔案的建立、和寫入,在此之前會需要先了解什麼是檔案權限。 檔案存取權限 建立與寫入檔案 os.OpenFile() 二、檔案存取...
一、本篇題要 這個主題將了解系統與檔案,像是介紹多種讀寫純文字檔和CSV格式檔案的方式,以及檔案的存取權限。我們會實作一個命令列應用程式,可以接收各種 flag...
Why file and environment variables ? 當開發和部署後端網頁應用時,我們通常需要為不同的環境使用不同的配置,例如開發、測試、...
在併發程式中,由於連接超時、使用者取消或系統故障,往往需要執行搶佔操作。過去,我們利用 done 通道在程式中取消所有阻塞的並發操作,儘管這方法有其效用,但確實...
在昨天的練習中,當我們使用 GET 請求時,並成功得到網站中的資料,我們都用是終端機查看回傳的資訊,雖然一樣可以達到查看資料的目的,但好像缺少了什麼!!這就不得...
今天一開始我們先來調整一下我們之前對Expiry宣告的類型,昨天仔細看發現oauth官方的Token(oauth2.Token)結構如下: type Token...
開始之前我們調整一下之前在adapter\google\oauth.go的OAuthLoginURL(),把原本寫死的第一個參數”state-token”改...
一、本篇提要 本篇重點會著重於Go如何解析JSON,以及了解Go自有的 gob 二進位編碼功能。 解碼JSON為Go結構 將Go結構編碼為JSON 二、解碼...
一、本篇提要 本篇開始介紹Go中的time套件,時間處裡是Go程式的核心之一,time套件官方文件 建立時間資料 時間值的格式化 時間值的管理 時間值的比較與...
在現代應用程式中,用戶端和伺服器之間的通信是不可或缺的一部分。Go 的強項之一是其在構建網路應用程序方面的表現。今天,我們將深入研究如何使用 Go 語言創建一個...
一、本篇提要 最後要來看Go程式撰寫簡單的單元測試,並使用 go test 來替我們測試函式與套件。這次我們會沿用之前的shape程式範例,並稍作改寫。 二、撰...
Implement get account API 在server.go 的NewServer中加入 getAccount 的router Path...
昨天我們在server.go的地方會發現,要去調用SSM的地方,因為是一個一個參數去查,參數一多看起來就會很混亂,像下面這樣。 如果我們能一次性地去查詢,應該...
我們在之前的章節列舉了Pipeline(管道)的各種優點,但有時候,盡管管道沒有準備好,我們的程序依然還是要幹活的,這種處理方式,被稱為“Queue”(隊列)。...
在某些情況下,你可能會發現自己想要使用一系列通道的值: <-chan <-chan interface{} 這與將某個通道的數據切片合併到一個通道...
一、本篇提要 接下來要介紹的是Go的除錯基本方法,將會介紹到格式化訊息、log、單元測試(unit test)。 以 fmt 套件做格式化輸出 使用log...
一、 本篇提要 如果我們需要使用網路上別人公開的套件,可用 go get 指令下載它到系統中 $GOPATH\pkg\mod 位置。有需要時就使用 go mod...
Implement create account API 在server.go 的NewServer中加入 createAccount 的router s...
我們仔細看昨天的流程會發現,要調用Google Drive之前一定要先拿使用者的token去建立*http.Client然後再交給drive.NewServic...
一、本篇提要 承接前篇泛型 基本泛型概念 泛型應用示範 二、基本泛型 2.1 基本泛型概念: Type Parameter:作為佔位符存在的一個型別,用...
一、本篇提要 型別斷言(type assertion) 斷言與switch 二、型別斷言 在 Golang 中,所有型別都實現了 interface{} 這...
有時候你可能想分割來自通道的多個值,以便將它們發送到兩個獨立區域。想像一下:你可能想要在一個通道上接收一系列操作指令,將它們發送給執行者,同時記錄操作日志。與U...
今天我們把的範例整理一下,首先先把操作Google Cloud的部分移到adapter 首先,我們在adapter建立資料夾google,並建立oauth....
一、本篇提要 本篇要示範的是,Go語言運用套件的重要性,並說明如何讓程式更好維護、更有組織等,在這個主題之下將理解,套件如何定義、套件內名稱匯出方式、替套件建立...
一、本篇介紹 泛型 generic 型別斷言 type assertion 與 switch 什麼時候該用泛型 ? 二、泛型 generic 其實inter...
Go web frameworks and HTTP routers 雖然我們可以使用標準的**net/http**套件來實現這些API,但使用現有的網頁框架會...
一、本篇提要 以介面為參數的函式 以介面為回傳值的函式 判斷要不要使用介面作為傳回值 空介面 二、以介面為參數的函式 本篇會透過 io.Reader 為例,...