[Rails] 預設不載入所有 helper

在 Rails 裡,我們如果在 UsersHelper 裡定義一個 method 在 ItemsController 的 view 裡也可以使用,Rails 預設已經幫我們載入了所有 helper 不過這樣在某些情境下,可能會造成困擾 例如有好幾個 helper,裡面都有相同名稱的 method 這樣在使用的時候,就沒辦法指定所要使用的是哪隻 helper 除非在 method name 加上一些 prefix 調整 helper 載入設定 如果遇到上述情境,可以在 Rails 的 »

[Algorithm] Fibonacci numbers (費波那契數列)

Fibonacci numbers 說明 以下轉自維基 斐波那契数列 費氏數列由0和1開始,之後的斐波那契數就是由之前的兩數相加而得出。首幾個斐波那契數是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233……(OEIS中的數列A000045) 特別指出:0不是第一項,而是第零項。 範例程式碼 Ruby 範例 附上 Ruby 的 online sandbox,有興趣可以把 code 貼進去玩玩看 def fibonacci(num) »

[Algorithm] Binary Search (二分搜尋法)

Binary Search 說明 以下轉自維基 二分搜尋演算法 在有序陣列中搜尋某一特定元素的搜尋演算法 搜尋過程從陣列的中間元素開始,如果中間元素正好是要搜尋的元素,則搜尋過程結束;如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中搜尋,而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為空,則代表找不到。這種搜尋演算法每一次比較都使搜尋範圍縮小一半 每次都從中位數切半,尋找有沒有包含指定數字 範例程式碼 Ruby 範例 附上 Ruby 的 online »

[Algorithm] Selection Sort (選擇排序法)

前言 因公司業務受疫情影響, 在 7 月中解散工程團隊 至今也休息了一個多月 最近開始複習一些經典演算法, 順便做個筆記 Selection Sort 說明 以下轉自維基 選擇排序 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 簡單說就是,將資料分成已排序、未排序 由未排序中找最小值(or 最大值),加入到已排序部份的末端 最後已排序結果會是由小到大(or »

實作分頁 query 的正確知識

在實作分頁 query 時, 比較常見的思路是使用 SQL 的 LIMIT and OFFSET 取出一個區間的資料 SELECT * FROM table_name LIMIT 10 OFFSET 40; 但這種做法在資料量大時, 每次 request pagination 時 會對資料庫進行 Full Table Scan (insert、delete 可能同時發生) 把不必要的資料也一起搜尋出來, 造成效能問題 更好的做法是使用 primary key (通常是 id), 作為 where »

正則表達式

前陣子在寫 chrome extension 很常用到 不過太久沒寫 regex, 寫起來很卡 找到幾篇不錯的文章, 記錄一下以便複習 Read This If You Don’t Know Enough About Regex Regular Expressions for Regular Folk »