評分
☆☆☆☆☆
作者的技術水平是沒話說的,但這本書作為教程來說真的不敢恭維,好的技術書籍是講究循序漸進的,這本書裏很多知識沒有一些基礎的話看起來真的很費勁,而且作者也沒有對一些技術進行鋪墊,直接拿齣來就用上瞭,我隻能說這是一本給中高級開發者看的書籍,初學者不推薦買這本書,還有就是我對書裏的這些知識被稱為 iOS 核心知識點不能認同。
評分
☆☆☆☆☆
我不關心作者搞過什麼課,就是單純看介紹買瞭這本書。 我覺得作為一本書嚴重不閤格。全書的格式就是,我們來講一下這個要點,這個要點是什麼,然後原理你看源碼啊,然後把源碼粘貼一遍,一句解釋都沒有。我菜,我看不懂源碼我也看不懂這書。40萬字的書得有30萬字的源碼,而且對源碼一點解釋都沒有,甚至注釋都不翻譯一下,再加上十幾頁作者自己畫的和本書內容一點關係都沒有的圖。 要是這書能把大片大片的源碼和莫名其妙的圖全刪掉,縮減成50頁的博客,也不失為一個好博客,這個做法實在是迷瞭。
評分
☆☆☆☆☆
這本書要看懂的話,需要有很多知識的儲備,作者在寫的過程中就是很隨意的一筆帶過瞭,就像學數學,先告訴你1+1=2,然後就叫你解答微積分方程,沒有詳細的步驟,學習麯綫很陡峭
評分
☆☆☆☆☆
作者的技術水平是沒話說的,但這本書作為教程來說真的不敢恭維,好的技術書籍是講究循序漸進的,這本書裏很多知識沒有一些基礎的話看起來真的很費勁,而且作者也沒有對一些技術進行鋪墊,直接拿齣來就用上瞭,我隻能說這是一本給中高級開發者看的書籍,初學者不推薦買這本書,還有就是我對書裏的這些知識被稱為 iOS 核心知識點不能認同。
評分
☆☆☆☆☆
我不關心作者搞過什麼課,就是單純看介紹買瞭這本書。 我覺得作為一本書嚴重不閤格。全書的格式就是,我們來講一下這個要點,這個要點是什麼,然後原理你看源碼啊,然後把源碼粘貼一遍,一句解釋都沒有。我菜,我看不懂源碼我也看不懂這書。40萬字的書得有30萬字的源碼,而且對源碼一點解釋都沒有,甚至注釋都不翻譯一下,再加上十幾頁作者自己畫的和本書內容一點關係都沒有的圖。 要是這書能把大片大片的源碼和莫名其妙的圖全刪掉,縮減成50頁的博客,也不失為一個好博客,這個做法實在是迷瞭。
第1章 Swift
1.1 Swift簡介
1.2 泛型
1.2.1 類型約束
1.2.2 關聯類型
1.2.3 類型擦除
1.2.4 Where 語句
1.2.5 泛型和 Any 類型
1.3 集閤
1.3.1 基本概念
1.3.2 迭代器
1.3.3 Sequence協議
1.3.4 Collection協議
1.3.5 Map
1.3.6 flatMap
1.3.7 Reduce
1.3.8 Array
1.3.9 弱引用的 Swift 數組
1.3.10 Dictionary
1.4 協議式編程
1.5 鏈式編程
1.6 Swift 內存管理
1.6.1 內存分配
1.6.2 Swift 派發機製
1.6.3 基本數據類型內存管理
1.6.4 struct 內存管理
1.6.5 class 內存管理
1.6.6 協議類型內存管理
1.6.7 泛型的內存管理
1.7 JSON 數據的處理
1.7.1 使用 JSONDecoder
1.7.2 CodingKey 協議
1.7.3 JSONDecoder 的 keyDecodingStrategy 屬性
1.7.4 枚舉定義 block
1.7.5 inout
1.8 網絡請求
1.9 自動布局 SnapKit 庫分析
1.9.1 給誰做約束
1.9.2 如何設置約束
1.9.3 設置完約束後如何處理
1.10 用Swift 實現一個簡單的語言轉譯器
1.10.1 轉譯器簡介
1.10.2 詞法分析器
1.10.3 語法分析器
1.10.4 遍曆器
1.10.5 轉換器
1.10.6 代碼生成器
1.10.7 Scheme的其他特性
1.10.8 Babel
1.11 用Swift 開發一個簡單的解釋器
1.11.1 四則運算
1.11.2 算術錶達式
1.11.3 中間錶示
1.11.4 變量
1.11.5 屬性
1.11.6 靜態檢查
第2章 編譯器
2.1 LLVM 簡介
2.2 編譯流程
2.3 使用clang命令編譯 .m 文件
2.3.1 構建 Target
2.3.2 Target 在構建過程中的控製
2.4 clang static analyzer
2.5 IR 代碼
2.5.1 IR 結構
2.5.2 LLVM IR 優化
2.5.3 SSA
2.6 clang 前端組件
2.6.1 庫的介紹
2.6.2 使用 libclang 進行語法分析
2.7 Driver
2.7.1 Driver 的工作流程
2.7.2 Parse
2.7.3 Pipeline
2.7.4 Action
2.7.5 Bind
2.7.6 Translate
2.7.7 Jobs
2.7.8 Execute
2.8 clang attribute
2.9 clang 警告處理
2.10 通過LibTooling 控製語法樹
2.11 clang 插件
2.12 LLVM Backend
2.12.1 CodeGen 階段
2.12.2 SelectionDAG
2.12.3 Register Allocation
2.12.4 Code Emission
2.13 LLVM 優化
2.14 Swift 編譯
2.15 編譯後生成的二進製內容 Link Map File
2.16 編譯後生成的 dSYM 文件
2.17 Mach-O 文件
2.18 如何利用 Mach-O
2.18.1 打印堆棧信息,保存現場
2.18.2 通過hook獲取更多信息的方法
2.18.3 hook msgsend 方法
2.18.4 統計方法調用頻次
2.18.5 找齣 CPU 使用的綫程堆棧
2.18.6 Demo
2.19 dyld
2.20 LLVM 工具鏈
2.20.1 獲取 LLVM
2.20.2 編譯 LLVM 的源代碼
2.20.3 LLVM 源代碼工程目錄介紹
2.20.4 lib 目錄介紹
2.20.5 工具鏈命令介紹
第3章 iOS中的大前端技術
3.1 大前端技術簡介
3.2 Weex 實現技術
3.2.1 將iOS 工程集成 WeexSDK
3.2.2 自定義端內能力的 Module
3.2.3 讀取用 JavaScript 寫的 Weex 內容
3.2.4 從 Vue 代碼到 JS bundle
3.2.5 在端內運行 JS bundle 的原理
3.3 JavaScriptCore
3.3.1 JavaScriptCore 介紹
3.3.2 JavaScriptCore 全貌
3.3.3 JavaScriptCore 與 WebCore
3.3.4 詞法、語法分析
3.3.5 從代碼到 JIT 的過程
3.3.6 分層編譯
3.3.7 類型分析
3.3.8 指令集架構
3.3.9 JavaScript
3.4 WebCore
3.4.1 瀏覽器曆史
3.4.2 WebKit 全貌
3.4.3 WTF
3.4.4 Loader
3.4.5 HTML 詞法解析
3.4.6 HTML 語法解析
3.4.7 構建 DOM Tree
3.4.8 CSS
3.4.9 RenderObject Tree
3.4.10 Layout
· · · · · · (
收起)