<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>DevPaw — Swift、iOS 與軟體工程</title><description>資深 iOS 開發者從基礎說明 Swift、iOS、軟體設計與 AI 工具。</description><link>https://www.dev-paw.com/</link><language>zh-Hant</language><item><title>Swift 策略模式（Strategy Pattern）：使用協定與閉包替換演算法</title><link>https://www.dev-paw.com/zh-hant/swift-strategy-pattern-protocol-closure/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/swift-strategy-pattern-protocol-closure/</guid><description>你是否也遇過每種付款方式都讓 if-else 不斷增加的程式碼？</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>전략패턴</category><category>디자인패턴</category><category>프로토콜</category></item><item><title>[SOLID #2] SOLID 原則實務篇（下）：ISP・DIP，以及相依性注入存在的理由</title><link>https://www.dev-paw.com/zh-hant/solid-isp-dip-dependency-injection/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/solid-isp-dip-dependency-injection/</guid><description>上一篇介紹了 SOLID 的前三個字母 SRP・OCP・LSP，今天來整理剩下的兩個字母。</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>SOLID원칙</category><category>ISP</category><category>DIP</category><category>의존성주입</category></item><item><title>最小驚訝原則：getUser 不該寄送郵件的原因</title><link>https://www.dev-paw.com/zh-hant/principle-of-least-astonishment-side-effects/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/principle-of-least-astonishment-side-effects/</guid><description>你曾在程式碼審查時遇過這樣的函式嗎？</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>최소놀람의원칙</category><category>POLA</category><category>네이밍</category><category>부수효과</category></item><item><title>Naver 部落格 AI 自動化：哪些可以做，從哪裡開始算違規？</title><link>https://www.dev-paw.com/zh-hant/naver-blog-ai-automation-policy/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/naver-blog-ai-automation-policy/</guid><description>最近使用 ChatGPT 或 Claude 等 AI 撰寫部落格文章的人真的增加了很多。再多想一步，甚至會產生「從文章生成到發布，全部自動化不就好了嗎？」的想法。</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>네이버블로그</category><category>AI자동화</category><category>블로그자동화</category><category>네이버블로그정책</category></item><item><title>[MCP·Skill #1] 什麼是 MCP 伺服器？從連線方式到安全性注意事項</title><link>https://www.dev-paw.com/zh-hant/mcp-server-setup-security/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/mcp-server-setup-security/</guid><description>使用 ChatGPT 或 Claude 時，總會有些不盡人意的時刻。模型很聰明，卻看不到我的資料庫，也讀不了公司內部 Wiki。</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>MCP</category><category>ModelContextProtocol</category><category>AI에이전트</category><category>Claude</category></item><item><title>正確理解 DRY 原則：比程式碼重複更可怕的是錯誤的抽象化</title><link>https://www.dev-paw.com/zh-hant/dry-principle-wrong-abstraction/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/dry-principle-wrong-abstraction/</guid><description>進行程式碼審查時，總會遇到一個特別常見的場景。</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>DRY원칙</category><category>코드중복</category><category>리팩토링</category><category>실용주의프로그래머</category></item><item><title>組合（Composition）vs 繼承（Inheritance）：「不要使用繼承」這句話的真正含義</title><link>https://www.dev-paw.com/zh-hant/composition-vs-inheritance/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/composition-vs-inheritance/</guid><description>學習物件導向時，一定會遇到這句話：「優先使用組合，而不是繼承（Favor composition over inheritance）。」</description><pubDate>Sun, 12 Jul 2026 15:00:00 GMT</pubDate><category>컴포지션</category><category>상속</category><category>객체지향</category></item><item><title>YAGNI 總結：開發者認為「以後應該會用到」為何代價高昂</title><link>https://www.dev-paw.com/zh-hant/yagni-principle-software-development/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/yagni-principle-software-development/</guid><description>「之後好像會需要，要不要先做起來？」</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>YAGNI</category><category>익스트림프로그래밍</category><category>오버엔지니어링</category><category>개발원칙</category></item><item><title>Swift Singleton Pattern：shared 被稱為反模式的真正原因</title><link>https://www.dev-paw.com/zh-hant/swift-singleton-shared-antipattern/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/swift-singleton-shared-antipattern/</guid><description>進行 Swift 開發時，經常會遇到只用一行 static let shared 建立的 Singleton。</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>싱글톤패턴</category><category>iOS</category><category>디자인패턴</category></item><item><title>Swift 誕生背景：Chris Lattner 為什麼放棄 Objective-C？</title><link>https://www.dev-paw.com/zh-hant/swift-origin-chris-lattner-objective-c/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/swift-origin-chris-lattner-objective-c/</guid><description>開始 iOS 開發後，相信每個人都曾經好奇過：「Apple 明明已經很熟練地使用 Objective-C，為什麼還要特別重新打造 Swift？」</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>크리스래트너</category><category>Objective-C</category></item><item><title>Swift Monostate Pattern：能成為 Singleton 的替代方案嗎？</title><link>https://www.dev-paw.com/zh-hant/swift-monostate-vs-singleton/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/swift-monostate-vs-singleton/</guid><description>獻給曾懷疑 Singleton 真的適合一直這樣使用的人</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Swift</category><category>모노스테이트</category><category>싱글톤</category><category>iOS</category></item><item><title>[SOLID #1] SOLID 五個字母，別背誦而是理解（SRP・OCP・LSP）</title><link>https://www.dev-paw.com/zh-hant/solid-srp-ocp-lsp-principles/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/solid-srp-ocp-lsp-principles/</guid><description>面試時被問過「請說明 SOLID 原則」這個問題的人，應該都有過一次吧。</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>SOLID원칙</category><category>SRP</category><category>OCP</category><category>LSP</category></item><item><title>Objective-C 記憶體管理歷史：從 MRC 到 ARC 完整總結</title><link>https://www.dev-paw.com/zh-hant/objective-c-memory-management-mrc-arc/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/objective-c-memory-management-mrc-arc/</guid><description>進行 iOS 開發時，總有一件事會讓人好奇。</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>iOS</category><category>ARC</category><category>메모리관리</category></item><item><title>迪米特法則（Law of Demeter）：方法鏈結在什麼時候會變成糟糕的程式碼</title><link>https://www.dev-paw.com/zh-hant/law-of-demeter-method-chaining/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/law-of-demeter-method-chaining/</guid><description>進行程式碼審查時，總有一次會被指出這件事。</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>디미터의법칙</category><category>메서드체이닝</category><category>클린코드</category><category>객체지향</category></item><item><title>如果只能選一個程式設計 AI？一位實際使用 1 年的使用者之選</title><link>https://www.dev-paw.com/zh-hant/claude-code-vs-codex/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/claude-code-vs-codex/</guid><description>最近開發者社群最常見的問題之一，就是「Claude Code 和 Codex 該用哪一個？」我訂閱 Claude 約 1 年、Codex 超過 6 個月，每天都在使用，也實際體驗了近期推出的 Claude Fable 5 和 GPT-5.6 Sol…</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>Claude</category><category>Codex</category><category>ClaudeCode</category><category>GPT-5.6</category></item><item><title>Claude Code、Cursor、Copilot 怎麼選？依用途分類的指南</title><link>https://www.dev-paw.com/zh-hant/claude-code-cursor-copilot-comparison/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/claude-code-cursor-copilot-comparison/</guid><description>最近開發者社群最常出現的問題就是這個：「Claude Code、Cursor、Copilot 到底該用哪一個？」</description><pubDate>Sat, 11 Jul 2026 15:00:00 GMT</pubDate><category>ClaudeCode</category><category>Cursor</category><category>GitHubCopilot</category><category>코딩AI</category></item><item><title>Objective-C nil 與 Java null 的比較：為什麼行為不同？</title><link>https://www.dev-paw.com/zh-hant/objective-c-nil-vs-java-null/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/objective-c-nil-vs-java-null/</guid><description>有一件事，總是讓剛接觸 iOS 的開發者非常困惑。</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>nil</category><category>iOS</category><category>NullPointerException</category></item><item><title>Objective-C 歷史總整理：賈伯斯喜愛的語言故事（直到 NS 前綴的由來）</title><link>https://www.dev-paw.com/zh-hant/objective-c-history-ns-prefix/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/objective-c-history-ns-prefix/</guid><description>開始學習 iOS 開發後，一定會遇到一種語言：充滿中括號的陌生語法，以及 NSString 這類讓人摸不著頭緒的前綴。</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>프로그래밍언어</category><category>iOS</category></item><item><title>Objective-C 的中括號語法，為什麼長這樣？（訊息傳送的秘密）</title><link>https://www.dev-paw.com/zh-hant/objective-c-bracket-message-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/objective-c-bracket-message-syntax/</guid><description>開始學習 iOS 後，第一次看到 Objective-C 程式碼時，很容易感到困惑。</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>iOS</category><category>프로그래밍언어</category></item><item><title>Objective-C 的 @（at 符號）語法：為什麼全部都以 @ 開頭？（完整整理）</title><link>https://www.dev-paw.com/zh-hant/objective-c-at-sign-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/objective-c-at-sign-syntax/</guid><description>第一次開啟 Objective-C 程式碼時，最先映入眼簾的就是某個特徵。</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>Objective-C</category><category>골뱅이문법</category><category>at기호</category></item><item><title>ChatGPT、Claude、Gemini 三款都訂閱後的真實心得</title><link>https://www.dev-paw.com/zh-hant/chatgpt-claude-gemini-subscription-review/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/chatgpt-claude-gemini-subscription-review/</guid><description>現在幾乎沒有人完全不使用 AI，但真的要開始時，還是會感到猶豫。</description><pubDate>Fri, 10 Jul 2026 15:00:00 GMT</pubDate><category>AI비교</category><category>ChatGPT</category><category>클로드</category><category>제미나이</category></item><item><title>Coder 與軟體工程師，真正的差別是什麼？（薪資與角色總整理）</title><link>https://www.dev-paw.com/zh-hant/coder-vs-software-engineer/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/coder-vs-software-engineer/</guid><description>學習軟體開發時，你可能至少會有一次這樣的疑問：「我是 Coder，還是軟體工程師？」</description><pubDate>Sun, 22 Dec 2024 15:00:00 GMT</pubDate><category>코더</category><category>소프트웨어엔지니어</category><category>개발자</category><category>개발자연봉</category></item><item><title>KISS 原則：把程式碼寫得簡單，真正的意義是什麼</title><link>https://www.dev-paw.com/zh-hant/kiss-principle-simple-code/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/kiss-principle-simple-code/</guid><description>開發時，有時會莫名覺得程式碼寫得越複雜，才代表自己越厲害。</description><pubDate>Sun, 08 Dec 2024 15:00:00 GMT</pubDate><category>KISS원칙</category><category>소프트웨어설계</category><category>개발원칙</category><category>클린코드</category></item><item><title>定義 Swift 自訂錯誤訊息：LocalizedError 完整整理（含範例）</title><link>https://www.dev-paw.com/zh-hant/swift-localizederror-custom-message/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hant/swift-localizederror-custom-message/</guid><description>使用 Swift 開發 App 時，是否曾經用 do-catch 捕捉錯誤，卻發現真正顯示在畫面上的訊息實在不太理想？</description><pubDate>Sat, 07 Dec 2024 15:00:00 GMT</pubDate><category>Swift</category><category>LocalizedError</category><category>errorDescription</category><category>iOS</category></item></channel></rss>