scaffold 基于数据库定义的代码生成器

开源网站开源项目 24-05-22 13:17:10

scaffold是一款基于数据库定义的代码生成器。

它是如何工作的?

正如我们所知,go 中进行 json 字符串的编码/解码过程中, 可以通过对象定义时字段的tag定义, 对字段进行补充说明。如下例:

type JsonSomething struct{  AField  int64     `json:"x"`  BField  string    `json:"y"`}

同样的方法, scaffold 通过数据库定义中的字段(或表)的 COMMENT 定义来对相应字段(或表)进行补充说明, 在根据模板进行代码生成。如:

CREATE TABLE `users` (  `id`          INT UNSIGNED     NOT NULL  PRIMARY KEY AUTO_INCREMENT COMMENT 'caption:"编号"',  `name`        VARCHAR(32)      NOT NULL  DEFAULT '' COMMENT 'caption:"名称"',  `mailbox`     VARCHAR(128)     NOT NULL  DEFAULT '' COMMENT 'caption:"邮箱"',  `sex`         TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'caption:"性别"',  `description` VARCHAR(256)     NOT NULL  DEFAULT '' COMMENT 'caption:"描述"',  `password`    VARCHAR(32)      NOT NULL  DEFAULT '' COMMENT 'caption:"密码"',  `head_url`    VARCHAR(255)     NOT NULL  DEFAULT '' COMMENT 'caption:"头像"',  `status`      TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'caption:"状态"',  `created_at`   TIMESTAMP       NOT NULL  DEFAULT CURRENT_TIMESTAMP COMMENT 'caption:"创建时间"') ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'caption:"会员"';

如定义表结构后, scaffold 就可以通过模板函数读取到 comment 中的 caption 字段, 并根据模板生成代码了。

[scaffold 基于数据库定义的代码生成器]相关推荐
Feedly一款国外RSS订阅工具

Feedly一款国外RSS订阅工具

Feedly是一款国外RSS订阅工具,一般的国内用户很少去访问和使用,所以对于第一次访问Feedly的用户,Feed……...

QEMU 开源模拟器

QEMU 开源模拟器

QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两……...

HomeBrew macOS 的包管理器

Homebrew 是一个包管理器,用来在 macOS 安装 Linux 工具包。 安装过程很简单: ruby-e"$(curl-fsSLhttp……...

Cucumber 自动化测试工具

Cucumber 是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,旨在提高……...

kob 中心化作业调度系统

kob 是中心化的作业调度系统,定义了任务调度模型,实现了任务调度的统一管理和监控。 主要特点 客户端任……...

Koa Node.js 的 Web 框架

Koa 是下一代的 Node.js 的 Web 框架。由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠……...

今日开源
  1. Bopomofo4j 纯 Java 汉字转拼音库

    Bopomofo4j是一个零依赖、纯Java开发的汉字转拼音库,具备沙盒运行模式。JavaScript版本 Bopomofo.js 实现汉字转拼音 实现汉语单词转拼音 实现汉语句子转拼音,在一定程度解决多音字问题 实现简体,繁体互转 词库……

    开源软件 2024-06-25

  2. Servant Haskell Web 服务

    Servant 包含一组 Haskell 库,用来构建 Haskell Web 服务。这是一个类型安全的服务,同时支持生成 Web 服务的客户端代码(包括 Haskell 或者 JavaScript) Update changelog and bump versions inmaster git log ……

    开源软件 2024-06-25

  3. Scala 编程语言

    Scala 编程语言

    Scala是一门现代的多范式编程语言,旨在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。 Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值……

    开源软件 2024-06-25

返回顶部小火箭