用 Go 实现了一个 binary,这个 binary 会发送 API 请求到服务端,服务端完成对 K8S 环境的部署工作。 由于后端进行了大量封装,并且参数非常多,所以有了一个想法,具体的要求如下: 支持自定义 flag 列表 help 信息支持展示自定义的 flag 列表 列表信息来自于一个专门的 API 基于这些需求,查询了很多文档后,没有找到成功的例子,经过一下午的尝试,最后实现了预期的需求,分享一下。回头准备写一篇 post 给 Cobra。 在 Cobra 的 GitHu...
在GO项目中使用Uber-zap日志框架
现在需要把一个日志框架加入到新的项目中,对比了一下 Go 语言里的几个日志框架,最后发现 zap 是个不错的选择。 https://github.com/uber-go/zap 官网也把 zap 和其他框架做了一些对比,看起来挺不错。 不过在集成到 Cobra 里的过程中遇到了一点点小坑,记录一下。 日志初始化代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849...
Python判断一个函数是否被一个装饰器修饰
今天正在做新项目的框架。比如下面的 gen_task 方法是一个很耗时的方法,这样的方法在系统里有很多,于是就写了一个装饰器 nuke_long_task 用于处理长请求事务,用它去处理一些常规通用的业务,比如记录和更新状态等。 被装饰的业务函数123456@nuke_long_task()def gen_task(data): print(" start -- " + threading.current_thread().name) time.sleep...
linux下根据IP反查MAC
今天遇到一个问题:给一个 VM 上配置了两个 IP,同时配置到了同一个网卡上,结果一个 IP 通,一个 IP 不通。 排查方法排查半天,最后发现可以在另外一个 VM 上利用 arp 命令,查出所配置的两个 IP,发现 IP 对应的 MAC 不一样,说明其中一个 IP 的 MAC 地址是不对的。 这种情况一般是由 IP 地址配置引起的,更换一下 IP 就好了。同时根据 MAC 的前几位可以查询一下设备生产厂家,这样大致能猜出来占用 IP 的是什么类型的设备。 1234[root@sandbo...
McAfee会误认为GoLang多线程程序是病毒
这几天在学习 GoLang,今天遇到一个有趣的现象:写了下面这段关于多线程 goroutine 的代码,一执行就会被 McAfee 认为是病毒。 程序被 kill 掉,甚至连 VS Code 都被关掉,并且桌面上的 VS Code 图标都被删掉了,有意思。 触发误报的代码12345678910111213141516171819package mainimport ( "fmt" "time")func main() { go c() fm...
预览FontAwesome
现在在用的 Hexo 主题里,有一个标题旁边的图片写错了,导致显示是个方块,挺丑。想从现在的字体里选一个,却不知道怎么弄出来全部的。 使用 IcoMoon 预览图标发现有个网站:https://icomoon.io/app/#/select 选择「导入图标」,然后选择 SVG 文件 选择一个图标,点击下方「生成字体」 在下一页就能看到这个图标的 16 进制编码了
GoLang的编程规范
分享一张 Golang 的编程规范,来源见水印。