go 比较好用的一些工具库
go 比较好的一些规范 规范设计:git commit的工具 commitizen-go: 使你进入交互模式,并根据提示生成 Commit Message,然后提交。; go-gitlint: 检查历史提交的 Commit Message 是否符合 Angular 规范,可以将该工具添加在 CI 流程中,确保 Commit Message 都是符合规范的。;

wxvirus2023年2月12日
大约 6 分钟
go控制gRPC的metadata
go 控制 gRPC 的 metadata " gRPC 让我们可以像本地调用一样实现远程调用,对于每一次的 RPC 调用中,都可能会有一些有用的数据,而这些数据就可以通过metadata来传递。metadata是以key-value的形式存储数据的,其中key是string类型,而value是[]string。metadata使得client和server

wxvirus2023年1月24日
大约 1 分钟
gRPC拦截器
gRPC 拦截器 intereceptor.go源码内容 我们只需要去实现这个后面的函数即可 服务端代码 客户端 客户端的源码实现内容 所以,客户端只要去实现这个函数即可 或者源码部分这个是可变参数 可以额外自己定义一个切片来存储后面的参数 拦截器的应用场景 https://github.com/grpc-ecosystem/go-grpc-middlewa

wxvirus2023年1月24日
大约 4 分钟
context上下文
引入 在 Go 的 http 包的server中,每一个请求都有一个对应的goroutine去处理,通常需要访问一些请求特定的数据,比如终端用户的身份认证信息、验证相关的 token、请求的截止时间,当一个请求被取消或超时时,所有用来处理请求的 goroutine 都应该迅速的退出,然后系统才能释放这些 goroutine 占用的资源。 为什么需要 Cont

wxvirus2022年8月3日
大约 3 分钟
gRPC和protobuf
gRPC " gRPC 是一个高性能的、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc、grpc-java、grpc-go,其中 C 版本支持 C、C++、Nodejs、Python、Ruby、Objective-C、PHP 和 C#。" grpc 网址:https://grpc.io

wxvirus2022年7月10日
大约 4 分钟
互斥锁和读写互斥锁
Go 中的锁 " 看下面一段代码,同时竞争全局变量x求和。" 这样下来,每次的结果多会不一样,可能你前脚把x加到 100,后一个 goroutine 又加到了 300,最终导致结果不是我们想要的 10000 即我们最终得对一个公共的资源不能同时处理数据。不然就会产生数据竞争,并发不安全。像我们上厕所一样,当有一个人在厕所,会把门关上加个锁,这样其余的人就不能

wxvirus2022年6月28日
大约 9 分钟
select多路复用
select 多路复用 " 在某些场景下我们可能需要同时从多个通道接收数据,通道在解说数据时,如果没有数据可以被接收那么当前的 goroutine 将会发生阻塞" 你可能会这么写: 虽然可以实现需求,但是程序的运行性能会非常差。Go 语言内置了select关键字,使用它可以同时响应多个通道操作。 特点: 可处理一个或多个channel的发送/接收操作; 如果

wxvirus2022年6月25日
大约 3 分钟
基础学习

输出

在终端将想要的展示的数据显示出来的一个过程。

  • 内置函数
    • print
    • println
  • fmt 包(推荐使用)
    • fmt.Print
    • fmt.Println

扩展:进程里有stdout stdin stderr


wxvirus2022年6月19日
大约 9 分钟
go基本数据类型
bool 类型 布尔类型的值只可以是常量true或者false。 一个简单的例子: 数值型 整数型 int8 有符号 8 位整型(-128-127)长度:8bit 一个字节; int16 有符号 16 位整型(-32768-32767); int32 有符号 32 位整型(-214783648 到 214783647); int64 有符号 63 位整型(-

wxvirus2022年6月19日
大约 3 分钟
2
3
4