JavaScript 避免輸入法選字觸發 Enter 事件的方法

 作者 Puck Wang |  建立於 2024-05-26 22:52  |  更新於 2024-05-26 23:28  |  版本 c3a77a1  |  分類: 問題解決 |  標籤: NodeJs, JavaScript, TypeScript, HTML

在寫前端時,有時候會遇到需要在 Input 上偵測 Enter 事件來提供特殊功能,像是搜尋的 Input 可以增加 Enter 執行搜尋。

在使用 event.key 去判斷是否為 enter 時,應該會遇到輸入法選字也會誤判的問題。

Continue Reading...

關於編碼 (Encoding)、加密 (Encryption)與雜湊 (Hashing)

 作者 Puck Wang |  建立於 2024-05-19 12:14  |  更新於 2024-05-19 14:05  |  版本 d634e03  |  分類: Software Development |  標籤: Encoding, Encryption, Hashing

常有人會把「編碼 (Encoding)」、「加密 (Encryption)」以及「雜湊 (Hashing)」這三者混淆,甚至是誤用。

作為軟體開發者,應該對這些基本的資料處理技術有簡單的理解,否則開發出來的軟體很容易出現資安問題。

Continue Reading...

為 Yup 自訂驗證加上支援 Typescript

 作者 Puck Wang |  建立於 2022-05-02 14:11  |  更新於 2022-05-02 14:35  |  版本 317d3c7  |  分類: 軟體開發 |  標籤: Front-end, 資料驗證, Yup, Typescript

我們在使用 Yup 時,很常會使用 Yup.addMethod 來新增自訂的驗證方式,但如果專案是 Typescript 的卻沒有加上適當的 Type,會使編譯時出現錯誤。

這時候我們為加上正確的 Type,不只不會出現錯誤,使用上也更方便。

Continue Reading...

使用 Git Bisect 快速找到第一個有問題的 Commit

 作者 Puck Wang |  建立於 2021-04-19 03:34  |  更新於 2021-12-12 06:36  |  版本 bfd595b  |  分類: 版本控制, Debug |  標籤: Git
Git log
Git log

現在專案很常使用 Git 作為版本控制系統,所以在遇到 Bug 找不到是哪裡出錯時,可以藉由找出第一次出錯的 Commit 來找到問題原因。

但在大型專案中,全部 Commit 可能達上千筆,如果遇到很久沒發現的 Bug,就可能會發比較久的時間去找是哪個 Commit 出問題。

常見的可能會看 Commit 訊息來反推可能有問題的 Commit,或是用最笨的方法一個個往回找,這樣效率都不太好。

利用 Git 內建的 Git Bisect 來使用二元搜尋的方式來找有問題的 Commit,就可以大大提升效率。

Continue Reading...

Jenkins Pipeline Stages 平行處理的寫法

 作者 Puck Wang |  建立於 2021-03-13 11:47  |  更新於 2021-12-12 06:36  |  版本 bfd595b  |  分類: CI/CD |  標籤: Jenkins, Pipeline, Parallel, 平行處理
Jenkins Pipeline Parallel Example
Jenkins Pipeline Parallel Example

Jenkins Pipeline 在執行 Stage 時,某些情況使用平行處理可以節省很多執行所需時間,本文將會介紹幾種平行處理的方法。

你可以在官方文件中看到 ParallelMatrix 兩種實現平行處理的方法,而我除了這兩個外還會在多介紹一個利用 Parallel 去實現動態 Stage 的方法,這也是很常在網路上看到的問題,可以更靈活地去運用 Parallel。

Continue Reading...