go基础阶段作品—starcharts

本文分享了一位开发者利用Go语言实现的GitHub项目star计数折线图,通过main.go、http/net、embed等标准库学习,并解析config、controller与内部模块,旨在理解项目结构与标准库应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源:

https://github.com/caarlos0/starcharts

使用:

直接打开3000端口即可,点生成即可
在这里插入图片描述

介绍:

这个项目就是将github上的这个项目,从他创建以来到现在有多少个人star(关注)生一个折线图,可视化显示项目的star趋势

go基础阶段作品,这个项目主要学习了go的几个主要标准库,例如http/net,os,time,embed

当然了里边用到了许多卡洛斯作者自己创建的特殊的包,例如:env等,这一部分暂不涉及学习,毕竟写这个项目主要是为了学习标准库的应用,以及过一遍一个项目大概流程

作品项目架构:

main.go:

just this one
这里主要是通过router,路由链接起来其他几个go程序里边的方法结构,再往下通过http向客户端请求,服务端响应,通过embed.FS这个变量将静态资源和go程序连接起来,关于这个我专门写了一篇博客,详细见: 打开本地端口,就是一个网页,从而实现生成星图…

config:

config.go
就定义一个config结构,为了获取github配置,例如例如token,打开端口,但是我不了解env,因为这是作者自己写的一个接口(应该,或者是一个库)

controller:

repo.go:

这个主要是实现了获取github信息,例如仓库token,仓库star数量等,和对应的时间,
并且生成星图的功能

index.go:

闻名思意,和index.html联系,用到了httperr这个作者自己写的库,主要实现的就是对http处理增加了一个错误返回,使其可以显示在html中

internal:

github:
github.go:

初始化,速率限制,github结构,获取token,val等

reposi.go:

获取仓库返回数据,获取权限,调用API检查速率限制

star.go:

没什么好说的,拿到一段时间的星星,最关键的数据,做了错误处理

roundrobin:
roundrobin.go:

就是通过这个go程序联系其他go程序,路由作用

static:

包含了html,css,图片和SVG这些静态资源,

其他:

go.mod
这个就是moudle,但是作者引了很多包,除了标准库这些还有pkg,redis当然我给他删除了因为没用到,当然还有其他的我不懂

Makefile
规定了那些需要先编译,那些需要后编译,知识浅浅的知道是干啥的

说明:

结尾说明:这个项目超过我期限的2天,因为真的是看不懂,太多引用了,只能把重点放在学习http/net embed,os,time库上,以及对项目的了解,能得到的参考资料几乎等于没有,所以学的过程中我问了很多同学,从哪里了解了moudle,makefile等知识,但是即便是现在我也没能对他完全了解,这也是不现实的,何况我是删掉了那些redis相关的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值