golang

多開 Goroutine 的效能瓶頸以及 Garbage Collection 對其的影響

category: random     9 minute read     Posted on:

Preface Goroutine 作為 Golang 的一大特色 其輕量且快速的特性,使得其的開銷相比 process 以及 thread 要來的低上許多 因此人們往往會將 Goroutine 用在非同步的操作上,比如說 I/O 或者是 CPU-bound 的操作 用以達到併發的效果

Kubernetes 從零開始 - 在分散式的世界實現 Zero Downtime 路由管理

category: kubernetes     16 minute read     Posted on:

Proxy Proxy 是一個中間人,負責處理 client 與 server 之間的溝通請求 相比於 client 直接與 server 溝通,Proxy 的優勢在於可以進行流量控制、負載平衡、安全性控制等 他可以分為兩類 Forward Proxy 以及 Reverse Proxy

神奇的演算法 - 為什麼你的 Priority Queue 那麼慢!

category: algorithm     4 minute read     Posted on:

Introduction to Priority Queue 針對需要存取一個陣列內,最大或最小值的方法,常見的第一直覺是 sorting 但每次存取每次排序顯然不好,於是有了 Priority Queue 這個資料結構

DevOps - 詳解 Mock 概念以及如何 Mock HTTP Request

category: devops     2 minute read     Posted on:

Test Double 雖然常常講要 mock 這個 mock 那個 不過人家的正式名稱是 Test double(測試替身)

Kubernetes 從零開始 - 如何在 MicroService 架構下,跨服務找出 API 效能瓶頸

category: kubernetes     7 minute read     Posted on:

Define Observable System 服務其實不太可能是完全穩定的,總會有一些問題發生 不論是 application 自身的 bug 還是因為 cloud provider 主機異常掉線 這些問題都會對服務造成影響

資料庫 - 大型物件儲存系統 MinIO 簡介

category: database     8 minute read     Posted on:

Brief Large Object Storage System 檔案儲存在現今電腦服務中一直扮演著相當重要的角色 舉例來說,你的大頭貼會需要一個地方儲存 我記得我在學校學習的時候一般來說有兩種做法 上傳到伺服器當中的檔案系統內做儲存,資料庫內寫入存放路徑即可 直接以二進位的方式存入資料庫中

實際上手體驗 Golang DI Framework 之 Uber Dig

category: random     4 minute read     Posted on:

Uber/dig uber/dig 是一套基於 reflection 的 Dependency Injection Framework 意思是我們不需要手動指定依賴,而是透過 reflection 來幫我們自動找出依賴,依靠框架管理

資料庫 - 新手做 Data Migration 資料遷移

category: database     7 minute read     Posted on:

Preface 資料搬遷,在現代軟體服務當中屬於較為常見的一種需求 不論是單純的機器之間的搬資料抑或者是因應商業邏輯而需要做的資料搬遷等等 都是屬於 Data Migration

Goroutine 與 Channel 的共舞

category: random     13 minute read     Posted on:

Preface 在了解 Channel 之前,我們需要先了解一些基本的概念 如果你已經很熟悉這些概念,可以直接跳到 Introduction to Golang Channel 部分

網頁程式設計三兩事 - 萬惡的 Same Origin 與 CORS

category: website     5 minute read     Posted on:

Preface 我最初遇到 CORS 的問題是在我的個人部落格上面,因為我引用了其他網站的圖片 某一天我突然發現圖片跑不出來了? 思來想去我應該也沒有改到程式碼才對 後來看了一下發現好像是 CORS 的問題 所以今天要來講講 CORS

網頁程式設計三兩事 - 不一樣的驗證思維 JWT(JSON Web Token)

category: website     11 minute read     Posted on:

Authorization 開發 API 的過程當中,我們提供了很多功能,其中可能包含較為隱私的功能(比如說,修改密碼,查詢個人資料等等的) 這個時候,你不會希望別人隨便修改你的密碼對吧? 所以就必須要驗證你的身份

Goroutine 與 Golang Runtime Scheduler

category: random     16 minute read     Posted on:

Process, Thread and Coroutine Process Process 是跑起來的 Program, 它擁有自己的 memory space, system resources 以及 system state 在系統開機之初,init process(pid 1) 被建立之後,就可以透過 fo...