Unify 的技术架构采用了分层架构,包括:依赖层、协议层、工具层、服务层、逻辑层:
- 依赖层: Dart 基础能力,比如:IO操作、Dart 代码分析、Isolate 操作等。
- 协议层: 主要两部分,Unify AST 协议和 Unify 模板协议(对外体现是 Unify 模板注解)。其中:
- Unify AST 协议:Unify 定义的 AST Node 格式,代码生成器需要使用它,才能生成三端代码。
- Unify 模板协议:主要是约定 Unify 开发模板,对外体现是 Unify 提供的注解。
- 工具层: 主要由工具集和常量集组成。其中:
- 工具集:主要是通用方法的封装。
- 常量集:主要是常量定义的集合。
- 服务层: 主要由代码生成器 和 AST解析器组成。其中:
- 代码生成器:主要以 Unify AST Node 作为输入,生成三端代码。
- AST解析器:主要是对 Dart 文件进行语法分析,将结果解析成 Unify 的 AST Node。
- 逻辑层: 分 Cli Isolate 和 Worker Isolate 两大块。
- CLI Isolate:作为 Unify 的 main Isolate。主要进行 CLI 参数解析,创建并启动 worker Isolate 以及 结果监听。
- Worker Isolate:主要触发AST解析器和代码生成器调用,最终完成三端代码的生成。