起因
在我司做了一年多所谓架构之后,发现设计一个框架很简单,做出足够多的工具也很简单,但是,怎么去规范使用,怎么传达工具背后的思考是个大问题,这个东西可能在大部分中大型 APP 中都会成为阻碍技术演进的关键问题。
过去的一段时间经常遇到 lint,发现这个是限制行为推广理念的好东西。但是,(Android 语境下)lint 写起来非常麻烦,拜 uast 对 jetbrains 没文档风格的延续,想顺畅的写 lint 神烦。
所以,准备依赖 kotlin 的 dsl 能力,把恶心的 uast 尽量封装到一个简单写 lint 的模型中。准备实现的功能:
- 语言元素匹配 DSL
- APT 生成 Issue 及注册
- plugin 自动注册 registry
Github
计划
由于工作与这个基本无关,所以进度会极慢。
- uast 所有元素的分析
- 声明相关
- 指令相关
- dsl 学习
- 按需封装 uast
- lint 结构
- 匹配结构
- 声明相关
- 指令相关
- demo lint