更新时间:2023-10-19 18:03:43
封面
版权信息
内容简介
前言
第一部分 元编程的基础知识
第1章 元编程概述
1.1 元编程的需求背景
1.2 元编程的基本概念
1.3 元编程的学习方法
1.4 常用项目的调试环境配置
1.5 本章小结
第2章 元数据概述
2.1 基本概念
2.2 注释
2.3 注解
2.4 Kotlin的元数据
2.5 Kotlin的语法树
2.6 Kotlin的编译产物
2.7 本章小结
第二部分 元编程的技术实践
第3章 运行时的反射
3.1 Java反射
3.2 Kotlin反射
3.3 案例:Retrofit的接口实现
3.4 案例:使用反射实现DeepCopy
3.5 案例:使用dynamic类型为Kotlin JS实现DeepCopy
3.6 本章小结
第4章 源代码生成
4.1 直接输出目标代码
4.2 案例:为Kotlin添加Tuple类型
4.3 使用模板引擎生成目标代码
4.4 案例:为Java静态方法生成Kotlin扩展函数(模板引擎)
4.5 使用代码生成框架生成目标代码
4.6 案例:为Java静态方法生成Kotlin扩展函数(KotlinPoet)
4.7 本章小结
第5章 编译时的符号处理
5.1 符号的基本概念
5.2 处理器的基本结构
5.3 深入理解符号和类型
5.4 案例:基于源代码生成模块的符号文件
5.5 深入理解符号处理器
5.6 案例:使用符号处理器实现DeepCopy
5.7 本章小结
第6章 程序静态分析
6.1 案例:检查项目中的数据类
6.2 Kotlin程序的语法分析
6.3 Kotlin程序的语义分析
6.4 使用detekt进行静态扫描
6.5 基于IntelliJ IDEA进行语法检查
6.6 本章小结
第7章 编译器插件
7.1 编译器插件概述
7.2 编译器插件项目的基本结构
7.3 案例:trimIndent函数的编译时实现
7.4 案例:使用编译器插件实现DeepCopy
7.5 符号处理器的实现原理
7.6 本章小结
第8章 元程序的开发和调试
8.1 使用kotlin-compile-testing编写单元测试
8.2 使用kotlin-compile-testing-extensions简化单元测试
8.3 在实际项目中集成
8.4 本章小结
第三部分 综合案例
第9章 Jetpack Compose的编译时处理
9.1 Jetpack Compose简介
9.2 静态检查
9.3 案例:为DeepCopy添加代码检查
9.4 代码提示
9.5 Composable函数的变换
9.6 本章小结
第10章 AtomicFU的编译产物处理
10.1 AtomicFU的由来
10.2 Kotlin JVM平台的编译产物处理
10.3 Kotlin JS平台的编译产物处理
10.4 本章小结
作者简介
封底