研发
Go 私有包的构建和使用
· ☕ 2 分钟
1. 创建一个 Go Modules 项目 创建目录 1 2 mkdir go-test cd go-test 初始化包 1 2 3 4 5 go mod init gitlab.private.com/shaowenchen/go-test go: creating new go.mod: module gitlab.private.com/shaowenchen/go-test go: to add module requirements and sums: go mod tidy 添加业务代码 main.go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 package main import ( "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "hello world.", }) }) r.Run() } 下载依赖到 vendor 1 2 go mod tidy go mod vendor 本地运行 1 2 3 4 5 go run

一个通用流水线设计
· ☕ 5 分钟
1. 解耦引擎释放流水线能力 在设计系统时,我们常面临两难。是内敛复杂度,对外提供单一易用的功能;还是释放复杂度,将灵活归还用户。这非常考验产品能力。 设计 CICD 系统时,我们可以直接将 Jenkinsfile、PipelineRun 等概念直接抛给用户,让

国内访问 GitHub 的若干方法
· ☕ 1 分钟
由于众所周知的原因,在国内的网络环境下,访问 Github 时,网络会阻断或者很慢。本文提供了若干访问方法。 1. 使用 Github Mirror 下载 直接在 GitHub 仓库前面拼接 Proxy 地址,不同的 Mirror 拼接方式可能有所不同。下面以拉取 https://github.com/shaowenchen/scripts 仓库为例。 https://ghproxy.chenshaowen.com 1 git clone https://github.com/shaowenchen/ops 2. 通过 Gitee 导入 GitHub 项目 可以参考文档: GitHu

一些常见的计算机面试题
· ☕ 4 分钟
计算机基础 堆和栈 什么时候用堆?什么时候用栈?栈有什么作用?Golang 的变量在栈还是堆?堆、栈有没有上限?有的话和什么有关? 数据结构 Slice 空间是怎样分配的?双倍扩容,原来数据复制过去。 Golang 的 map 是什么结构 Golang 的 map 是什么结构,遍历是否有序, 什么是 Hash 表?

命令行 Banner 生成工具 - pyfiglet
· ☕ 2 分钟
1. 什么是 pyfiglet pyfiglet 是一个用 Python 实现的 ASCII 艺术字生成工具。可以根据字符生成如下图形: 1 2 3 4 5 6 _ _ _ _ _ _ | |__ ___| | | ___ __ _____ _ __| | __| | | | '_ \ / _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | | | | | | __/ | | (_) | \ V V / (_) | | | | (_| |_| |_| |_|\___|_|_|\___( ) \_/\_/ \___/|_| |_|\__,_(_) |/ 在编写 CLI 工具时,可