templatedcodegenerator 简单模板化代码生成器
传送门:https://github.com/uniqss/templatedcodegenerator
templatedcodegenerator
code generator with specified templates. replace and loops.
Functionalities:
loop.csv:
ModelName, PackageName
Player, main
Item, main
Equip, main
1.simple template replace.
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}Create] = MsgProcCreate{{%=ModelName%}}
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}CreateMany] = MsgProcCreateMany{{%=ModelName%}}
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}Delete] = MsgProcDelete{{%=ModelName%}}
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}DeleteMany] = MsgProcDeleteMany{{%=ModelName%}}
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}Update] = MsgProcUpdate{{%=ModelName%}}
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}UpdateMany] = MsgProcUpdateMany{{%=ModelName%}}
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}Select] = MsgProcSelect{{%=ModelName%}}
DBMsgProcessorMap[protocol.DBMsgId_{{%=ModelName%}}SelectMany] = MsgProcSelectMany{{%=ModelName%}}
will be replaced as
DBMsgProcessorMap[protocol.DBMsgId_PlayerCreate] = MsgProcCreatePlayer
DBMsgProcessorMap[protocol.DBMsgId_PlayerCreateMany] = MsgProcCreateManyPlayer
DBMsgProcessorMap[protocol.DBMsgId_PlayerDelete] = MsgProcDeletePlayer
DBMsgProcessorMap[protocol.DBMsgId_PlayerDeleteMany] = MsgProcDeleteManyPlayer
DBMsgProcessorMap[protocol.DBMsgId_PlayerUpdate] = MsgProcUpdatePlayer
DBMsgProcessorMap[protocol.DBMsgId_PlayerUpdateMany] = MsgProcUpdateManyPlayer
DBMsgProcessorMap[protocol.DBMsgId_PlayerSelect] = MsgProcSelectPlayer
DBMsgProcessorMap[protocol.DBMsgId_PlayerSelectMany] = MsgProcSelectManyPlayer
2.loop support.
type DBUser struct {
{{%loop.begin%}}
model{{%=ModelName%}}s map[string]*protocol.{{%=ModelName%}}
modified{{%=ModelName%}}s map[string]*protocol.{{%=ModelName%}}
{{%loop.end%}}
}
will be replaced as
type DBUser struct {
modelPlayers map[string]*protocol.Player
modifiedPlayers map[string]*protocol.Player
modelItems map[string]*protocol.Item
modifiedItems map[string]*protocol.Item
modelEquips map[string]*protocol.Equip
modifiedEquips map[string]*protocol.Equip
}
3.loopIdx support.
package protocol
const DBMsgIdStart uint16 = 20000
{{%loop.begin%}}
const DBMsgId_{{%=ModelName%}}Create = DBMsgIdStart + {{%loop.lineIdx%}}
const DBMsgId_{{%=ModelName%}}CreateMany = DBMsgIdStart + {{%loop.lineIdx%}}
const DBMsgId_{{%=ModelName%}}Delete = DBMsgIdStart + {{%loop.lineIdx%}}
const DBMsgId_{{%=ModelName%}}DeleteMany = DBMsgIdStart + {{%loop.lineIdx%}}
const DBMsgId_{{%=ModelName%}}Update = DBMsgIdStart + {{%loop.lineIdx%}}
const DBMsgId_{{%=ModelName%}}UpdateMany = DBMsgIdStart + {{%loop.lineIdx%}}
const DBMsgId_{{%=ModelName%}}Select = DBMsgIdStart + {{%loop.lineIdx%}}
const DBMsgId_{{%=ModelName%}}SelectMany = DBMsgIdStart + {{%loop.lineIdx%}}
{{%loop.end%}}
will be replaced as
package protocol
const DBMsgIdStart uint16 = 20000
const DBMsgId_PlayerCreate = DBMsgIdStart + 0
const DBMsgId_PlayerCreateMany = DBMsgIdStart + 1
const DBMsgId_PlayerDelete = DBMsgIdStart + 2
const DBMsgId_PlayerDeleteMany = DBMsgIdStart + 3
const DBMsgId_PlayerUpdate = DBMsgIdStart + 4
const DBMsgId_PlayerUpdateMany = DBMsgIdStart + 5
const DBMsgId_PlayerSelect = DBMsgIdStart + 6
const DBMsgId_PlayerSelectMany = DBMsgIdStart + 7
const DBMsgId_ItemCreate = DBMsgIdStart + 9
const DBMsgId_ItemCreateMany = DBMsgIdStart + 10
const DBMsgId_ItemDelete = DBMsgIdStart + 11
const DBMsgId_ItemDeleteMany = DBMsgIdStart + 12
const DBMsgId_ItemUpdate = DBMsgIdStart + 13
const DBMsgId_ItemUpdateMany = DBMsgIdStart + 14
const DBMsgId_ItemSelect = DBMsgIdStart + 15
const DBMsgId_ItemSelectMany = DBMsgIdStart + 16
const DBMsgId_EquipCreate = DBMsgIdStart + 18
const DBMsgId_EquipCreateMany = DBMsgIdStart + 19
const DBMsgId_EquipDelete = DBMsgIdStart + 20
const DBMsgId_EquipDeleteMany = DBMsgIdStart + 21
const DBMsgId_EquipUpdate = DBMsgIdStart + 22
const DBMsgId_EquipUpdateMany = DBMsgIdStart + 23
const DBMsgId_EquipSelect = DBMsgIdStart + 24
const DBMsgId_EquipSelectMany = DBMsgIdStart + 25
templatedcodegenerator 简单模板化代码生成器的更多相关文章
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...
- 从零開始学习制作H5应用——V5.0:懊悔机制,整理文件夹,压缩,模板化
经过前面四个版本号的迭代.我们已经制作了一个从视觉和听觉上都非常舒服的H5微场景应用,没有看过的请戳以下: V1.0--简单页面滑动切换 V2.0--多页切换.透明过渡及交互指示 V3.0--增加lo ...
- zabbix模板化监控
zabbix模板化监控 1. 实验简述 在zabbix监控中,有很多组的概念,具体有以下几种: 1. 主机和主机组,相同类型/应用的主机,可以归属于同一个主机组 2. item和application ...
- java接口入参模板化,适用于企业化服务远程调度模板化的场景,接口入参实现高度可配置化
需求:远程服务接口模板化配置提供接入服务 模板接口分为三个模块:功能路由.参数校验.模板入库 路由:这里的实现方式很简单,就是根据业务标识找到对应的处理方法 参数校验: 参数校验这步涉及模板和校验类两 ...
- Android移动应用界面的模板化设计
Android没有像苹果开发那样功能强大的界面开发工具,本身 ADT插件提供的界面编辑能力有限,没办法刻画所有的界面情况:Android的界面xml代码可以进行人工修改,而Iphone的全部在图形界面 ...
- WPF Style设置和模板化Template
WPF样式设置和模板化是一套功能(样式,模板,触发器和演示图版),可以为产品设置统一外观.类似于html的css,可以快速的设置一系列属性值到控件. 案例:ButtonStyle 这里创建了一个目标类 ...
- Blazor 模板化组件开发指南
翻译自 Waqas Anwar 2021年4月15日的文章 <A Developer's Guide To Blazor Templated Components> [1] 在我之前的一篇 ...
- 读书笔记 effective c++ Item 43 了解如何访问模板化基类中的名字
1. 问题的引入——派生类不会发现模板基类中的名字 假设我们需要写一个应用,使用它可以为不同的公司发送消息.消息可以以加密或者明文(未加密)的方式被发送.如果在编译阶段我们有足够的信息来确定哪个信息会 ...
- 再起航,我的学习笔记之JavaScript设计模式30(简单模板模式)
简单模板模式 概念介绍 简单模板模式(Simple template): 通过格式化字符串拼凑出视图避免创建视图时大量节点操作,优化内存开销. 创建模板 在实际的业务中如果我们需要进行前后台交互,或多 ...
随机推荐
- 使用Navicat连接MySQL8.0版本报1251错误
出现1251错误是因为,MySQL8.0版本改变了密码的验证规则caching_sha2_password,MySQL之前的版本验证规则是mysql_native_password,现在需要修改MyS ...
- 将SublimeText3打造成简易Java IDE
简介与优点 使用该教程,你能使你的Sublime Text3可以作为一个精简版的JAVA IDE工具 既可以独立在cmd控制台运行也可以在Sublime自带的控制台运行 运行后不会有乱码 报错后可以在 ...
- 注解在Spring中的运用(对象获取、对象单例/多例、值的注入、初始化/销毁方法、获取容器)
1.注解的方式获取对象 (1)导包: (2)书写配置文件(要保证已经导入了约束): <?xml version="1.0" encoding="UTF-8" ...
- 浅谈Vue中计算属性computed的实现原理
虽然目前的技术栈已由Vue转到了React,但从之前使用Vue开发的多个项目实际经历来看还是非常愉悦的,Vue文档清晰规范,api设计简洁高效,对前端开发人员友好,上手快,甚至个人认为在很多场景使用V ...
- spring-boot autoConfiguration
一, 第一个待注入类 public class CacheService { } public class LoggerService { } 方法一, 实现接口ImportSelectort pub ...
- gateway(二、过滤器)
过滤器其实是路由转发+过滤器 自定义过滤器 首先创建一个类继承下边两个类,实现过滤器 然后在启动项中通过创建bean的方式创建路由器 @Componentpublic class TimeFilter ...
- Spring学习(四)--Spring的IOC
1.BeaDefinition的Resource定位 (1)直接使用BeanDefinitionFactory 定义一个Resource来定位容器使用的BeanDefinition. Resource ...
- error C3861: “back_inserter”: 找不到标识符
Reference:https://blog.csdn.net/taotaoah/article/details/52225364 and https://baike.baidu.com/item/c ...
- MATLAB中conv2的详细用法 (以及【matlab知识补充】conv2、filter2、imfilter函数原理)
转载: 1.https://blog.csdn.net/jinv5/article/details/52874880 2.https://blog.csdn.net/majinlei121/artic ...
- Redis 中 BitMap 的使用场景
BitMap BitMap 原本的含义是用一个比特位来映射某个元素的状态.由于一个比特位只能表示 0 和 1 两种状态,所以 BitMap 能映射的状态有限,但是使用比特位的优势是能大量的节省内存空间 ...