Nic Lin's Blog

喜歡在地上滾的工程師

淺談 Active Record 的 Lazy load 特性

Active Record 回傳 relation 時其實是 lazy load,因為這樣一來可以保留其彈性及可擴充性,能夠在 hits database 之前組合出更複雜的 query。

Read more

Rails 專案搭配 Github Actions 進行 RSpec 自動化測試

現在 Github 自己也推出了 CI 工具,這裡整理出一個簡單的流程來跑 Rails 專案的自動化測試

Read more

JavaScript 中 require, import 的差別及效能

簡單說差別:import 是編譯中執行,CommonJS 的 require 是同步加載

Read more

React 效能優化基本招

會慢基本都是慢在 render function,如果巢狀 components 從父節點開始重新渲染,導致下面的子節點跟著重新 render 就會不必要的效能浪費。

Read more

ES6 箭頭函式 (Arrow functions)

很多人箭頭函式寫久了卻不清楚和一般 function 的差異在哪,大概能記得的就是簡潔好寫這樣。

Read more

2 個月擁有 6000 用戶 Side project 這樣做(三)

好的產品定義是什麼?對我而言,就是能夠「解決問題,讓用戶成為想要的自己」。

Read more

2 個月擁有 6000 用戶 Side project 這樣做(二)

如果用戶的痛點,也是我的痛點,那是不是就可以試著治療一下?

Read more

2 個月擁有 6000 用戶 Side project 這樣做(一)

很多人都說要寫 Side project,那麼,到底要如何開始呢?

Read more

如何讓自己成為失敗的軟體工程師

身為軟體工程師,在職業生涯的發展中,怎麼樣算是失敗呢?你以為資歷十年的工程師,其實是一年的經驗重複了十次。

Read more

如何在 Jenkins 上用 Docker 跑 Rails + Rspec 做 CI

基本上要跑 Rails CI 通常有很多第三方服務搭 integrate 可以做到,但如果你遇到和我的環境類似,也許你可以考慮自己把 Rails 專案用 Docker 包起來後丟到 Jenkins 上去跑。

Read more

如何用 Rack::Attack 阻擋 DDOS / 惡意流量

基本上開發 Rails 有在接 error monitoring(Airbrake、Rollbar)或是最基本有在看 Log 的應該都會知道網站一上線後,就會有些不尋常的流量,像是會有人來猜後台網址、夾帶和一般使用者不一樣的 params

Read more

用 OpenSSL 自簽開發用 HTTPS SSL 憑證

有時開發用或是自己防火牆內要用 HTTPS,就會需要用到自己簽 SSL 的部分

Read more

以 OOP 的角度提升 Ruby code 質量

基本上軟體工程常言道:「高內聚,低耦合」的理想目標,這其中的定義拿捏沒有可以直接量化的標準,通常也依團隊開發習慣為準。

Read more

不停機 migration 避免鎖表的幾種操作

基本上在商業應用中,我們會盡可能的避免停機操作,試想光 CloudFlare 因為 bad deploy 當機幾分鐘至一個小時就會引發一連串的災難,在商場上每分每秒都是錢,為了避免不必要的損失,軟體工程常常會面臨到所謂的 zero downtime 操作。

Read more

為機器加上登入訊息,在 ubuntu 設置登入歡迎詞

自製歡迎訊息,有時候機器多了,為了避免分不清楚 staging / production 會操作錯誤,所以有幾種作法

Read more