[开源myf-go] 基于gin和gorm的企业级MVC框架

最近在公司内封装的go mvc框架代码接近收尾,核心功能与大部分常用SDK均以实现,压测效果也符合预期,所以我整理了一下整个框架的代码,将一个可直接运行的版本分享给大家做学习使用。

作为个人来说,也许安装一下gin、gorm等第三方类库,然后简单代码初始化一下就可以开发了。

但是作为一个企业广泛推广的框架,其必须具备标准的封装与可配置化设计,确保所有项目均可以基于框架快速创立并且开发风格一致。

因此,企业级框架有一些核心问题是必须解决的:

  • 主流SDK的二次封装:包括mysql、redis、http等,其目的是约束业务研发同学只有一种写法,代码可读性与可维护性更强。
  • 调用链trace埋点(对接了大众点评cat):包括mysql、redis等,其目的是对接APM系统,用于业务报警、监听、调用链分析,因此也必然要求上述的SDK二次封装,以便侵入式埋点。
  • 中间件附加功能:通过中间件模式,为框架增加panic捕获、请求超时控制,提供请求级的context透传,以便灵活订制请求处理流程。
  • 支持web和cron模式:同一套框架,同时满足web模式与cron定时任务模式,提供类似于java quartz的相似体验。

下面是框架的简单用法介绍,更多细节大家可以下载运行与阅读代码。

web模式

cron模式

配置文件

采用toml格式。

完整代码

地址:https://github.com/owenliang/myf-go,具体使用方法见README。

源码阅读入口:

项目依赖了gin、gorm、大众点评cat(代码已fork私有化管理、上报性能方面正在做代码改造)。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~