ScaleDrone Websocket 平台從 Node.js 轉換到 Golang

Go-brown-side.sh 又看到一間網路平台公司從 Node.js 跳到 Golang 了。ScaleDrone 是一間提供了 websocket 服務的公司,讓 web 可以透過 ScaleDrone 即時將訊息傳播到各種瀏覽器,但是今天看到 ScaleDrone 即將把後端平台使用的語言從 Node.js 轉換到 Golang,為什麼要轉語言呢,官方提到大量的 Websocket 連線,讓伺服器記憶體快吃不消了,然而 ScaleDrone 用 Go 語言來實際測試,發現記憶體不但沒有增加,反而還降低了 response 及 connections 時間。底下是針對 Node.js vs Go 語言轉換比較。 Continue reading “ScaleDrone Websocket 平台從 Node.js 轉換到 Golang”

在 Github 專案內搜尋 Golang 函式,Golang 開發者必裝 Chrome Extension

Go-brown-side.sh 在 IDE 編輯器我們可以用內建的 go to definition 直接跳到該函式,但是身為工程師,每天接觸最多的就是觀看 Github 程式碼,有沒有什麼方式可以透過 Web 介面直接搜尋專案內 Golang 所有函式,讓 Golang 開發者快速跳到該函式,這時就要來安裝 Sourcegraph Chrome extension for GitHub 啦。 Continue reading “在 Github 專案內搜尋 Golang 函式,Golang 開發者必裝 Chrome Extension”

Golang 套件管理工具 Glide

Go-brown-side.sh 套件版本管理已經是各大語言不可或缺的工具,像是 Node.jsnpmPHPComposerRubyRVM 等…,都已經發展很成熟了,但是在 Golang 語言呢,在 Go 1.5 以後的版本,可以透過 GO15VENDOREXPERIMENTGlide 來管理套件版本,在 Go 官方網站也有整理一份 Wiki,開發者可以選一套適合自己的來使用,而今天要介紹這套 Glide,在開始之前,大家先來了解 Go 提出的 vendor experimentContinue reading “Golang 套件管理工具 Glide”

在 linkit smart 7688 寫 golang

7688_7688duo 很高興 Mediatek 在去年推出 linkit smart 7688 開發版,你可以把 7688 想成是一台迷你型 Router,如果不來拿開發,也可以當家用 Router 也是不錯的。7688 讓開發者可以在上面寫 Node.js, Python 及 Native C,光是聽到 Node.js 就很興奮,用 JavaScript 控制硬體。但是本篇要介紹如何在 7688 執行 Golang 程式,其實不難,只要把 OpenWrt 支援 gccgolibgo 即可。底下步驟同步於我的 Github Repo Continue reading “在 linkit smart 7688 寫 golang”

用 gofight 來測試 golang web API handler

Go-brown-side.sh

身為一位後端工程師,如果專案初期階段不導入測試,等到專案越來越大時,您就會發現,解了一個 bug,又產生好多個額外 bug,讓產品一直處於不穩定狀態。後端最主要提供前端或手機端 RESTFul API,所以今天來介紹一套 gofight 工具,用來測試 Golang 的 http handler,讓開發者可以送 Form, JSON, Raw 資料,後端處理後,可以拿到 response 資料,透過 Testify 來測試資料是否符合需求。

目前大部份的 Golang Web Framework 都可以透過 gofight 來測試,除非作者有把 ServeHTTP 改成自己定義 Response,不然基本上都是可以支援的,我自己測試了 Gin, Mux, HttpRouter 都是可以使用的,底下來看看 gofight 該如何使用。

Continue reading “用 gofight 來測試 golang web API handler”

在 MAC OS 快速又簡單安裝 Docker 環境 – dlite

Go-brown-side.sh

Mac OS X 底下安裝 Docker 服務不難,只需要到 Docker Mac 教學網站下載 Docker Toolbox,就可以使用 docker-machine, docker, docker-compose 等指令操作 Docker 服務。本篇提供另外一種工具,讓 Mac 開發者可以快速使用 Docker 服務,就是這套用 Go 語言寫的 dlite 工具。

Continue reading “在 MAC OS 快速又簡單安裝 Docker 環境 – dlite”

TJ 的新作品 frontend boilerplate 前端工具整合

github-logo

今天突然看到 TJ 開了一個新 Repo 是 frontend boilerplate 嚇到我了,自從 TJ 去年發表要轉向 Go 之後,就把他自己很多的 Node.js Project 轉給其他人維護,也漸漸沒在 Github 上面活動,但是今天又看到她整理了一份 frontend boilerplate,內容含了現代流行的前端開發工具,大家可以參考看看,是個不錯的 Template:

期待 TJ 能有其他新作品啊。