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

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

[Read More]

基礎 JavaScript ES6 和 CSS cheat sheet PDF 下載

es6-logo

Toptal Blog 看到 JavaScript Cheat Sheet: ES6 And Beyond 及另外一篇 A Practical CSS Cheat Sheet by Toptal Developers,這兩篇提供了一些 JavaScript ES6 及 CSS 的基礎寫法及教學,蠻適合前端工程師將 PDF 印出來貼在座位前面,cheat sheet 內提供的語法幾乎都是天天在用,像是在 ES2015 內 let vs var 語法差別,什麼時候要用 constlet,或 Template String,預設參數 .. 等功能,其實非常不賴。CSS 則是介紹基本的 Box Model、Selectors、Pseudo-selectors .. 等。

[Read More]

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

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

[Read More]

Golang 套件管理工具 Glide

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

[Read More]

Git Flow 與團隊合作

branching-illustration@2x

本月最後一篇投影片來介紹 Git Flow 流程該如何導入團隊,之前寫過一篇 Git branch model 文章,裡面提到該如何正確使用 branch,但是現在回想起來要導入團隊內真的是有點麻煩,也遇到蠻多問題的,後來最後只採用 Github Flow,簡單又容易理解,如果開發者很常在 Github 活動,相信對於此方法並不會很陌生。

[Read More]

來聊聊 PHP & JavaScript & CSS 的 Coding Style

Screen Shot 2016-04-20 at 11.47.45 PM

專案開始前,要決定好前端或後端各用什麼語言及制定符合團隊的 Coding Style,統一團隊 Style 是非常重要的,尤其是專案需要經過 Code Review 步驟,不要造成 Reviewer 困擾。底下寫了一份投影片介紹 PHP & JavaScriptCSS 的基本 Coding Style 及該如何透過工具來改善 Coding Style。

[Read More]

在 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

[Read More]

Docker 基礎介紹與實戰

docker

在個人開發環境或者是部署上,Docker 已經是不可或缺的工具,尤其是團隊開發上,如何用 Docker 統一團隊開發環境,減少團隊成員浪費在環境建置及開發上互不影響,底下來看看投影片大綱:

[Read More]

在 WordPress 內寫 Markdown 語法

Markdown 還沒出來之前,要寫一篇部落格教學真的非常麻煩,尤其是要學習 html 語法及如何引用程式碼在文章內,Markdwon 的出現,改變了整個工程師寫 Blog 的習慣,現在不管使用任何網站,沒有支援 Markdwon 語法,真的就不太想留言或發文了。最早以前自己的部落格是用 WP-Markdwon 這套 Plugin,但是這套 Plugin 在整合 SyntaxHighlighter Evolved 的時候根本無法使用,需要特定的語法才可以使用。WP-Markdwon 有個好用的工具那就是 editor tool bar,幫你省下製作 hyperlink 的時間,會自動幫忙編號,如果沒有 SyntaxHighlighter 需求,我個人是推薦用 WP-Markdwon。

[Read More]

用 gofight 來測試 golang web API handler

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

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

[Read More]