Nic Lin's Blog

喜歡在地上滾的工程師

用 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

Ruby Memoization 性能優化之記憶化

基本上是對「函數」的一種快取(Cache),能夠在執行一次調用後將結果快取下來,避免在第二次調用時再次花費計算成本。

Read more

淺談 SSH agent forwarding 和 proxy command 的安全風險與應用

SSH agent forwarding 可以讓我們透過跳板機連上另一台伺服器時,省去把私鑰複製上 server 或是需要輸入密碼的功夫。

Read more

[Rails] Service / Library / Concern 的差異

專案到中後期長大時通常會開始整理 fat model,但 code 到底要怎麼重構才會比較好呢?

Read more

Ruby conf Taiwan 2019 參與筆記

然而這篇筆記是記錄我在 Ruby Conf TW 2019 聽的 session,內容主要會是蒐集各個講者可能在其他地方講過的相關 video、slider,以及自己的收穫和理解。

Read more

避免過度的 Defensive Programming 防禦性程式設計

避免 Overly Defensive Programming,請用 Fail-fast 來增加找到錯誤的效率。

Read more

Rails 要用 Time.zone.now 還是 Time.now

Time.now 抓的是機器時間,Time.zone.now 抓的是 Rails 下設定的 config.time_zone 時區,而時間的格式應該仰賴在 application layer, 這樣更容易保持一致性

Read more

Rails i18n 小技巧總匯

i18n 這個看起來完全不難的東西,實際上碰到很多需求時會發現,啊好麻煩啊,一下要插 html 一下字太多,但是在這些場景其實可以有更優雅的解法。

Read more

1:1 攪亂器,如何用 Ruby 做可逆推序號

只有最後一個可以靠前兩個推算,所以一開始的任務先找出最大值和任一質數就能反推。

Read more

Rails 中的欄位及方法命名原則

Ruby / Rails 本身就有一些基本的慣例及約定在,只要熟悉這個規則通常都能夠寫出易懂易維護的程式碼。就像我們呼叫 `created_at` 欄位時,腦袋會默認他就是 `datetime`,而不會是 `string` 以下是一些常用的慣例,分別是 Database column name、Method name、Library name

Read more

[Rails] 用 puma-dev 作為本地開發伺服器 (支援 https 自簽憑證)

一次要開發多個專案時,用 puma-dev 節省掉我很多時間,網路上的文章並沒有很齊全並簡單的教你如何使用這些常用的眉角,所以這篇算是 Puma-dev 全攻略,從安裝、重啟、設置自簽 https 憑證到 Log 查看。

Read more

我的中高階 Rails 工作面試心得分享

這篇文章的面試時間 2018 年 10 月至 2018 年 12 月,在此之前還有我的成長記錄,前面兩次的面試經驗,依序排列從新鮮人到有點經驗的過程。

Read more