Go语言项目推荐4

给大家推荐一个好玩的go项目:Nunu。项目地址:https://github.com/go-nunu/nunu

Nunu是一个基于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框架提供的项目布局。
全部评论
感谢楼主分享! 看了一下楼主之前的关于go学习路线的规划,感觉非常棒,有几个小问题想要请教一下:我现在是大三,如果想要在明年三四月份找到一份golang的暑假实习的话,是使用gin,go-zero之类的框架去做一个项目呢,还是去手写一个框架之类的,比如极客兔兔系列?
1 回复 分享
发布于 2023-12-10 23:47 江苏
收藏了,以后再看
1 回复 分享
发布于 2023-12-05 15:54 湖北
大佬你好,想请教一下这种开源项目该怎么学习呢?一点点读源码吗,还是说对着手敲一遍往简历上写?
点赞 回复 分享
发布于 07-27 18:07 江苏
28届刚敲完bluebell,再搞个这个项目暑假找个中厂实习如何
点赞 回复 分享
发布于 03-24 17:59 山东

相关推荐

头像 会员标识
12-16 14:43
浙江大学 Java
投递牛客等公司10个岗位
点赞 评论 收藏
分享
想干测开的tomca...:这份简历是“大一新生硬凹资深后端”的典型反面教材,槽点离谱到能让面试官直接笑出声: ### 1. 「年龄+入学时间」和项目复杂度完全脱节,可信度直接归0 你2024年7月才入学(现在刚读了1年多),19岁的大一新生,能把Vue3+Spring Boot+ShardingSphere+K8s+AI这些技术全塞进两个项目里?别说实际开发,光把这些技术的文档看完都得半年——这不是“能力强”,是“把招聘JD里的技术词全抄过来造假”,明摆着没碰过实际代码
点赞 评论 收藏
分享
想干测开的tomca...:让我来压力你!!!: 这份简历看着“技术词堆得满”,实则是“虚胖没干货”,槽点一抓一大把: 1. **项目描述是“技术名词报菜名”,没半分自己的实际价值** 不管是IntelliDoc还是人人探店,全是堆Redis、Elasticsearch、RAG这些时髦词,但你到底干了啥?“基于Redis Bitmap管理分片”是你写了核心逻辑还是只调用了API?“QPS提升至1500”是你独立压测优化的,还是团队成果你蹭着写?全程没“我负责XX模块”“解决了XX具体问题”,纯把技术文档里的术语扒下来凑字数,看着像“知道名词但没实际动手”的实习生抄的。 2. **短项目塞满超纲技术点,可信度直接***** IntelliDoc就干了5个月,又是RAG又是大模型流式响应又是RBAC权限,这堆活儿正经团队分工干都得小半年,你一个后端开发5个月能吃透这么多?明显是把能想到的技术全往里面塞,生怕别人知道你实际只做了个文件上传——这种“技术堆砌式造假”,面试官一眼就能看出水分。 3. **技能栏是“模糊词混子集合”,没半点硬核度** “熟悉HashMap底层”“了解JVM内存模型”——“熟悉”是能手写扩容逻辑?“了解”是能排查GC问题?全是模棱两可的词,既没对应项目里的实践,也没体现深度,等于白写;项目里用了Elasticsearch的KNN检索,技能栏里提都没提具体掌握程度,明显是“用过但不懂”的硬凑。 4. **教育背景和自我评价全是“无效信息垃圾”** GPA前10%这么好的牌,只列“Java程序设计”这种基础课,分布式、微服务这些后端核心课提都不提,白瞎了专业优势;自我评价那堆“积极认真、细心负责”,是从招聘网站抄的模板吧?没有任何和项目挂钩的具体事例,比如“解决过XX bug”“优化过XX性能”,纯废话,看完等于没看。 总结:这简历是“技术名词缝合怪+自我感动式凑数”,看着像“背了后端技术栈名词的应届生”,实则没干货、没重点、没可信度——面试官扫30秒就会丢一边,因为连“你能干嘛”都没说清楚。
点赞 评论 收藏
分享
评论
15
75
分享

创作者周榜

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