编写优雅、高效、开箱即用的Go框架

作者: 乘风御上者 分类: GoLang 发布时间: 2022-06-16 11:26

想必大家都知道Go语言的Web框架有很多,如 Gin/Beego/Echoo/… 等等。

其中Gin框架最为出名,它的高效是其最大特点,也是最受欢迎的,当前Star已超过60K。

像Beego、Echoo之流则属于第二梯队,各自展示自己的特点,受到不同群体的追捧。

在这些框架中大致可以分为两类:一类我称之为框架包,以Gin框架为代表。一类是项目包,以Beego框架为代表。

所谓框架包,意思是只需引入该框架的包,直接使用其中的功能。至于你自己项目结构怎么布局,都是你自己的事情,框架只是将项目主逻辑及必要功能实现。

而项目包则是将项目结构、常用的功能都加以实现,基本上该框架实现的功能能满足项目的开发,方方面面的功能都给考虑好了。

两类框架各有优缺点,目前来看更多的开发者更倾向于框架包此类框架。

我猜测可能是因为Go的开发者中纯编程入门的很少,大多数是JAVA或者PHP转行过来的,都有一定的基础,不喜欢太多限制的东西,有自己的逻辑认知。

对我个人而言也更喜欢Gin框架,将执行效率放在第一位,兼顾必要功能,由开发者自己去实现非通用功能。

所以当我在做一个小程序项目时,我用Gin框架编写的相关接口和后台管理功能。不过在我编写过程中,也认识到像项目的结构、应用的MVC架构、路由功能、日志功能、数据库功能、配置文件等,其实没必要每次都重复写一边。

这又让我考虑是否应该使用像Beego这类框架,不过还是被自己否定了,这类框架有太多的功能,只是做一些中小型项目根本用不到,且会让项目更加臃肿。

市面上还有很多的自带后台管理功能的框架,虽然看似能提高效率,但是由于代码质量残次不齐,编写毫无规范可言,上手难度可想而知。想二次开发就要慎之又慎!

鉴于以上问题,我尝试自己写了一个超轻量级的高效框架,这是一个开箱即用的Gin框架。对项目中路由、配置、中间件、控制器、模型、数据库都做了高效、可扩展处理,且对开发者有非常大的自由度,拒绝在增删功能时需要多处修改。

Osier优雅、高效、开箱即用的Go框架

项目地址: https://github.com/toocf/osier

后期考虑在Osier基础上增加后台管理功能(另一个框架)。在后台可以一键生成CRUD,自动生成控制器、模型、视图、JS、菜单等功能,让开发者可以安心畅快的编写业务接口。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复