注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)深入實(shí)踐Kotlin元編程

深入實(shí)踐Kotlin元編程

深入實(shí)踐Kotlin元編程

定 價(jià):¥109.00

作 者: 霍丙乾 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111732549 出版時(shí)間: 2023-08-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  這是一本從基礎(chǔ)知識(shí)、設(shè)計(jì)思想、技術(shù)方案、應(yīng)用方法、實(shí)踐技巧5個(gè)維度系統(tǒng)講解Kotlin元編程,并以此大幅提升Kotlin工程師開(kāi)發(fā)水平、研發(fā)效率和開(kāi)發(fā)體驗(yàn)的著作。作者是Kotlin領(lǐng)域的資深專家和布道者,本書(shū)源于他對(duì)Kotlin編譯器源碼的反復(fù)研讀和大量的工程實(shí)踐,不僅細(xì)致講解了反射、程序靜態(tài)分析、 Java注解處理器、Kotlin符號(hào)處理器、Kotlin編譯器插件、元程序的開(kāi)發(fā)和調(diào)試等核心元編程技術(shù),而且詳細(xì)剖析了Jetpack Compose的編譯器插件和IntelliJ 插件、AtomicFU 的 JVM 字節(jié)碼和JavaScript代碼的生成邏輯。本書(shū)的出版打破了元編程技術(shù)資料少、門(mén)檻高的行業(yè)現(xiàn)狀。本書(shū)包含大量案例,這些案例大多來(lái)自真實(shí)的生產(chǎn)實(shí)踐,相對(duì)成熟和完善,可以作為元編程項(xiàng)目的范本。同時(shí),本書(shū)提供大量的代碼,為了提升閱讀體驗(yàn),在注釋、書(shū)寫(xiě)和排版等方面對(duì)代碼做了精心的優(yōu)化。全書(shū)的源文件均可免費(fèi)下載,讀者可以通過(guò)作者的網(wǎng)站實(shí)時(shí)與作者互動(dòng)和交流。

作者簡(jiǎn)介

暫缺《深入實(shí)踐Kotlin元編程》作者簡(jiǎn)介

圖書(shū)目錄

目 錄 Contents
前言
第一部分 元編程的基礎(chǔ)知識(shí)
第1章 元編程概述2
1.1 元編程的需求背景2
1.2 元編程的基本概念4
1.2.1 元編程的定義5
1.2.2 元編程的分類5
1.3 元編程的學(xué)習(xí)方法6
1.3.1 培養(yǎng)興趣6
1.3.2 付諸行動(dòng)6
1.3.3 善用工具7
1.3.4 多讀源代碼8
1.4 常用項(xiàng)目的調(diào)試環(huán)境配置8
1.4.1 Java編譯器8
1.4.2 Kotlin編譯器11
1.4.3 IntelliJ社區(qū)版13
1.4.4 Jetpack Compose編譯器插件19
1.5 本章小結(jié)21
第2章 元數(shù)據(jù)概述22
2.1 基本概念22
2.1.1 語(yǔ)法結(jié)構(gòu)23
2.1.2 編譯產(chǎn)物23
2.2 注釋23
2.2.1 注釋的結(jié)構(gòu)化23
2.2.2 文檔生成24
2.3 注解25
2.3.1 注解的概念25
2.3.2 源代碼可見(jiàn)的注解26
2.3.3 二進(jìn)制可見(jiàn)的注解27
2.3.4 運(yùn)行時(shí)可見(jiàn)的注解30
2.4 Kotlin的元數(shù)據(jù)31
2.4.1 Kotlin JVM中的@Metadata
   注解31
2.4.2 Kotlin JVM模塊中的元數(shù)據(jù)35
2.4.3 klib中的元數(shù)據(jù)37
2.5 Kotlin的語(yǔ)法樹(shù)39
2.5.1 Kotlin的語(yǔ)法定義40
2.5.2 基于IntelliJ平臺(tái)接口的抽象語(yǔ)
   法樹(shù)41
