<?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-Hans</language><item><title>Swift 策略模式（Strategy Pattern）：使用协议和闭包替换算法</title><link>https://www.dev-paw.com/zh-hans/swift-strategy-pattern-protocol-closure/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/solid-isp-dip-dependency-injection/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/principle-of-least-astonishment-side-effects/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/naver-blog-ai-automation-policy/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/mcp-server-setup-security/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/dry-principle-wrong-abstraction/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/composition-vs-inheritance/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/yagni-principle-software-development/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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 单例模式：shared 被称为反模式的真正原因</title><link>https://www.dev-paw.com/zh-hans/swift-singleton-shared-antipattern/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/swift-singleton-shared-antipattern/</guid><description>进行 Swift 开发时，经常会遇到只用一行 static let shared 创建的单例。</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-hans/swift-origin-chris-lattner-objective-c/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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 模式：能成为 Singleton 的替代方案吗？</title><link>https://www.dev-paw.com/zh-hans/swift-monostate-vs-singleton/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/solid-srp-ocp-lsp-principles/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/objective-c-memory-management-mrc-arc/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/law-of-demeter-method-chaining/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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：一位实际使用一年的用户之选</title><link>https://www.dev-paw.com/zh-hans/claude-code-vs-codex/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/claude-code-cursor-copilot-comparison/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/objective-c-nil-vs-java-null/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/objective-c-history-ns-prefix/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/objective-c-bracket-message-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/objective-c-at-sign-syntax/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/chatgpt-claude-gemini-subscription-review/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/coder-vs-software-engineer/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/kiss-principle-simple-code/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/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-hans/swift-localizederror-custom-message/</link><guid isPermaLink="true">https://www.dev-paw.com/zh-hans/swift-localizederror-custom-message/</guid><description>使用 Swift 开发应用时，你可能遇到过这样的情况：用 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>