给大家推荐一个好玩的go项目:Nunu。项目地址:https://github.com/go-nunu/nunuNunu是一个基于Golang的应用脚手架工具,可以帮助开发者快速搭建一套go项目的应用程序模板。nunu生成的项目模板集成了go项目常用的框架和组件,如gin,gorm,go-redis,wire,viper,swag等等。当然了,项目模板可以有很多,不一定非得拘泥于nunu提供的这一套,但在这里我想重点介绍一下nunu命令本身以及使用nunu命令生成的项目布局的亮点。首先是nunu命令,我最开始接触nunu的时候,源码还只有500多行,现在差不多有1000行左右,但大家不要畏惧看源码和复现nunu源码。nunu源码中最核心最亮眼的地方,就在于对cobra库的使用。cobra库是Golang里一个用于创建强大的现代CLI应用程序的第三方库,许多很知名的开源项目使用到了cobra,比如docker,k8s。大家如果接触过go微服务,应该对go-zero和kratos框架不陌生。这两个框架的命令生成工具goctl和kratos,也都是基于cobra开发的。大家如果可以掌握cobra,将来也可以开发属于自己的命令行工具,而在面试时,别人的简历项目都是各种秒杀商城及其变体(真正的秒杀商城绝对不是一个人可以搞定的),而你的项目是一个命令行工具,是不是显得别具一格。其次是wire工具。nunu生成的项目架构,和微服务框架kratos一样,使用了wire实现了模块化和解耦。wire是 Google 开源的一个依赖注入工具,它是一个代码生成器,并不是一个框架。我们只需要在一个特殊的go文件中告诉wire类型之间的依赖关系,它会自动帮我们生成代码,帮助我们创建指定类型的对象,并组装它的依赖,实现Javaer耳熟能详的控制反转。当然,这不是必须的,许多大型go项目不使用这种方式,依然可以很好地组织项目布局和结构。但直到今天,业界也没有一个统一的go项目布局的标准,所以尽可能多了解一些go项目组织布局的方式,还是很有必要的。等大家以后进到企业参与实际开发,你们企业大概率也会有自己的项目结构布局。希望这个项目可以对大家有所帮助,大家以后在学习go项目开发时,如果不想使用视频教程里的组织布局,就可以使用nunu框架提供的模板,如果习惯了nunu提供的项目布局模板,大家将来也更容易适应kratos框架提供的项目布局。
点赞 13
评论 4
全部评论

相关推荐

脑子烧了,这是什么规律啊。1,10,19,37,64,( )
hl7:0*9+1 1*9+1 2*9+1 4*9+1 7*9+1,9的系数是前两个系数相加再加1?
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务