Travis 是在 Github 上常用的整合測試服務,支援了各種程式語言 Golang, PHP, Node.js ..等測試及部署,也同時支援了一些常用 Service,像是 Docker, Redis 或 Database。這次來聊聊在 Travis 如何使用 Docker,在 Travis 內建的 Docker 跟 docker-compose 版本都是非常舊,所以使用預設的 docker-compose 指令常常會出現 (詳細 build log 可以參考這裡)
[Read More]新的 code coverage 線上服務 codecov.io
代碼覆蓋率 (code coverage) 是開發流程蠻重要的一環,用來評估專案內測試的覆蓋率,也代表了自己寫的程式,至少要測試過一次。在 Github 上面最常用的一套就是 Coveralls 相信大家對於此服務並不陌生,一個好的 Open Source 專案一定會在 Readme 上附上 Coveralls badge,證明自己寫的專案都有經過測試,請安心使用。在導入 Coveralls 服務到專案內時,安裝步驟有點小複雜,雖然不難,但是還是需要安裝一些 Tool 才能完成,底下用 Golang 為例。
[Read More]用 Docker 改善團隊合作模式
今年第一次參加 iThome 舉辦的 DevOps Summit 研討會,這次舉辦在台北文創大樓,就是在大巨蛋隔壁,很高興今年第一次投稿就錄取,題目是『用 Dokcer 改善團隊合作模式』,主題偏向如何用 Docker 改善個人或團隊的開發狀況,尤其是在 IC 或系統廠如何導入 Docker。研討會上沒有提到很深入的 Docker 應用,在投影片內強調的是,如何將 Git 及 Docker 帶入團隊內不同角色,包含 QA 及 PM,讓大家在團隊合作上能夠各自獨立,不會互相影響。底下就是我今年的投影片:
[Read More]感謝老婆 Yisin 這一年來的辛苦
去年 8 月底,老婆辛苦生下可愛的兒子,在這一年內老婆很辛苦的把兒子養的白白胖胖,原本只需要照顧我這個大小孩,現在多一個小皓需要照顧,真的非常辛苦,今天是老婆的生日,在這裡祝老婆生日快樂,希望您可以天天都開心,也可以身體健康。最後要跟老婆說聲謝謝這一年來的辛苦,當媽媽真的很偉大,什麼事情都是一肩扛下,對小孩也是非常有耐心,希望未來我可以帶給你更多的快樂。
[Read More]用一行指令加速 npm install
不久之前寫過一篇 提升 npm install 安裝速度,但是發現速度還是沒有變快,在 DevOps 的流程花在 npm install
的時間非常冗長,造成每次測試或 Deploy 都要花大量時間等待,且吃掉很多機器的資源,本篇要提供一個小技巧改善 npm install 安裝時間,其實簡單來說就是 cache 第一次安裝好的 node_modules
目錄,之後每次安裝就拿 cache 目錄來新增或減少 packages 即可。
在 Docker 偵測 MySQL 或 Postgres 是否啟動
監控 Service 是否存活也是 DevOps 重要的一環,此篇來紀錄在 Docker 內偵測 MySQL 或 Postgres 是否已經啟動。在 Docker 自動測試內,其中一步就是建立 Database 環境,底下為測試步驟:
[Read More]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 下載
在 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
語法差別,什麼時候要用 const
或 let
,或 Template String,預設參數 .. 等功能,其實非常不賴。CSS 則是介紹基本的 Box Model、Selectors、Pseudo-selectors .. 等。
在 Github 專案內搜尋 Golang 函式,Golang 開發者必裝 Chrome Extension
在 IDE 編輯器我們可以用內建的 go to definition 直接跳到該函式,但是身為工程師,每天接觸最多的就是觀看 Github 程式碼,有沒有什麼方式可以透過 Web 介面直接搜尋專案內 Golang 所有函式,讓 Golang 開發者快速跳到該函式,這時就要來安裝 Sourcegraph Chrome extension for GitHub 啦。
[Read More]