sail 代码生成器
2024-04-10 本文已影响0人
Jinweb
原生成器 模块划分
- 设计转换模块 (根据数据库获取表配置、列配置、其他延伸配置)
- 代码生成模块 (模板、目录结构)
- 代码合并模块 (router、typing.d.ts、...)
优点:拓展时,则针对 设计转换、代码生成的模板进行拓展即可,及少会涉及代码合并模块
缺点:仅支持单一数据库连接;设计转换模块 目前分布在很多块,模板中也有,转换模块也有;模板使用自定义模板语法+js eval,很难进行开发;命令行进行生成,有一定门槛
延伸需求
- 加深模块划分,职责分离
- 设计源选择模块(数据库,ddl,json,balabala)
- 模板引擎
- 用户界面模块
1.设计转换模块 需求说明
根据数据库获取表配置、列配置、其他延伸配置
1.1 列配置
根据 数据库列的配置、用户自定义的列的配置、列生成配置约定 生成目标列配置,其中详细展开的便是 列生成配置约定
列生成配置约定 目前分以下几类
- 字段名完全匹配,例如:update_time、create_time 等检查字段,他们的配置是一致的
- 字段名前缀匹配,例如:is_locked、is_enabled 等开关类字段
- 字段名后缀匹配,例如:_img、_att 指定类型是图片,附件的字段
- 注释匹配,使用注释进行设置字典的配置
使用 策略模式+责任链模式 进行设计该配置生成流程