作 者:霍丙乾 著
定 價:109
出 版 社:機械工業出版社
出版日期:2023年08月01日
頁 數:336
裝 幀:平裝
ISBN:9787111732549
(1)作者背景資深:作者先後就職於騰訊和猿輔導,是中國Kotlin社區知名布道者和技術專家,Google開發者專家(Kotlin方向)(2)作者經驗豐富:作者在Kotlin領域有大量的項目實踐經驗,對Kotlin編譯器源碼有深入研究,著有暢銷書《深入理解 Kotlin 協程》。(3)內容繫統深入:作者結合Kotlin編譯器源碼和工程實踐經驗,從基礎知識、設計思想、技術方案、應用方法、實踐技巧5個維度繫統講解Kot編程。(4)理論實戰兼備:不僅詳細編程的常見核心技術,而且提供了大量等
●前言
第編程的基礎知識
編程概述2
編程的需求背景2
編程的基本概念4
1.編程的定義5
1.編程的分類5
編程的學習方法6
1.3.1培養興趣6
1.3.2付諸行動6
1.3.3善用工具7
1.3.4多讀源代碼8
1.4常用項目的調試環境配置8
1.4.1Java編譯器8
1.4.2Kotlin編譯器11
1.4.3IntelliJ社區版13
1.4.4Jetpack Compose編譯器插件19
1.5本章小結21
數據概述22
2.1基本概念22
2.1.1語法結構23
2.1.2編譯產物23
2.2注釋23
2.2.1注釋的結構化23
2.2.2文檔生成24
2.3注解25
2.3.1注解的概念25
2.3.2源代碼可見的注解26
2.3.3二進制可見的注解27
2.3.4運行時可見的注解30
2.4Kotl數據31
2.4.1Kotlin JVM中的@Metadata注解31
2.4.2Kotlin JVM模數據35
2.4.3kli數據37
2.5Kotlin的語法樹39
2.5.1Kotlin的語法定義40
2.5.2基於IntelliJ平臺接口的抽像語法樹41
2.5.3新一代語法樹FIR42
2.5.4連接前後端編譯器的IR43
2.5.5Java和Kotlin的符號樹45
2.6Kotlin的編譯產物47
2.6.1JVM47
2.6.2JavaScript48
2.6.3Native48
2.7本章小結49
第編程的技術實踐
第3章運行時的反射52
3.1Java反射52
3.1.1基本功能52
3.1.2解除訪問53
3.1.3動態代理54
3.1.4對注解的支持55
3.1.5對方法參數名的支持56
3.1.6訪問Kotlin代碼57
3.2Kotlin反射58
3.2.1基本功能59
3.2.2類引用的獲取61
3.2.3屬性引用和函數引用65
3.2.4typeOf67
3.2.5dynamic類型69
3.2.6屬性委托70
3.3案例:Retrofit的接口實現72
3.3.1Retrofit基本用法72
3.3.2GitHubService實例的創建73
3.3.3函數參數與請求參數的對應關繫74
3.3.4泛型類型的反序列化74
3.3.5案例小結75
3.4案例:使用反射實現DeepCopy75
3.4.1案例背景75
3.4.2需求分析76
3.4.3案例實現78
3.4.4小試牛刀79
3.4.5案例小結79
3.5案例:使用dynamic類型為Kotlin JS實現DeepCopy80
3.5.1案例背景80
3.5.2需求分析80
3.5.3案例實現83
3.5.4案例小結83
3.6本章小結84
第4章源代碼生成85
4.1直接輸出目標代碼85
4.1.1一個簡單的例子85
4.1.2標準庫的代碼生成87
4.2案例:為Kotlin添加Tuple類型88
4.2.1案例背景88
4.2.2需求分析90
4.2.3案例實現91
4.3使用模板引擎生成目標代碼93
4.3.1Anko中的代碼生成93
4.3.2使用模板引擎渲染目標代碼95
4.4案例:為Java靜態方法生成Kotlin擴展函數(模板引擎)96
4.4.1案例背景96
4.4.2需求分析96
4.4.3案例實現98
4.4.4代碼優化101
4.5使用代碼生成框架生成目標代碼104
4.5.1JavaPoet104
4.5.2KotlinPoet109
4.6案例:為Java靜態方法生成Kotlin擴展函數(KotlinPoet)114
4.6.1類型的映射114
4.6.2實現代碼生成116
4.6.3泛型參數的支持118
4.7本章小結121
第5章編譯時的符號處理122
5.1符號的基本概念122
5.1.1Java的符號122
5.1.2Kotlin的符號124
5.1.3符號與語法樹節點的關繫和區別125
5.2處理器的基本結構125
5.2.1APT的基本結構125
5.2.2KSP的基本結構130
5.2.3APT與KSP的結構差異131
5.2.4處理器的配置文件132
5.3深入理解符號和類型132
5.3.1獲取修飾符133
5.3.2通過名稱獲取符號133
5.3.3獲取符號的類型134
5.3.4通過類型獲取符號138
5.3.5判斷類型之間的關繫139
5.3.6獲取注解及其參數值141
5.4案例:基於源代碼生成模塊的符號文件144
5.4.1案例背景144
5.4.2案例實現:APT版本145
5.4.3案例實現:KSP版本147
5.5深入理解符號處理器148
5.5.1如何使用APT處理Kotlin符號148
5.5.2符號的有效性驗證150
5.5.3處理器的輪次和符號的延遲處理150
5.5.4處理器對增量編譯的支持151
5.5.5多模塊的符號處理154
5.6案例:使用符號處理器實現DeepCopy156
5.6.1案例背景156
5.6.2需求分析156
5.6.3案例實現:APT版本157
……
這是一本從基礎知識、設計思想、技術方案、應用方法、實踐技巧5個維度繫統講解Kot編程,並以此大幅提升Kotlin工程師開發水平、研發效率和開發體驗的著作。作者是Kotlin領域的資深專家和布道者,本書源於他對Kotlin編譯器源碼的反復研讀和大量的工程實踐,不僅細致講解了反射、程序靜態分析、 Java注解處理器、Kotlin符號處理器、Kotlin編譯器程序的開發和調試編程技術,而且詳細剖析了Jetpack Compose的編譯器插件和IntelliJ 插件、AtomicFU 的 JVM 字節碼和JavaScript代碼的生成邏輯。本書的出版編程技術資料少、門檻高的行業現狀。本書包含大量案例,這些案例大多來自真實的生產實踐,相對成熟和完善,可編程項目的範本。同時,本書提供大量的代碼,為了提升閱讀體驗,在注釋、書寫和排版等方面對代碼做了精心的優化。全書等