在开发中代码开发时建议大家按照打包要求去开发项目,这样可以确保新开发代码可以打包成插件,如果你开发项目确定不会打包那就不需要按规范开发了,只需保证你业务代码跑起来就行。这里我们要求是为了开发后的功能可以打包成代码仓的插件,方便后期复用。
一、创建文件目录要求
- 在app目录下创建的模块目录下要有controller.go,用controller.go控制器引入类目录
- 模块目录目录下必须是目录文件夹,不能直接写.go文件,除了controller.go控制,可以参考business模块
- 因为打包时只能打包到类文件夹,所以一个需要独立打包的必须单独一个目录,例如:app/business/createcode测试类createcode,就可单独打包了,但是里面app\business\createcode\product.go的product.go是无法独立打包的。
二、数据库命名要求
数据表命名尽量和项目业务名称、或与需要打包包名、或与模块名、或与类功能相关,命名格式如:xx_weixin_xx,其中weixin就是微信模块名(打包包名),这样打包时可以直接用weixin快速搜索出需要打包的数据表。
三、配置文件要求
如果你开发的插件需要配置动态yaml文件,则在resource/config目录下添加和插件相同名称的配置文件名,例如weinxin 插件需要配置文件,则创建一个文件名为weixin.yaml,这样打包weixin插件时候,打包工具会自动把weixin.yaml配置文件打包到zip包里。
四、plugin扩展工具包要求
如果开发的代码仓插件只是一个工具包,不需要的具体业务,比如已经封装的“ip地址解析属地区”包,它只是一个把IP解析为归属地区信息,我们就可以把它放在utils/plugin目录下(扩展工具),这特别特别注意是,代码文件可以是单独文件,也可以文件和对应文件夹,如果单个文件不能满足,我们就要创建文件夹来编写复制功能代码,然后把调用函数放在utils/plugin目录下和文件相同名称的.go文件,这样在app就可以用plugin.函数名 调用。下面我们用“ip地址解析属地区”组件举例子。
目录结构如下:
├── plugin # 扩展插件目录 │ ├── ipregion # “ip地址解析属地区”目录文件夹 │ │ ├── searcher.go # 编写业务 │ │ └── util.go # 工具函数 │ └── ipregion.go # “ip地址解析属地区”文件 用于app开发时调用
框架代码截图:
就像截图所示用调用就直接用如下代码调用即可:
data, err := plugin.NewIpRegion("220.163.107.50")
大家开发时可以下载示例插件参考。