React.js - 離開 vue 的我,和從前的 react 夥伴往 useState Lazy Initialization 邁進在有需求時發現的新知識,總是特別難忘! 在 react 專案效能調整上,發現了最基礎的玩意。 前言 因爲工作使用 React 開發,對於許久沒碰的我來說,難免錯過了許多好料。 這篇的原由是有一次「質疑」現有專案的寫法: const [list, setList] = useState(() => getList()); 閱讀他人的代碼,先質疑,再理解。這也是一種成長的方式。 仔細查了,才發現原來這叫做「useState Lazy Initialization」。 回到最基礎的文件上,可以找到...Feb 4, 2025 · 3 min readblog.robby570.tw
JavaScript - 我獨自升級 substr在加入了陳年專案維護中獲得了新知識。 前言 最近工作派發了一些 Legacy Code 專案翻修,難免會遇到一些 deprecated 的方法。 面對這些陳年代碼,最大的敵人往往都是疏忽了商業邏輯以及代碼可讀性。 本篇重點不在於介紹 substr, substring, slice ,想必大家都略懂這方法。 如果使用冷門特性,你一輩子都會記得寫註解對吧!? 這一篇的角度在於筆者對 Legacy Code 進行 String.substr() 重構的思路。 從「維護性」與「效能」的之間...Jan 31, 2025 · 3 min readblog.robby570.tw
Git - 在工作與私人專案中來回切換 SSH將 SSH 分不同的帳號配置! 在悠閒的假日,最快樂的便是探索新技能~ 前言 筆者 MacBook 拿來混雜工作與私人開發用, 因此經常有不同的 Repository 須對應不同的 Github Account。 如果沒設定好 SSH,就會被終端機嗆: ERROR: Permission to explooosion/nuxt3-boilerplate.git denied to robbywu-work. fatal: Could not read from remote repositor...Jul 8, 2023 · 2 min readblog.robby570.tw
TypeScript - 在 interface 中理解 Pick, Omit, Partial, Intersection Types關於 interface 的特性應用! 又是值得探索 typescript 的日子 ~ 前言 平常專案的開發上使用都 TypeScript,但其實用的範圍很淺,沒有太多的琢磨。 而近期在重構撰寫上心中冒出了一些問題,這些問題其實蠻新手向的。 這篇文章最感謝 ChatGPT,在指引下找到關鍵字,進而翻閱到官方文件。 好耶! 本篇非常淺薄筆記用途,如果讀者有更多的興趣,可以直接參見官方文件: https://www.typescriptlang.org/docs/handbook/utility-...Jun 24, 2023 · 3 min readblog.robby570.tw
Nginx - 405 not allowed ft. CloudflareNginx 405 not allowed 解決方式 修正 nginx 出現 405 方法拒絕 前言 本篇的錯誤發生於 cloudflare 設置 DDoS Protection 機制後發生 在 cloudflare 經過此機制後會向 server 發送 POST 事件 由於 nginx 預設禁止靜態資源配置 POST 請求 因此發生禁止的 Response 設置 將 nginx 設置關於 error_page 的捕捉 [ default.conf ] server { listen...Oct 8, 2021 · 1 min readblog.robby570.tw