InDean Linby林鼎淵GitLab CI 實戰(踩坑)筆記GitLab CI 是 GitLab 的內建工具,每次 Push 都會觸發一次腳本執行,內容通常涵蓋測試、編譯、部署等一系列自定義內容。 這篇文章會分享設計上要注意的細節,以及實戰過程踩過的坑。Dec 2, 2024Dec 2, 2024
林鼎淵用 tree 套件生成專案樹狀的資料夾(目錄)結構隨著專案迭代,除了程式碼越來越龐大外,資料夾結構也越來越複雜。這邊推薦一個直接產生資料夾結構的套件「tree」,透過簡單的指令就能生成樹狀的目錄結構。Jul 11, 2024Jul 11, 2024
InDean Linby林鼎淵MongoDB 與 MySQL 建立 Index 對 Read/Write 的效能影響儘管網路上有許多資料顯示 MongoDB 建立 Index 後的效能比 MySQL 好,但這篇文章我想要透過程式來驗證兩者的寫入、讀取、資料大小差異。May 25, 2024May 25, 2024
InDean Linby林鼎淵當資料庫遇到瓶頸,你會如何處理? ── 下班有約系列文除非真的撐不住了,否則我覺得應該沒幾間公司會想換資料庫。 今天跟大家分享一個資料庫遇到瓶頸必須遷移的的案例。May 22, 2024May 22, 2024
InDean Linby林鼎淵Node.js + worker_threads 多執行緒實戰範例一般狀況下 Node.js 為單執行緒,如果同步執行時遇到「阻塞」的程式,後續要執行的程式就會全部被卡住;為了解決這個問題, Node.js 在 v12 推出了 worker_threads,這個 Module 讓 Node.js 可以做多執行緒的平行處理!Oct 20, 2022Oct 20, 2022
InDean Linby林鼎淵forEach 跟 for 有什麼差異? ── 感覺很像又不太一樣的迴圈在認識 forEach、map 這類高階函數後,就比較少使用 for 迴圈了,畢竟前者寫起來更加簡潔。 但不久前有朋友遇到 Bug 跑來問我,說他程式執行的順序怪怪的,明明有寫 await,但跑起來卻不符期待;在看過程式後,我發現問題出在「forEach」這個函數。Sep 23, 2022Sep 23, 2022
InDean Linby林鼎淵JavaScript 如何讓多個 async/await 函式同時執行── 從實際案例了解 Promise.all 和 Promise.allSettled 的區別撰寫前端時,一個頁面往往需要 call 多支 API 才能完成渲染。為了等資料回傳,我們通常都會搭配 await,但有時 API 之間並沒有要求執行的順序;在這樣的情境下,如果還是採取順序執行的方案,當需要 call 多支 API 時就會浪費使用者許多時間。Sep 19, 2022Sep 19, 2022
InDean Linby林鼎淵Table Join 時,選擇文字欄位(VARCHAR)與數值欄位(INTEGER)在效能上的差異因為剛好朋友在專案的搜尋上遇到效能瓶頸,在看過程式碼後,發現他在 Table 做 Join 時都是挑選文字欄位,因此研判這應該就是導致效率低下的主要原因;為了實驗文字欄位(VARCHAR)與數值欄位(INTEGER)在 Join…May 13, 2022May 13, 2022
InDean Linby林鼎淵初探 sequelize,在 Node.js 快速建立 Migration、Seeder( MySQL)最近在尋找 Node.js 裡面方便操作 Migration、Seeder 的套件,逛著逛著發現 sequelize 在 GitHub 上擁有超高人氣;抱著踩雷的心態來嘗試,於是便寫了這篇 sequelize 的筆記,希望可以幫助到第一次使用 sequelize 的朋友們。May 13, 2022May 13, 2022
InDean Linby林鼎淵[前端&後端]工程師常犯的錯誤 — 下班有約系列文筆者跟擔任 Tech Lead 的朋友聊天時,發現在幫新人 Code Review、Code Refactoring、Bug Fix 時遇到了許多類似的問題,針對這個部分我安排了 3 篇文章做講解,今天這篇文章我挑選了幾個工程師常犯的錯誤來分享。Feb 23, 20221Feb 23, 20221
InDean Linby林鼎淵SQL LEFT JOIN only last record of right table — 4 種解決方案最近工作時剛好遇到了一個需求:「需要取得每位使用者最後的工作記錄。」使用者是一張 table,工作記錄又是ㄧ張 table;原本以為這個簡單的需求用個 leftJoin 就能瞬間搞定,結果卻搞了自己快一個晚上…因此決定把解決方案放上來,給有遇到相同問題朋友們。Jan 12, 2022Jan 12, 2022
InDean Linby林鼎淵你在 Table 建立的 Index 真的有效嗎?用範例帶你理解 Coverage Index 的意義我們會在 Table 中建立 Index 以增加搜尋的效率,但建立 Index 的同時也會影響到資料 insert、update、delete 的效率;所以我們在建立 Index 時需要抱持謹慎的態度,這篇文章將帶大家了解 Coverage Index (覆蓋索引)的意義。Aug 20, 2021Aug 20, 2021
InDean Linby林鼎淵Node.js 的 Event Loop (事件輪詢)到底在做什麼?因為網路上的教學文我大部分都有看沒有懂,只好自己實作一遍來了解他的運作機制;希望我這篇文章足夠口語化,讓讀者能輕鬆理解,如果有解釋錯誤或是不夠清晰的部分再煩請告知,謝謝。Aug 10, 2021Aug 10, 2021
InDean Linby林鼎淵解決 MySQL 主從複製的延遲問題 (Replication lag)Slave DB 上的資料從 Master DB 複製過來時會有延遲,所以會造成用戶看到舊的資訊;在過去想解決這個問題真的需要 18 般武藝,但到了 MySQL 5.7 版後官方說只要調整一個設定就能解決,具體做法讓我們看下去。Mar 29, 2021Mar 29, 2021
InDean Linby林鼎淵用 sysbench 測試 MySQL 性能 — 在 mac & ubuntu 上的安裝與使用sysbench 是我目前使用上最順手的一個測試工具,安裝、使用都非常容易,除了資料庫的測試外他還能對 CPU、Memory…做測試,本篇會詳細說明如何使用它來做 MySQL 性能測試,其他的功能可以參考文末附的連結。Mar 29, 2021Mar 29, 2021
InDean Linby林鼎淵讓你的 Postman 更專業 — Mock Server & Environments & Publish API docPostman 除了 api 的基礎驗證外,還有許多加速工作效率的功能,這篇文章你將學會建立 Mock Server,從此不再苦苦等待後端 api;如果你曾經為了測試正式機/測試機/本機而開了一大堆只有網址不同的 request,了解如何設定 Environments…Feb 25, 20211Feb 25, 20211
InDean Linby林鼎淵線上 SQL 語法測試網站(SQL fiddle、MySQL Online)當朋友問你 SQL 語法問題時如果沒有現成的資料庫真的很難幫上忙,並且也不確定自己的回答是不是真的能解決問題;今天就來介紹兩個我常用的 SQL 語法測試網站,並透過解說朋友遇到的題目讓大家快速了解網站的使用方式。Feb 26, 2021Feb 26, 2021
InDean Linby林鼎淵Laravel常用指令laravel有很多常用的指令,但有時候會忘記或是不想自己全部打完,那這篇文章就是你專門用來複製貼上的大補帖Jun 16, 2020Jun 16, 2020
InDean Linby林鼎淵Ubuntu 用 Atlas 實現 MySQL Proxy 讀寫分離 read/write splitting如果單純把 DB 分成 Master 及 Slave 並不能真正解決平衡負載問題,因為每台 server 是獨立的 ip,使用者在存取資料庫的時候並不知道要使用哪一台 server 😅;這篇文章會教你如何設定一台 Proxy server,準確地將 SQL 指令正確分流Mar 29, 2021Mar 29, 2021