Go
柯里化与偏函数
· ☕ 2 分钟
1. 什么是柯里化 根据维基百科词条定义,在计算机科学中,柯里化(Currying)是把接受多个参数的函数转变成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。 英文版定义是一个两层的定语从句,翻译

使用 Base64 解码 JWT Playload 数据不完整
· ☕ 2 分钟
在对 JWT 进行 Base64 解码时,发现 JSON 数据不完整。本文主要介绍相关知识点并解决这个问题。 1. JWT 简介 JWT 通过在 Header 中设置 Authorization: Bearer <token> 进行认证的传递。 JWT Token 是一个 . 连接的 Base64 编码字符串,类似这样 Header.Payload.Signature ,有三部分组成: Header ,定义 Token 类型和加密算法 1 2 3 4 { "alg": "HS256", "typ": "JWT" } Payload ,负载信息,通

VS Code 无法下载 Go 插件的工具包
· ☕ 1 分钟
VS Code 安装 Go 插件之后,打开 Go 项目时,编辑器会提示安装工具包。 但是 golang.org 无法直接访问,我们需要将包手动下载到 GOPATH 目录,进行安装。 创建包目录 1 2 cd $GOPATH mkdir -p src/golang.org/x 下载包 1 2 3 cd src/golang.org/x git clone https://github.com/golang/tools.git git clone https://github.com/golang/lint.git 安装包 1 2 go get golang.org/x/tools/... go get github.com/golangci/golangci-lint/cmd/[email protected]

如何使用 KubeBuilder 开发一个 Operator
· ☕ 5 分钟
通过 Operator 的方案,可以对 Kubernetes 的功能进行友好地扩展。Operatpr = CRD + Controller。首先通过 yaml 定义,生成 CRD ,然后 Controller 不断地监听 etcd 中的数据,执行相应动作。开发 Operator 时,有很多繁琐且重复的事情。KubeBuilder 可以帮助我们快速生成骨架代码,

一起来学 Go --(4)常用函数
· ☕ 2 分钟
1. main 和 init 函数 一个 package 里面可以写多个 init 函数,但必须仅包含一个 main 函数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package main import ( "fmt" ) func init() { fmt.Println("init 1") } func init() { fmt.Println("init 2") } func main() { fmt.Println("main") } // init 1 // init 2 // main 2. defer 函数 Go 不会立即执行 defer 修饰的代码,而是进行标记,在程序退出之前执行。 1 2