我的GitHub源码阅读与实践心得——Golang篇

发表时间: 2020-09-24 22:00

最近这段时间,由于工作上的需要,还是比较忙。不过还是每天要保证更新一篇文章或者关于技术的源码分享。那今天我就不做源码分享了,主要原因是时间上来不及。毕竟晚上还要跟进项目的测试进度。闲暇之余,写一篇文章,来分享一下阅读github的源码,其实主要是实践和动手能力吧!

当我最开始接触github的时候,其实也是接触golang的时候,看我的github,也就从去年开始。2019年。我2016年毕业,实际上是2015年9月出来工作的。从2015到2019,还未接触golang的时间的这段工作期间,主要是做.NET的CURD,就是业务上的CURD,可以这么说吧,基本上没啥价值和进步。重复的工作做来做去,加上asp.net本身就是傻瓜式的编程,泛型什么的都封装好了,直接拿着来使用,没啥难度。也就是这段时间,对技术栈没什么概念,更不要谈及github这些开源网站了,毕竟看到英语就头疼,直接忽略都不看的。

在这里奉劝那些刚刚毕业或还在大学校园里的同学,请珍惜时间,好好抓住时间提高自己。无论是不是吃程序员这碗饭,都是一样的。还要学会控制情绪,不要随随便便发脾气,实在不行,一杯酒来解决,再不行两杯。。。。。。我以我4年的工作、跨越4座城市、7家公司的经验给能看到的这篇文章的人的忠告。

废话一大筐了,现在开始回归主题。在这里,我会拿2个之前分享的源码例子来举例。

Swaggo

github打开并搜索swaggo,在这里我把地址直接写出来:https://github.com/swaggo


丝袜哥


从左到右,依次是swag,gin-swagger,echo-swagger,http-swagger。一般情况下,项目中引用都需要引用swag,其次根据你的框架需要,比如你的项目中使用的是gin或者echo,进入相关的模块。在这里我以echo为例。


echo-swagger源码首页


echo-swagger的使用介绍

其实在echo-swagger源码首页,已经告诉了怎么使用,只要懂那么一点点英文,不过英语4级,也是可以看懂的。要是看起来为难,直接进入example文件夹。


一个是docs文件夹,一个是main.go文件,其实docs是自动生成的,main.go是官方给的使用例子。我们直接进去看看。


package mainimport (	"github.com/labstack/echo/v4"	"github.com/swaggo/echo-swagger"  //这里是需要引用的echo-swagger的包	_ "github.com/swaggo/echo-swagger/example/docs" // docs is generated by Swag CLI, you have to import it.	//这里的docs文件夹是上面刚刚说过的自动生成的文件,里面的主要是swagger生成好的接口文档)// @title Swagger Example API// @version 1.0// @description This is a sample server Petstore server.// @termsOfService http://swagger.io/terms/// @contact.name API Support// @contact.url http://www.swagger.io/support// @contact.email support@swagger.io// @license.name Apache 2.0// @license.url http://www.apache.org/licenses/LICENSE-2.0.html// @host petstore.swagger.io// @BasePath /v2func main() {	e := echo.New()	e.GET("/swagger/*", echoSwagger.WrapHandler) //这里是必要的代码,否则是项目是运行不起来的	/*		Or can use EchoWrapHandler func with configurations.		url := echoSwagger.URL("http://localhost:1323/swagger/doc.json") //The url pointing to API definition		e.GET("/swagger/*", echoSwagger.EchoWrapHandler(url))	*/    //如果想要你的demo能跑起来,这上面的注释的代码得解开。因为要加载里面的文件	e.Logger.Fatal(e.Start(":1323"))}

在这里,给英语不好的小伙伴们推荐一个翻译网站,www.deepl.com,该网站可是号称打败谷歌的翻译。毕竟连我们中国的文言文都能准确翻译出来。如果有不懂的,可以直接把英文代码块拿去翻译,很容易能看到你看不懂的英文的意思。对于写代码,还是很有帮助的。

go-redis

第二个分享的例子是go-redis,源码地址
:https://github.com/go-redis/redis



一般开源的第三方工具源码都会有Doc和Examples这两个东西的,一个是文档,一个是使用例子,可以直接照着文档阅读或者敲代码,都是可行的,如果遇到了写的跑不起来,则直接去Examples这个文件里面找对应的例子跟着去操作。


这是文档,直接告诉你要引用包,怎么使用,代码都可以直接拿去粘贴复制,开箱即用


这是Examples,每一个操作都会有例子给你看。

今天就到这里了,下班啦啦啦。。。。。