![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
GO技术预研
文章平均质量分 79
开始学习golang
一叶知秋@qqy
这个作者很懒,什么都没留下…
展开
-
Golang之旅(1)-数据类型
Golang数据类型布尔类型数字类型字符串类型复杂类型布尔类型数字类型字符串类型复杂类型原创 2021-10-07 00:49:49 · 487 阅读 · 0 评论 -
GRPC go与C++通信
前言由于要实现go服务端与嵌入式设备的通信打通,综合利弊选择golang与c++的grpc通信方式实现,GRPC由于原生不支持c语言(不可直接生成c的服务,但是可以生成序列化反序列化的代码,使用protoc-c),所以选用原生支持的c++,生成c++端的grpc序列化相关代码,grpc服务相关代码,至于grpc相关代码,若感兴趣可以试着自行尝试,但并不建议用在项目中,因为每次增加服务或者改变代码时,这部分都得自行做适配,且易出bug。示例来源于官方代码的golang部分以及c++部分,实现现在的gola原创 2021-09-25 23:51:45 · 2335 阅读 · 0 评论 -
c++的grpc例子
官方文档grpc.io安装cmakeLinuxsudo apt install -y cmakemacbrew install cmake终端输入以下命令查看版本:cmake --versioncmake version 3.21.2安装gRPC的其他工具下面有gRPC的依赖工具:Linuxsudo apt install -y build-essential autoconf libtool pkg-configmacbrew install aut原创 2021-09-23 19:51:20 · 841 阅读 · 0 评论 -
GRPC第一个例子
定义proto文件首先看下这次用到的proto文件syntax = "proto3";option go_package="./;protofile";package protofile;message Req { string message = 1;}message Res { string message = 1;}service HelloGRPC { rpc SayHi(Req) returns (Res);}syntax文件的第一行指定当前proto原创 2021-09-22 22:20:24 · 541 阅读 · 0 评论 -
Grpc环境搭建
golang的Grpc环境搭建安装protobuf使用brew进行安装。brew info protobufbrew install protobuf检验protobuf安装结果protoc --versionlibprotoc 3.17.3安装第三方包go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26go install google.golang.org/grpc/cmd/protoc-gen-go-grpc原创 2021-09-22 11:34:08 · 512 阅读 · 0 评论 -
中间件gin-contrib / gzip
前言简介维基百科Gzip是一种压缩文件格式并且也是一个在类 Unix 上的一种文件解压缩的软件,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公开发布,版本号0.1,1993年2月,发布了1.0版本。原理Gzip 压缩背后的原理,是在一个文本文件中找出一些重复出现的字符串、临时替换它们,从而使整个文件变小。根据这个原理,文件中代码的重复率越高,那么压缩原创 2021-09-14 16:52:02 · 2078 阅读 · 0 评论 -
使用swaggo自动生成Restful API文档
前言本文参考了两篇优质博客,并作出最后参考整理Go学习笔记(六) | 使用swaggo自动生成Restful API文档Mac下安装swaggo本文是在mac环境下,但是方法在windows下是相通的,因为都是基于goland的终端进行的操作,如果是在系统终端下也是ok的。在写代码时也是要写明注释的,而写完api接口之后,肯定也是要对外提供api文档,这样别人才能够准确使用你的借口,而好的接口文档可以为你后期减少很多不必要的沟通问题。再者,在开发api阶段你肯定也是要自己验证api的结果的,而s原创 2021-09-07 15:31:16 · 745 阅读 · 0 评论 -
GIN接口速查
前言持续增加中。。。。gin.Engine原型:// Engine is the framework's instance, it contains the muxer, middleware and configuration settings.// Create an instance of Engine, by using New() or Default()type Engine struct { RouterGroup // Enables automatic redirecti原创 2021-08-22 18:38:39 · 504 阅读 · 0 评论 -
gin-vue-admin创建后端API
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。这里记录的是开源项目的源码,感兴趣的可以直接撸源码去哈创建api首先进入开源项目gin-vue-admin的server目录内,在api->v1->system下新建一个test.go文件,在内部实现如下代码:package systemimport ( "gin-vue-admin/model/commo原创 2021-08-21 23:19:03 · 2236 阅读 · 0 评论 -
goViper应用
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。这里记录的是开源项目的源码,感兴趣的可以直接撸源码去哈Viper()flag.StringVar函数原型:// StringVar defines a string flag with specified name, default value, and usage string.// The argument p poi原创 2021-08-19 23:22:30 · 483 阅读 · 0 评论 -
Go 基础函数
前言慢慢增加。。。os.Stat(path)函数原型:// Stat returns a FileInfo describing the named file.// If there is an error, it will be of type *PathError.func Stat(name string) (FileInfo, error) { testlog.Stat(name) return statNolog(name)}描述:Stat返回描述命名文件的FileInfo原创 2021-08-18 22:13:14 · 344 阅读 · 0 评论 -
Go zap日志
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。这里记录的是开源项目的源码,感兴趣的可以直接撸源码去哈zap创建实例通过调用zap.NewProduction()/zap.NewDevelopment()或者zap.Example()创建一个Logger。这三个方法的区别在于它将记录的信息不同,参数只能是string类型三种创建方式对比:Example和Productio原创 2021-08-18 22:12:49 · 756 阅读 · 0 评论 -
mac安装mysql8.0.26
下载地址MySql下载地址打开官网后选择MAC操作系统,我这里是mac x86,所以直接进行如下筛选。在终端输入下面的命令可以查看自己的mac是x86还是armuname -a其中x86_64代表的就是x86框架,64位筛选后得到四个版本选择DMG Archive版本进行下载在官网会提示登录和注册,但是不用理会,选则下面的仅下载就可以然后下载MySql的压缩包并双击打开一路continue。。。。输入密码此时应该是安装在此目录下/usr/local/mysql原创 2021-08-15 16:00:28 · 1904 阅读 · 6 评论 -
GO-Viper库
前言学习使用参考这篇非常好的博文:Go语言配置管理神器——Viper中文教程自己对照着博文又自己手敲了一遍,发现其对官方文档翻译十分到位,是不可多得的好材料,赞Viper简介Viper是适用于Go应用程序(包括Twelve-Factor App)的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持以下特性:设置默认值从JSON、TOML、YAML、HCL、envfile和Java properties格式的配置文件读取配置信息实时监控和重新读取配转载 2021-08-15 15:39:53 · 654 阅读 · 0 评论 -
linux mac安装go
下载源码使用mkdir新建一个路径,然后cd进入,或者直接CD进入一个常用目录下进入go官网找到适合自己平台的版本go官网使用下面的命令下载mac版本golang的源码包wget https://dl.google.com/go/go1.16.7.darwin-amd64.tar.gz下面的命令则是linux平台的下载命令wget https://dl.google.com/go/go1.16.7.linux-amd64.tar.gz其中实测go1.16.7.linux-amd64字段的原创 2021-08-14 22:40:33 · 355 阅读 · 0 评论 -
Windows安装配置MySql8.0.21
下载地址MySql下载地址打开官网后选择Windows操作系统在官网会提示登录和注册,但是不用理会,选则下面的仅下载就可以然后下载MySql的压缩包在本地选择一个合适的路径下解压例如我就在常用的开发环境目录下进行的解压创建数据目录与配置文件在安装目录创建data目录用作数据缓存目录,再创建配置文件。系统添加环境变量我的电脑–>属性–>高级系统设置–>环境变量选择path添加:mysql安装目录下的bin文件夹地址这里需要注意是否以前有安装过老版本的Mysql,原创 2021-08-11 20:57:18 · 327 阅读 · 2 评论 -
GIN日志和日志格式
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。为什么要使用日志记录参数信息猜测用户行为复现系统bug并修复不推荐使用GIN自带的日志GIM虽然自带日志写入中间件,但是自定义比较蛮烦,而且使用起来也不能随心所欲。第三方日志工具go-logginglogrus看见go-logging是不是很眼熟,再python内也有个logging日志切割自行根据时间原创 2021-08-10 21:34:48 · 832 阅读 · 0 评论 -
gin的中间件和路由分组
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。什么是路由分组对router创建Group就是分组,对同一分组会拥有统一前缀和统一中间件。诚然这对于项目的规范管理是非常重要的写法:router:=gin.Default()v1 := router.Group("/v1")v1.POST("/login", loginEndpoint)v1.POST("/submit",原创 2021-08-10 21:01:25 · 1477 阅读 · 1 评论 -
GIN文件上传与返回
上传文件使用postman模拟上传文件无论使用postman还是前端的同学直接上传文件,都需要在请求头中使用Content-Type来告知,即带值multipart/form-data来进行上传文件form-data传参此时在post请求里已经不能传json了,要使用form-data。此时在postman中的请求参数体,Body中新建一个key,名为file(可以任意一个key),然后将其文件格式设置为File,这时使用的文件格式,换成字符串Text也是允许的。如果选择的是Text,在后面原创 2021-08-09 21:26:37 · 3915 阅读 · 2 评论 -
GIN Bind模式获取参数和表单验证
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。所谓的绑定就是先建立一个结构体,然后将接收到的参数通过绑定的形式直接映射上去bind模式以及如何使用在使用绑定模式时有两种方式,即must bind和should bind。must bindMethods:Bind, BindJSON, BindXML, BindQuery, BindYAMLBehavior 这次方法原创 2021-08-08 17:13:08 · 2196 阅读 · 0 评论 -
GIN中GET POST PUT DELETE请求
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。修改端口号重新看一下上一篇中写的示例程序package mainimport "github.com/gin-gonic/gin"func main() { r := gin.Default() //启动gin路由,携带基础中间件启动 //让启动的路由接收get请求,且是/ping,运行一个匿名函数,将gin的上下文原创 2021-08-07 19:55:14 · 3111 阅读 · 0 评论 -
GIN初探,环境安装
前言感谢开源项目gin-vue-admin,以及1010工作室的教程,项目文档我只是在跟着学习,然后记录下笔记而已,可能会有新的代码加入,但是本质还是跟着学习的一个过程。环境要求现在几乎都已经开始使用mod管理包了,所以肯定是要求GO版本是1.1之上,本次直接使用GO1.16版本,也即是最新的1.16.6,goland采用2.21.2,都使用最新的版本。如果有海外链接,所以可以不设置下面的代理。而且好像1.16已经默认使用代理了go env -w GO111MODULE=on #设置全局开启原创 2021-08-07 15:08:37 · 359 阅读 · 0 评论