[Swift 基础 #1] Optional 的本质与解包标准
学习 Swift 时首先遇到的关卡就是 Optional。String? 的问号、if let、guard let、!、??。语法形式很多,如果分别死记硬背,很容易把规则弄混。
阅读文章DIG BY TOPIC
选择感兴趣的领域,从基础开始阅读。
TOPIC GROUP 01
连接语言、运行时与应用架构。
从基础原理到实践决策,系统理解Swift 与 Objective-C。
学习 Swift 时首先遇到的关卡就是 Optional。String? 的问号、if let、guard let、!、??。语法形式很多,如果分别死记硬背,很容易把规则弄混。
阅读文章在《闭包》一文中,我们介绍了如何用 [weak self] 打破循环引用,但还留下了一个问题。除了 weak 之外还有 unowned,它们有什么区别,什么时候该用?要回答这个问题,首先要深入了解 ARC 实际是如何运行的。
阅读文章await暂停的是函数,而不是线程。本文整理suspension的准确含义:函数将状态保存到堆中,并把线程归还给协作式线程池,以及顺序await为什么不是并行执行。
阅读文章从基础原理到实践决策,系统理解iOS 工程。
如果你已经读到 iOS 架构系列这里,所有选项都摆在面前了:MVC、MVVM、MVP、VIPER、Clean Architecture、MV,以及 TCA。
阅读文章学习 iOS 开发时,迟早会遇到 RxSwift 或 Combine 这道墙。招聘信息里几乎必然出现它们,但打开代码后,看到 map、flatMap、sink 连成一串的陌生语法,很容易感到困惑。“明明用闭包和代理也能正常运行,真的有必要学这个吗?”
阅读文章TOPIC GROUP 02
跨平台联系设计、质量与计算机基础。
从基础原理到实践决策,系统理解软件设计。
从基础原理到实践决策,系统理解测试与代码质量。
进行 iOS 开发时,你可能总想着“得写点测试代码了……”,却一拖再拖。真正打开 XCTest 后,又不知道该从哪里下手。
阅读文章意大利面代码指的不是长度或脏乱,而是控制流。本文从迪杰斯特拉 1968 年反对 goto 的信件讲起,总结 goto 消失后意大利面依然存在的原因,以及如何用圈复杂度衡量它。
阅读文章从基础原理到实践决策,系统理解计算机科学。
内存中的栈会随函数调用一起清理,而堆支持动态生命周期和大小。本文总结两种分配区域的成本、Swift 值类型与引用类型的实际布局,以及它们与 Stack、Heap 数据结构的区别。
阅读文章TOPIC GROUP 03
从 AI 基础到编程智能体工作流。
从基础原理到实践决策,系统理解AI 基础与工具。
向ChatGPT提问并收到回答时,很容易以为它只是找到某处存储的正确答案并展示给你,就像在Naver或Google输入搜索词后找到文档一样。但AI并不是这样工作的。正因为这个误解,才会出现“AI撒谎了”“AI前后说法不一致”等令人困惑的体验……
阅读文章听到有人说“我用过 AI,但感觉不怎么样”,很多人其实停留在“帮我写封邮件”“帮我总结报告”这类一行请求上。但只要稍微打磨一下发给 AI 的请求,也就是提示词,产出就可能像换了一个人写的。这项技术有个听起来很专业的名字:提示词工程……
阅读文章“所以我该用哪个?需要付费吗?”下面以 2026 年年中为基准回答。先说结论:没有一款 AI 在所有方面都排名第一,要根据用途选择。三项服务的免费套餐都已经相当实用,先免费使用,确认自己卡在哪里后再付费也不迟。
阅读文章从基础原理到实践决策,系统理解AI 编程与智能体。
Claude Code 的 /init 命令会分析代码库并自动生成 CLAUDE.md。本文整理了已有文件时的行为、迁移 Cursor 和 Copilot 规则、交互模式,以及生成后完善文件的标准。
阅读文章使用 ChatGPT 或 Claude 时,总会有些不尽如人意的时刻。模型很聪明,却看不到我的数据库,也读不了公司内部 Wiki。
阅读文章Harness 是包裹模型的执行循环。本文整理了工具、权限、上下文管理和反馈这几个组成部分,说明智能体性能为何由模型智能与 Harness 质量的乘积决定,以及优秀 Harness 的条件。
阅读文章