<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>AndyWang′s Blog</title><description>這裡是 AndyWang 的部落格，主要記錄著我的開發經驗以及技術筆記相關文章，偶爾也會分享或討論一些技術議題。</description><link>https://andywangtw.dev/</link><item><title>2024 年度回顧</title><link>https://andywangtw.dev/blog/2024-%E5%B9%B4%E5%BA%A6%E5%9B%9E%E9%A1%A7/</link><guid isPermaLink="true">https://andywangtw.dev/blog/2024-%E5%B9%B4%E5%BA%A6%E5%9B%9E%E9%A1%A7/</guid><description>終於在吃完尾牙後，有一種今年終於結束的感覺，趁著記憶猶新來做次復盤，2024 的我也有了不少的突破與收穫，希望 2025 能夠繼續努力，還有好多想做的事情沒完成～</description><pubDate>Sat, 04 Jan 2025 00:00:00 GMT</pubDate></item><item><title>AI 時代人才新思維 - 葉丙成</title><link>https://andywangtw.dev/blog/ai%E6%99%82%E4%BB%A3%E4%BA%BA%E6%89%8D%E6%96%B0%E6%80%9D%E7%B6%AD-%E8%91%89%E4%B8%99%E6%88%90/</link><guid isPermaLink="true">https://andywangtw.dev/blog/ai%E6%99%82%E4%BB%A3%E4%BA%BA%E6%89%8D%E6%96%B0%E6%80%9D%E7%B6%AD-%E8%91%89%E4%B8%99%E6%88%90/</guid><description>2025 SITCON 議程分享「AI 時代人才新思維」，主要講述現今變化快速的 AI 時代，未來人才需要具備的關鍵特質，人才培養思維應該怎麼改變，以及現今教育的困境。</description><pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate></item><item><title>Astro 圖片優化策略</title><link>https://andywangtw.dev/blog/astro-%E5%9C%96%E7%89%87%E5%84%AA%E5%8C%96%E7%AD%96%E7%95%A5/</link><guid isPermaLink="true">https://andywangtw.dev/blog/astro-%E5%9C%96%E7%89%87%E5%84%AA%E5%8C%96%E7%AD%96%E7%95%A5/</guid><description>近期在重構部落格時，發現過去一直都有靜態資源載入的問題，例如 layout structure 先出來了，但圖片還在 loading，後來也發現其實 astro 有針對這類靜態資源做優化。</description><pubDate>Mon, 08 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Behavior Driven Development (BDD)</title><link>https://andywangtw.dev/blog/behavior-driven-developmentbdd/</link><guid isPermaLink="true">https://andywangtw.dev/blog/behavior-driven-developmentbdd/</guid><description>在開發過程中，經常會遇到一種很常見的問題：即使程式碼本身是正確的，最終做出來的成果，卻仍然和使用者真正想要的東西存在落差。這種落差通常不是技術實作的問題，而是來自於不同角色之間，對「系統行為」的理解並不一致。</description><pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Build Your Own Cursor Rules</title><link>https://andywangtw.dev/blog/build-your-own-cursor-rules/</link><guid isPermaLink="true">https://andywangtw.dev/blog/build-your-own-cursor-rules/</guid><description>Cursor 本身已經很好用了，但偶爾還是會犯下一些不太聰明的錯誤，你可以透過自訂 Cursor Rules 來降低這些錯誤的發生，讓開發體驗更舒適流暢，不必每次都來回花時間糾正。</description><pubDate>Tue, 29 Apr 2025 00:00:00 GMT</pubDate></item><item><title>CA: Data Transfer Object (DTO)</title><link>https://andywangtw.dev/blog/ca-data-transfer-objectdto/</link><guid isPermaLink="true">https://andywangtw.dev/blog/ca-data-transfer-objectdto/</guid><description>為了解決層與層之間的耦合，內部核心 Entities、Use Cases 去依賴外部格式，可能會造成今天欄位異動，連動核心需要跟著去修改，違反了依賴反轉原則（DIP），日後要擴充或是重構也是一大挑戰。</description><pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate></item><item><title>CSS 階層效能優化</title><link>https://andywangtw.dev/blog/css%E9%9A%8E%E5%B1%A4%E6%95%88%E8%83%BD%E5%84%AA%E5%8C%96/</link><guid isPermaLink="true">https://andywangtw.dev/blog/css%E9%9A%8E%E5%B1%A4%E6%95%88%E8%83%BD%E5%84%AA%E5%8C%96/</guid><description>其實CSS階層在瀏覽器上會影響效能，但因為現今電腦性能極佳，電腦跑起來可能沒有明顯差異，就算對於電腦影響看似不大，也會衍伸出程式上的管理問題</description><pubDate>Sun, 27 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Claude Code CLI：真正的 AI 開發代理人</title><link>https://andywangtw.dev/blog/claude-code-cli%E7%9C%9F%E6%AD%A3%E7%9A%84-ai-%E9%96%8B%E7%99%BC%E4%BB%A3%E7%90%86%E4%BA%BA/</link><guid isPermaLink="true">https://andywangtw.dev/blog/claude-code-cli%E7%9C%9F%E6%AD%A3%E7%9A%84-ai-%E9%96%8B%E7%99%BC%E4%BB%A3%E7%90%86%E4%BA%BA/</guid><description>近期各個 AI 都開始推出自己的 CLI 工具，像是 Cursor、Gemini、Claude，但在架構化協作、與建立完整開發流程下還是 Claude Code 更勝一籌。這篇主要紀錄我在團隊每週 AI 分享會的內容。</description><pubDate>Thu, 07 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Common Mistakes with useEffect Dependencies</title><link>https://andywangtw.dev/blog/common-mistakes-with-useeffect-dependencies/</link><guid isPermaLink="true">https://andywangtw.dev/blog/common-mistakes-with-useeffect-dependencies/</guid><description>useEffect 作為 cleanup function，是個強大的副作用處理函式，但如果加了錯誤的依賴，可能導致效能變差，或發生無法預期的行為。此外也談談一些對 useEffect 的誤解。</description><pubDate>Fri, 22 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Enemy of Clean Code</title><link>https://andywangtw.dev/blog/enemy-of-clean-code/</link><guid isPermaLink="true">https://andywangtw.dev/blog/enemy-of-clean-code/</guid><description>在現實開發中，有許多因素和習慣會成為 Clean Code 的「敵人」。這些「敵人」通常會導致程式碼難以理解、難以維護、出錯率高，最終影響團隊的開發效率和軟體的品質。</description><pubDate>Sun, 10 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Homebrew 打造簡潔優雅的開發環境</title><link>https://andywangtw.dev/blog/homebrew%E6%89%93%E9%80%A0%E7%B0%A1%E6%BD%94%E5%84%AA%E9%9B%85%E7%9A%84%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83/</link><guid isPermaLink="true">https://andywangtw.dev/blog/homebrew%E6%89%93%E9%80%A0%E7%B0%A1%E6%BD%94%E5%84%AA%E9%9B%85%E7%9A%84%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83/</guid><description>近期工作換到 MacOS 上開發，也因此接觸到 Homebrew。除了是開源之外，Homebrew 也非常容易透過 CLI 來安裝各種 Package，當需要換開發環境時，也能夠整包匯出帶到新的環境。</description><pubDate>Sat, 05 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Junior 軟體工程師面試心得</title><link>https://andywangtw.dev/blog/junior%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB%E9%9D%A2%E8%A9%A6%E5%BF%83%E5%BE%97/</link><guid isPermaLink="true">https://andywangtw.dev/blog/junior%E8%BB%9F%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB%E9%9D%A2%E8%A9%A6%E5%BF%83%E5%BE%97/</guid><description>最近面了各種 Jr. SE 的缺，有 Frontend、Backend 相關，所以想分享一下最近面試初期、中後期遇到的各種問題、面試流程，以及面試前到底應該準備什麼。</description><pubDate>Tue, 24 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Kubernetes - Deployment Strategies</title><link>https://andywangtw.dev/blog/kubernetes-deployment-strategies/</link><guid isPermaLink="true">https://andywangtw.dev/blog/kubernetes-deployment-strategies/</guid><description>在軟體業工作一陣子後，一定都會碰到 Zero Downtime 的問題，特別是在版本更新時，如何確保系統穩定、不影響使用者體驗，如何解決是 DevOps 中的重要課題。</description><pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Leetcode 96. Unique Binary Search Trees</title><link>https://andywangtw.dev/blog/leetcode-96-unique-binary-search-trees/</link><guid isPermaLink="true">https://andywangtw.dev/blog/leetcode-96-unique-binary-search-trees/</guid><description>題是經典的 Catalan Number / Unique BST 問題，給你 1～n 不同數字，問可以組出多少種不同結構的 BST（Binary Search Tree），主要想記錄一下 DP 的練習題。</description><pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate></item><item><title>MECE 金字塔原則</title><link>https://andywangtw.dev/blog/mece%E9%87%91%E5%AD%97%E5%A1%94%E5%8E%9F%E5%89%87/</link><guid isPermaLink="true">https://andywangtw.dev/blog/mece%E9%87%91%E5%AD%97%E5%A1%94%E5%8E%9F%E5%89%87/</guid><description>在許多知名企業的新人訓練或專業培訓中，都會聽過 MECE 金字塔原則，目的是提升溝通與邏輯思考能力，確保資訊的分類「不重疊且無遺漏」，幫助個人在論述時更有條理與說服力。</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate></item><item><title>MacOS 將 Docker 檢測為惡意軟體問題</title><link>https://andywangtw.dev/blog/macos-%E5%B0%87-docker-%E6%AA%A2%E6%B8%AC%E7%82%BA%E6%83%A1%E6%84%8F%E8%BB%9F%E9%AB%94%E5%95%8F%E9%A1%8C/</link><guid isPermaLink="true">https://andywangtw.dev/blog/macos-%E5%B0%87-docker-%E6%AA%A2%E6%B8%AC%E7%82%BA%E6%83%A1%E6%84%8F%E8%BB%9F%E9%AB%94%E5%95%8F%E9%A1%8C/</guid><description>近期在開發過程中，因為重新啟動了 MacOS 後一直跳出不明彈窗，顯示檢測到 Docker 包含惡意軟體，也因為這個東西搞了個大烏龍，算是個寶貴的經驗...，還是紀錄一下好了。</description><pubDate>Sat, 11 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Handling Errors Gracefully in React</title><link>https://andywangtw.dev/blog/react-error-boundary/</link><guid isPermaLink="true">https://andywangtw.dev/blog/react-error-boundary/</guid><description>錯誤處理對開發者一直都是門課題，不論系統穩定性或使用者體驗都十分重要。而在 React 16 中引入了 Error Boundaries 能夠用來捕捉渲染錯誤進而導致頁面崩潰的問題。</description><pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate></item><item><title>React 開發上的小技巧</title><link>https://andywangtw.dev/blog/react%E9%96%8B%E7%99%BC%E4%B8%8A%E7%9A%84%E5%B0%8F%E6%8A%80%E5%B7%A7/</link><guid isPermaLink="true">https://andywangtw.dev/blog/react%E9%96%8B%E7%99%BC%E4%B8%8A%E7%9A%84%E5%B0%8F%E6%8A%80%E5%B7%A7/</guid><description>平時在撰寫 React 最常做的動作不外乎就是建立元件、匯入 Hook 或其他 lib，本篇分享幾個快捷鍵加快開發的小技巧，另外也會提到幾個快捷鍵重寫變數、快速調整程式碼排版等等。</description><pubDate>Mon, 12 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Redux Toolkit (RTK) 簡化狀態管理</title><link>https://andywangtw.dev/blog/reduxtoolkitrtk%E7%B0%A1%E5%8C%96%E7%8B%80%E6%85%8B%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://andywangtw.dev/blog/reduxtoolkitrtk%E7%B0%A1%E5%8C%96%E7%8B%80%E6%85%8B%E7%AE%A1%E7%90%86/</guid><description>在 Redux Toolkit 出現前，使用 Redux 頻繁操作 state 是一件相對麻煩的事情，而 Redux Toolkit 的出現簡化了重複性流程，也提供了一些 API 減少重複性質的程式碼。</description><pubDate>Thu, 05 Sep 2024 00:00:00 GMT</pubDate></item><item><title>TypeScript 之 Generics 泛型</title><link>https://andywangtw.dev/blog/typescript%E4%B9%8Bgenerics%E6%B3%9B%E5%9E%8B/</link><guid isPermaLink="true">https://andywangtw.dev/blog/typescript%E4%B9%8Bgenerics%E6%B3%9B%E5%9E%8B/</guid><description>Generics 泛型是一種高靈活性定義行為或結構的一種方法，當你定義了不重複但有相似內容的結構時，泛型是個很好的選擇，而 JS 本身並不支援泛型，直到 TS 出現才引入泛型的特性。</description><pubDate>Fri, 20 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Using SWR for Better Data Fetching</title><link>https://andywangtw.dev/blog/using-swr-for-better-data-fetching/</link><guid isPermaLink="true">https://andywangtw.dev/blog/using-swr-for-better-data-fetching/</guid><description>傳統 API Data Fetching 經常需要依賴 state、redux 管理狀態，同時也要為效能優化去實作，如：Cache、Revalidate、Asynchronous、Dependent Fetching 等機制，但這些都可以透過 SWR 來簡化。</description><pubDate>Wed, 16 Oct 2024 00:00:00 GMT</pubDate></item><item><title>Vitest with React Testing</title><link>https://andywangtw.dev/blog/vitest-with-react/</link><guid isPermaLink="true">https://andywangtw.dev/blog/vitest-with-react/</guid><description>撰寫測試一直都是確保程式碼可靠性的一個重要環節，通常在 React 中，我們可以選擇使用 Jest 或 Vitest 根據專案需求來撰寫 Unit Test，不過 Vitest 在 Vite 專案中整合較為容易。</description><pubDate>Sat, 08 Feb 2025 00:00:00 GMT</pubDate></item><item><title>[TS] Enhancing React Views with Enums</title><link>https://andywangtw.dev/blog/ts-enhancing-react-views-with-enums/</link><guid isPermaLink="true">https://andywangtw.dev/blog/ts-enhancing-react-views-with-enums/</guid><description>在設計元件時，面對不同的情境通常會需要撰寫各種不同的表達式。一般除了使用物件來定義之外，Enums 的寫法也是一種既優雅又高效的選擇。</description><pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate></item><item><title>[TS] Set、flatMap 優化資料搜尋</title><link>https://andywangtw.dev/blog/ts-setflatmap-%E5%84%AA%E5%8C%96%E8%B3%87%E6%96%99%E6%90%9C%E5%B0%8B/</link><guid isPermaLink="true">https://andywangtw.dev/blog/ts-setflatmap-%E5%84%AA%E5%8C%96%E8%B3%87%E6%96%99%E6%90%9C%E5%B0%8B/</guid><description>最近在工作中遇到需要從複雜的資料結構中提取特定資料的問題，面對這種多層結構的資料直接暴力搜尋效能明顯不太理想，正確的方式應該是先將資料做扁平化處理，再透過更高效的搜尋策略來提升效能。</description><pubDate>Mon, 30 Dec 2024 00:00:00 GMT</pubDate></item><item><title>jQuery 濃縮精華</title><link>https://andywangtw.dev/blog/jquery%E6%BF%83%E7%B8%AE%E7%B2%BE%E8%8F%AF/</link><guid isPermaLink="true">https://andywangtw.dev/blog/jquery%E6%BF%83%E7%B8%AE%E7%B2%BE%E8%8F%AF/</guid><description>jQuery是HTML、CSS、JavaScript撰寫出來的library，用來製作動畫效果，雖然撰寫上很方便，但當程式碼龐大時會因寫法的關係較難維護</description><pubDate>Sun, 05 Dec 2021 00:00:00 GMT</pubDate></item><item><title>JavaScript 之 this 的運作</title><link>https://andywangtw.dev/blog/javascript%E4%B9%8Bthis%E7%9A%84%E9%81%8B%E4%BD%9C/</link><guid isPermaLink="true">https://andywangtw.dev/blog/javascript%E4%B9%8Bthis%E7%9A%84%E9%81%8B%E4%BD%9C/</guid><description>在 JavaScript 中，this 的指向通常是根據函數如何被調用來決定的。首先我們先觀察一個函式的參數包含哪些東西</description><pubDate>Sun, 10 Jul 2022 00:00:00 GMT</pubDate></item><item><title>git rebase 錯了怎麼辦</title><link>https://andywangtw.dev/blog/leetcode-326-power-of-three-copy/</link><guid isPermaLink="true">https://andywangtw.dev/blog/leetcode-326-power-of-three-copy/</guid><description>在日常開發中，你可能會經常使用 rebase 來重新定義分支的基準點，讓 commit history 保持線性與乾淨。不過在第一次操作時，很多人會對它感到不安，擔心一不小心就把 commit 弄不見。但實際上，rebase 並不會真的刪除你的歷史 commit。</description><pubDate>Mon, 07 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Leetcode 326. Power of Three</title><link>https://andywangtw.dev/blog/leetcode-326-power-of-three/</link><guid isPermaLink="true">https://andywangtw.dev/blog/leetcode-326-power-of-three/</guid><description>Power of Three，主要想記錄看到一個很有趣的解法，這題非常簡單，就是找到3的冪次方，回傳 true，要挑戰的就是不要用迴圈來完成。</description><pubDate>Sun, 20 Jul 2025 00:00:00 GMT</pubDate></item><item><title>一分鐘闡述你的價值</title><link>https://andywangtw.dev/blog/%E4%B8%80%E5%88%86%E9%90%98%E9%97%A1%E8%BF%B0%E4%BD%A0%E7%9A%84%E5%83%B9%E5%80%BC/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E4%B8%80%E5%88%86%E9%90%98%E9%97%A1%E8%BF%B0%E4%BD%A0%E7%9A%84%E5%83%B9%E5%80%BC/</guid><description>從過去不管是找工作或推甄面試，還是社交場合與人溝通，又或是跨部門合作時，有多次情境會碰到需要短時間介紹或敘事一個內容，這也是最快讓別人認識你的機會，如果沒有經過練習通常很難講得流暢。</description><pubDate>Sat, 07 Jun 2025 00:00:00 GMT</pubDate></item><item><title>使用 Astro+Tailwind 實現 Dark mode</title><link>https://andywangtw.dev/blog/%E4%BD%BF%E7%94%A8astrotailwind%E5%AF%A6%E7%8F%BEdark-mode/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E4%BD%BF%E7%94%A8astrotailwind%E5%AF%A6%E7%8F%BEdark-mode/</guid><description>紀錄如何使用 Astro+Tailwind 來實現 Dark mode 功能，並將狀態儲存在 localStorage，每次進入時檢查 localStorage 的 theme 來切換 mode。</description><pubDate>Mon, 15 Jul 2024 00:00:00 GMT</pubDate></item><item><title>前端效能優化(1) - Debounce</title><link>https://andywangtw.dev/blog/%E5%89%8D%E7%AB%AF%E6%95%88%E8%83%BD%E5%84%AA%E5%8C%961-debounce/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E5%89%8D%E7%AB%AF%E6%95%88%E8%83%BD%E5%84%AA%E5%8C%961-debounce/</guid><description>Debounce 是一種常見的效能優化方式，主要用於限制高頻事件的觸發次數，例如：當你使用 Google 搜尋某個關鍵字，它並不會在你輸入過程不斷搜尋，而是當你停下輸入後才去做搜尋的動作。</description><pubDate>Wed, 17 Jul 2024 00:00:00 GMT</pubDate></item><item><title>前端效能優化(2) - Throttle</title><link>https://andywangtw.dev/blog/%E5%89%8D%E7%AB%AF%E6%95%88%E8%83%BD%E5%84%AA%E5%8C%962-throttle/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E5%89%8D%E7%AB%AF%E6%95%88%E8%83%BD%E5%84%AA%E5%8C%962-throttle/</guid><description>Throttle 也是一種常見的效能優化方式，與 Debounce 類似，但不同的地方在 Throttle 能確保一個函式在一段時間內只會觸發一次，無論該函式被呼叫幾次。</description><pubDate>Fri, 19 Jul 2024 00:00:00 GMT</pubDate></item><item><title>動態規劃 DP</title><link>https://andywangtw.dev/blog/%E5%8B%95%E6%85%8B%E8%A6%8F%E5%8A%83dp/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E5%8B%95%E6%85%8B%E8%A6%8F%E5%8A%83dp/</guid><description>動態規劃 (Dynamic Programming) 簡稱DP，屬於 Divide-and-conquer 的延伸，主要可以將原問題分解為相較簡單的子問題，再通過子問題的解求出複雜問題的方法</description><pubDate>Thu, 05 May 2022 00:00:00 GMT</pubDate></item><item><title>在 CSS 中的權重</title><link>https://andywangtw.dev/blog/%E5%9C%A8css%E4%B8%AD%E7%9A%84%E6%AC%8A%E9%87%8D/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E5%9C%A8css%E4%B8%AD%E7%9A%84%E6%AC%8A%E9%87%8D/</guid><description>在 CSS 中經常會遇到需要覆蓋樣式的情況，這通常涉及到 CSS 的權重問題。當多個 CSS 使用在同一個元素並且產生衝突時，就會根據權重來決定最終的樣式為何</description><pubDate>Sat, 26 Mar 2022 00:00:00 GMT</pubDate></item><item><title>在寫 HTML 需要注意的事</title><link>https://andywangtw.dev/blog/%E5%9C%A8%E5%AF%ABhtml%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E7%9A%84%E4%BA%8B/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E5%9C%A8%E5%AF%ABhtml%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E7%9A%84%E4%BA%8B/</guid><description>本篇主要整理過去當助教期間碰過的詢問以及個人也曾犯過的錯，標籤語意化、標題標籤順序性、h1標籤的唯一性、列表標籤的正確使用方式、你所忽略的 alt 屬性、type 屬性的重要、寫好 head 標籤</description><pubDate>Wed, 20 Dec 2023 00:00:00 GMT</pubDate></item><item><title>效能分析與複雜度</title><link>https://andywangtw.dev/blog/%E6%95%88%E8%83%BD%E5%88%86%E6%9E%90%E8%88%87%E8%A4%87%E9%9B%9C%E5%BA%A6/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E6%95%88%E8%83%BD%E5%88%86%E6%9E%90%E8%88%87%E8%A4%87%E9%9B%9C%E5%BA%A6/</guid><description>演算法的目的在於改善一個東西或問題，並在從問題中找出現有最好的辦法，一個好的演算法可以節省許多時間與記憶體空間，而程式在執行時所佔用的記憶體空間也會反映出執行所需要的時間，因此才需要效能分析，但其實也不用要求的非常精準，只需要一個最後結果可符合需求且大家都能夠接受的就行了</description><pubDate>Mon, 14 Feb 2022 00:00:00 GMT</pubDate></item><item><title>淺談 JavaScript 單執行緒語言如何做到異步運算</title><link>https://andywangtw.dev/blog/%E6%B7%BA%E8%AB%87-javascript-%E5%96%AE%E5%9F%B7%E8%A1%8C%E7%B7%92%E8%AA%9E%E8%A8%80%E5%A6%82%E4%BD%95%E5%81%9A%E5%88%B0%E7%95%B0%E6%AD%A5%E9%81%8B%E7%AE%97/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E6%B7%BA%E8%AB%87-javascript-%E5%96%AE%E5%9F%B7%E8%A1%8C%E7%B7%92%E8%AA%9E%E8%A8%80%E5%A6%82%E4%BD%95%E5%81%9A%E5%88%B0%E7%95%B0%E6%AD%A5%E9%81%8B%E7%AE%97/</guid><description>JavaScript 是單執行緒語言，照理來說應該一次只能做一件事情，但他卻能做到非同步進程，不讓程式被 blocked，這要歸功於 Event Loop，但 Event Loop 並不存在語言本身，而是由 runtime 來實現。</description><pubDate>Thu, 20 Jun 2024 00:00:00 GMT</pubDate></item><item><title>為什麼 TypeScript 不做更強的型別推論</title><link>https://andywangtw.dev/blog/%E7%82%BA%E4%BB%80%E9%BA%BCtypescript%E4%B8%8D%E5%81%9A%E6%9B%B4%E5%BC%B7%E7%9A%84%E5%9E%8B%E5%88%A5%E6%8E%A8%E8%AB%96/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E7%82%BA%E4%BB%80%E9%BA%BCtypescript%E4%B8%8D%E5%81%9A%E6%9B%B4%E5%BC%B7%E7%9A%84%E5%9E%8B%E5%88%A5%E6%8E%A8%E8%AB%96/</guid><description>關於 TypeScript 為何不做更強的型別推論的這個問題，其實背後牽涉到型別系統的哲學，簡單來說，就是一個「型別安全與靈活性之間」的取捨。</description><pubDate>Thu, 27 Feb 2025 00:00:00 GMT</pubDate></item><item><title>為何軟體開發要做向下兼容</title><link>https://andywangtw.dev/blog/%E7%82%BA%E4%BD%95%E8%BB%9F%E9%AB%94%E9%96%8B%E7%99%BC%E8%A6%81%E5%81%9A%E5%90%91%E4%B8%8B%E5%85%BC%E5%AE%B9/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E7%82%BA%E4%BD%95%E8%BB%9F%E9%AB%94%E9%96%8B%E7%99%BC%E8%A6%81%E5%81%9A%E5%90%91%E4%B8%8B%E5%85%BC%E5%AE%B9/</guid><description>平常在使用應用程式時，或許你經常會聽到為什麼改版後，舊的功能就不能用了，或者是系統要求你更新，否則就無法繼續使用。這種情況下可能就缺乏向下兼容性。</description><pubDate>Sun, 30 Mar 2025 00:00:00 GMT</pubDate></item><item><title>為系統升級 Linter: ESLint v8 to v9</title><link>https://andywangtw.dev/blog/%E7%82%BA%E7%B3%BB%E7%B5%B1%E5%8D%87%E7%B4%9A-linter-eslint-v8-to-v9/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E7%82%BA%E7%B3%BB%E7%B5%B1%E5%8D%87%E7%B4%9A-linter-eslint-v8-to-v9/</guid><description>近期有機會幫團隊專案升級一下 Linter，特別記錄下升級這類工具前需要進行的前置作業，包括盤點 dependencies 的相容性與升級流程，方便日後升級或維護時參考。</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate></item><item><title>自己的部落格自己架</title><link>https://andywangtw.dev/blog/%E8%87%AA%E5%B7%B1%E7%9A%84%E9%83%A8%E8%90%BD%E6%A0%BC%E8%87%AA%E5%B7%B1%E6%9E%B6/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E8%87%AA%E5%B7%B1%E7%9A%84%E9%83%A8%E8%90%BD%E6%A0%BC%E8%87%AA%E5%B7%B1%E6%9E%B6/</guid><description>其實我在使用Jekyll之前，原本想是自己用vue.js來完成前端並用ajax帶出firebase裡的JSON資料，渲染在畫面上，雖然這想法是可行的，但我在製作的過程中資料並沒有如我預期的漂亮渲染在畫面上，且文章不好編寫</description><pubDate>Sat, 04 Dec 2021 00:00:00 GMT</pubDate></item><item><title>認識 Test-Driven Development (TDD)</title><link>https://andywangtw.dev/blog/%E8%AA%8D%E8%AD%98-test-driven-developmenttdd/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E8%AA%8D%E8%AD%98-test-driven-developmenttdd/</guid><description>自從踏入軟體開發職場後，我最早認識到的開發流程之一就是 TDD，我也認為他應該是每位軟體開發者都應該知道的開發流程，即使在實務上並非所有專案或情境都適合採用，但我覺得能有 TDD 的概念也很棒。</description><pubDate>Sat, 04 Oct 2025 00:00:00 GMT</pubDate></item><item><title>貫穿所有軟體開發的 SOLID 原則</title><link>https://andywangtw.dev/blog/%E8%B2%AB%E7%A9%BF%E6%89%80%E6%9C%89%E8%BB%9F%E9%AB%94%E9%96%8B%E7%99%BC%E7%9A%84solid%E5%8E%9F%E5%89%87/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E8%B2%AB%E7%A9%BF%E6%89%80%E6%9C%89%E8%BB%9F%E9%AB%94%E9%96%8B%E7%99%BC%E7%9A%84solid%E5%8E%9F%E5%89%87/</guid><description>SOLID 是一組通用的軟體設計原則，當系統規模不斷擴大時，維護和擴充的工作會越來越困難，而 SOLID 能引導開發者設計更靈活、更易於維護與擴充的軟體架構。</description><pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate></item><item><title>關於 Domain-Driven Design (DDD)</title><link>https://andywangtw.dev/blog/%E9%97%9C%E6%96%BC-domain-driven-designddd/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E9%97%9C%E6%96%BC-domain-driven-designddd/</guid><description>自數位轉型年代開始，軟體開發領域開始流行 DDD 一詞的說法，所謂領域驅動設計 Domain-Driven Design (DDD) 是一種軟體設計方法論，核心目的是讓程式設計與商業邏輯緊密對齊，以便未來因應商業需求變更。</description><pubDate>Sat, 20 Sep 2025 00:00:00 GMT</pubDate></item><item><title>關於 cherry-pick 時機與常見誤區</title><link>https://andywangtw.dev/blog/%E9%97%9C%E6%96%BC-cherry-pick-%E6%99%82%E6%A9%9F/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E9%97%9C%E6%96%BC-cherry-pick-%E6%99%82%E6%A9%9F/</guid><description>在還沒有實際遇到分支管理問題之前，其實很少用到 cherry-pick，第一次真正使用到它，是在剛入職一段時間處理 hotfix 的時候。按照正常流程，hotfix 應該要從 master 開 branch，修完之後合回 master，再 sync 回 release。</description><pubDate>Fri, 30 May 2025 00:00:00 GMT</pubDate></item><item><title>關於我重構部落格這檔事</title><link>https://andywangtw.dev/blog/%E9%97%9C%E6%96%BC%E6%88%91%E9%87%8D%E6%A7%8B%E9%83%A8%E8%90%BD%E6%A0%BC%E9%80%99%E6%AA%94%E4%BA%8B/</link><guid isPermaLink="true">https://andywangtw.dev/blog/%E9%97%9C%E6%96%BC%E6%88%91%E9%87%8D%E6%A7%8B%E9%83%A8%E8%90%BD%E6%A0%BC%E9%80%99%E6%AA%94%E4%BA%8B/</guid><description>自從去年2023年12月開始就已經在想著重構這件事，但當時當兵結束又忙著應付面試，實在空不出時間，直到現在花了一個禮拜的時間終於寫完了，對於成品我也十分滿意。</description><pubDate>Fri, 12 Jul 2024 00:00:00 GMT</pubDate></item></channel></rss>