偶爾會看到鏈式寫法,但實際上自己寫package的時候,還不曾這樣玩過,這篇講解所謂的鏈式寫法,以及拿decimal package稍微做分析範例。 說明 在...
前情提要 昨日我們走過 newproc1 函式的最開頭部份;順利的情況下,能夠取得一個新的 G。 使用 gdb 驗證 我們將斷點設在 runtime.newp...
LDFLAGS Go可以在編譯時期透過LDFLAGS來給程式中的變數賦值.例如 編譯時給GIT版本訊息、給版號、給某種secretKey,或者是正式環境的sql...
大家好,今天是鐵人賽第二十九天。終於快結束啦,倒數一天就來談談單元測試吧。 我雖然是資訊相關科系畢業,但是學校沒有教寫單元測試,上一間公司也不寫單元測試,因為上...
前情提要 昨日我們都在爬梳註解與其他資料,企圖從比較鳥瞰的角度去觀察排程器與 GO 的系統模型。 acquirem 和 releasem(在 runtime/...
前幾篇我們介紹過怎麼打包成 Docker image,但是今天看了一下,發現 image 大小居然超過 500 MB,明明檔案不大,可是 image 大小卻這麼...
interface的介紹會在這篇先告個段落,因為一個精美的golang底層source code,主體和主體的介接和設計,不是光用interface就能一口氣解...
API文件 每位後端RD, 在寫WebAPI時,一定覺得寫扣還要維護API文件, 是件很繁瑣但又重要的工作. 不寫, 前端或者串接的人照三餐來問.寫, 又很花...
大家好,今天是鐵人賽第二十八天。今天繼續講反射。 反射值 反射除了可以獲取變數的型別資訊外,也可以獲取變數內部的值。 反射值的方式有兩種: 先取出空介面,再用...
前情提要 昨日我們簡單路過 systemstack 函式之後開始了 newproc1 函式。 暫停回顧 P-M-G 關係 雖然在第 10 天時有簡單介紹註解中...
回顧 筆者直到到半年前為止,開發的內容幾乎是圍繞在平台的部分,後來才踏入遊戲這塊。 平台與遊戲著重的業務處理,明顯有不同的重心,因為平台的業務處理重點在於資料,...
gRPC vs HTTP API 來源 gRPC gRPC是Google基於HTTP/2跟Protobuf所設計出來的RPC(Remote Prcedur...
大家好,今天是鐵人賽第二十七天,我們來談談Go語言的反射。雖然說使用反射會降低效能,但也要是很大量或頻繁的使用才會有感。如果要製作一個靈活的套件或是底層模組,反...
前情提要 昨日我們以相當貼近記憶體的方式看完了 newproc 函式,主要是在兜出後續呼叫所需要的參數,為接下來的 systemstack 呼叫作準備。 進入...
重新斟酌內部結構設計 重新再思考一下,外面的struct,裡面是否真的有需要放個struct。 筆者認為,屬於struct內部的變數,放什麼型態都可好處理,除了...
WebSocket WebSocket(簡稱ws), 在2011年標準化成RFC6455. WebSocket最新支援版本的查詢.目前最新版本為13. 跟以...
大家好,今天是鐵人賽第二十六天。通道可以讓多個goroutine的資料同步,不過go語言其實還有其他的同步機制,像是鎖定(lock)。所以今天就來講go語言還有...
前情提要 昨日開始了 newproc 函式,概念上應該是要準備一個新的 goroutine 準備執行?通常是用在 go statement 的生成,但是這裡是...
生硬的結構 如果外面的struct裡面是包struct,在宣告出來了時候,裡面的struct是定死的,變數就是指定要宣告時的struct型態。 如下所示 //...
網頁或者是業務上總是會需要讓客戶上傳點檔案的.像是大頭照、履歷檔:)、謎片:)、帳單PDF 以前Node我都是用Multer在處理這部份.這次來寫看看Gin的檔...
大家好,今天是鐵人賽第二十五天。昨天介紹了通道的基本用法,我覺得通道是一個很複雜的東西,用不好很容易 deadlock,而今天就繼續來講通道的其他特性。 有緩衝...
前情提要 昨日終於結束了 schedinit 部份,主要是追 gcinit 函式,還有從比較抽象的角度瀏覽了一些垃圾回收的機制。 退回一層 回到我們之前所在的...
這幾篇沒有打算從頭教學golang的interface怎麼使用,網路上的範例和資料隨處可見,多多參考不同的見解,就可以對interface有相當的認識,筆者就不...
Health check 是包在 toolbox 模組裡,開發小組說 toolbox 是借鏡 Dropwizard 所建立的。 Health check 主要是...
在實務上, 也不會只有做WebApi專案.也會有做WebServe的專案, 差別在那 ??最顯著的差別就是有沒有View.Gin有提供載入View並且把參數給填...
大家好,今天是鐵人賽第二十四天。Go語言的goroutine可以併發,提高程式運算效能,但還需要配合通道的使用,才能發揮最大的效益。 今天就來講go語言的通道,...