Nic Lin's Blog

喜歡在地上滾的工程師

[Rails] 如何在 Postgres 上使用表達式索引

但因為在 where 中使用了 lower(user_name), 所以 user_name 的 index 並不會觸發,相當時白打了。在這種情況下,我們可以用 PostgreSQL 提供的表達式索引(Expression index)來建立。在 Rails 5 以前,如果我們要使用表達式索引,相當麻煩

Read more

查 Postgres 的 index 使用情况

一般來說,打了 index 都會想看成效,使用的情況如何,在 postgreSQL 內可以直接下這行指令

Read more

[Rails] 如何分析你的 SQL Query

分析 Database 的效能問題,需要知道在每個命令下,數據庫用了什麼計畫去執行這條 Query

Read more

[SQL 基本觀念] primary Key / Index / Unique 差別

PRIMARY Key(PK) (主鍵)、Index (索引鍵)、Unique (不重複鍵),index建立會占用儲存空間,資料增刪修時會異動、index 欄位長度是越短越好、index 欄位長度若是固定比變動好

Read more

[Rails] 如何高效的確定資料是否存在?

一個很常的議題是討論 Ruby on Rails 很慢,但其實追根究底起來,一般網站慢的問題痛點都在於讀取 Database 的 response time 太久,讓人有很慢的錯覺,其實不管用哪套框架,如果在讀資料的時候慢,是會對使用體驗非常差的。

Read more

Carrierwave 與 PaperTrail 的天生不合

但這兩支 Gem 有天生不合的地方,如果安裝時沒有稍微調整,等數據跑下去,發現時就會知道這是個巨坑

Read more

邏輯抽象出 service object 需注意的點

如果你遇到下列的條件,需要反思這樣的邏輯有必要拆成 service object 嗎? 這個邏輯抽象出來,只有一個地方使用,沒有複用的可能 單元測試並不好測試 當他需要從 controller 傳

Read more

在 PostgreSQL 下如何漂亮的拿到兩個欄位時間差的平均

有個需求是,對一個集合算出所有的數據中,兩個欄位的時間相減,取全部平均花費時間。

Read more

表現層的處理方式

複雜的東西其實可以搬去 service object 解決 但把資料翻譯成人能夠看的懂得東西,屬於表現層,表現層的抽象也可以用 decorator pattern 參考 https://github.com/drapergem/draper

Read more

用 Rails 5.1 + Vue.js 實做 TodoLists (CRUD)

建立帶 vue 的 rails 專案

Read more

Mac OS 執行 crontab (例行性工作排程)

新建一個來兼看 crontab 是否順利執行的文件

Read more

WatchOS 接 API 實作比特幣幣價顯示 (How to fetch JSON from URL)

因為我平常有 Ruby 開發相關區塊鏈接 API 的經驗,所以這邊我挑了 CoinMarketCap 來串接

Read more

ES6 展開運算符

這種運算符是一種速寫的語法,一開始可能不好理解,不過用上癮後就會熟能生巧了

Read more

Text View 垂直下拉關閉鍵盤 & 開啟自動彈出鍵盤

通常用到 text view 讓人可以鍵盤輸入資訊的時候,其實可以貼心的加入垂直下拉就可以關閉鍵盤的功能,因為很多 APP 打完字是沒辦法關鍵盤的,這其實滿惱人的。

Read more

更改 Status bar 的顏色

必要時,需要依照風格或是設計師不同的風格來配合,所以我們會需要更改 Status Bar

Read more