2.5.3 新一代語(yǔ)法樹(shù)FIR42
2.5.4 連接前后端編譯器的IR43
2.5.5 Java和Kotlin的符號(hào)樹(shù)45
2.6 Kotlin的編譯產(chǎn)物47
2.6.1 JVM47
2.6.2 JavaScript48
2.6.3 Native48
2.7 本章小結(jié)49
第二部分 元編程的技術(shù)實(shí)踐
第3章 運(yùn)行時(shí)的反射52
3.1 Java反射52
3.1.1 基本功能52
3.1.2 解除訪問(wèn)限制53
3.1.3 動(dòng)態(tài)代理54
3.1.4 對(duì)注解的支持55
3.1.5 對(duì)方法參數(shù)名的支持56
3.1.6 訪問(wèn)Kotlin代碼57
3.2 Kotlin反射58
3.2.1 基本功能59
3.2.2 類引用的獲取61
3.2.3 屬性引用和函數(shù)引用65
3.2.4 typeOf67
3.2.5 dynamic類型69
3.2.6 屬性委托70
3.3 案例:Retrofit的接口實(shí)現(xiàn)72
3.3.1 Retrofit基本用法72
3.3.2 GitHubService實(shí)例的創(chuàng)建73
3.3.3 函數(shù)參數(shù)與請(qǐng)求參數(shù)的
      對(duì)應(yīng)關(guān)系74
3.3.4 泛型類型的反序列化74
3.3.5 案例小結(jié)75
3.4 案例:使用反射實(shí)現(xiàn)DeepCopy75
3.4.1 案例背景75
3.4.2 需求分析76
3.4.3 案例實(shí)現(xiàn)78
3.4.4 小試牛刀79
3.4.5 案例小結(jié)79
3.5 案例:使用dynamic類型為
   Kotlin JS實(shí)現(xiàn)DeepCopy80
3.5.1 案例背景80
3.5.2 需求分析80
3.5.3 案例實(shí)現(xiàn)83
3.5.4 案例小結(jié)83
3.6 本章小結(jié)84
第4章 源代碼生成85
4.1 直接輸出目標(biāo)代碼85
4.1.1 一個(gè)簡(jiǎn)單的例子85
4.1.2 標(biāo)準(zhǔn)庫(kù)的代碼生成87
4.2 案例:為Kotlin添加Tuple類型88
4.2.1 案例背景88
4.2.2 需求分析90
4.2.3 案例實(shí)現(xiàn)91
4.3 使用模板引擎生成目標(biāo)代碼93
4.3.1 Anko中的代碼生成93
4.3.2 使用模板引擎渲染目標(biāo)代碼95
4.4 案例:為Java靜態(tài)方法生成
  Kotlin擴(kuò)展函數(shù)(模板引擎)96
4.4.1 案例背景96
4.4.2 需求分析96
4.4.3 案例實(shí)現(xiàn)98
4.4.4 代碼優(yōu)化101
4.5 使用代碼生成框架生成目標(biāo)代碼104
4.5.1 JavaPoet104
4.5.2 KotlinPoet109
4.6 案例:為Java靜態(tài)方法生成
  Kotlin擴(kuò)展函數(shù)(KotlinPoet)114
4.6.1 類型的映射114
4.6.2 實(shí)現(xiàn)代碼生成116
4.6.3 泛型參數(shù)的支持118
4.7 本章小結(jié)121
第5章 編譯時(shí)的符號(hào)處理122
5.1 符號(hào)的基本概念122
5.1.1 Java的符號(hào)122
5.1.2 Kotlin的符號(hào)124
5.1.3 符號(hào)與語(yǔ)法樹(shù)節(jié)點(diǎn)的關(guān)系和
   區(qū)別125
5.2 處理器的基本結(jié)構(gòu)125
5.2.1 APT的基本結(jié)構(gòu)125
5.2.2 KSP的基本結(jié)構(gòu)130
5.2.3 APT與KSP的結(jié)構(gòu)差異131
5.2.4 處理器的配置文件132
5.3 深入理解符號(hào)和類型132
5.3.1 獲取修飾符133
5.3.2 通過(guò)名稱獲取符號(hào)133
5.3.3 獲取符號(hào)的類型134
5.3.4 通過(guò)類型獲取符號(hào)138
5.3.5 判斷類型之間的關(guān)系139
5.3.6 獲取注解及其參數(shù)值141
5.4 案例:基于源代碼生成模塊的
  符號(hào)文件144
5.4.1 案例背景144
5.4.2 案例實(shí)現(xiàn):APT版本145
5.4.3 案例實(shí)現(xiàn):KSP版本147
5.5 深入理解符號(hào)處理器148
5.5.1 如何使用APT處理Kotlin
   符號(hào)148
5.5.2 符號(hào)的有效性驗(yàn)證150
5.5.3 處理器的輪次和符號(hào)的延遲
   處理150
5.5.4 處理器對(duì)增量編譯的支持151
5.5.5 多模塊的符號(hào)處理154
5.6 案例:使用符號(hào)處理器實(shí)現(xiàn)
  DeepCopy156
5.6.1 案例背景156
5.6.2 需求分析156
5.6.3 案例實(shí)現(xiàn):APT版本157
5.6.4 案

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)