[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 後,又不知道該從哪裡開始。
閱讀文章義大利麵程式碼指的不是長度或髒亂,而是控制流程。本文從 Dijkstra 1968 年反對 goto 的信開始,整理 goto 消失後義大利麵仍然存在的原因,以及如何用循環複雜度衡量。
閱讀文章從基礎原理到實務判斷,系統化理解計算機科學。
記憶體中的堆疊會隨函式呼叫一併整理,而堆積區支援動態生命週期與大小。本文整理兩種配置區域的成本、Swift 值型別與參考型別的實際配置,以及它們與 Stack、Heap 資料結構的差異。
閱讀文章資料結構 Heap 只和記憶體 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 的條件。
閱讀文章