vlambda博客
学习文章列表

github源码阅读与实践的个人见解——golang

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

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

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

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

Swaggo

丝袜哥

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

github源码阅读与实践的个人见解——golang

echo-swagger源码首页

github源码阅读与实践的个人见解——golang

echo-swagger的使用介绍

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

github源码阅读与实践的个人见解——golang


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


package main

import (
"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 [email protected]

// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html

// @host petstore.swagger.io
// @BasePath /v2
func 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

github源码阅读与实践的个人见解——golang


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


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


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

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