12 2020 档案

摘要:Go代码检修工具集 gofmt Go安装程序中自带了gofmt工具,可以使用它来格式化代码,保持一致的代码风格: $ find . -name "*.go" -not -path "./vendor/*" -not -path ".git/*" | xargs gofmt -s -d gocyclo 阅读全文
posted @ 2020-12-17 15:32 Binb 阅读(580) 评论(0) 推荐(0) 编辑
摘要:Go Exec执行命令 执行命令并获得输出结果 最简单的例子就是运行ls -lah并获得组合在一起的stdout/stderr输出。 func main() { cmd := exec.Command("ls", "-lah") out, err := cmd.CombinedOutput() if 阅读全文
posted @ 2020-12-17 15:21 Binb 阅读(2997) 评论(0) 推荐(0) 编辑
摘要:Go TryLock实现 Go标准库的sync/Mutex、RWMutex实现了sync/Locker接口, 提供了Lock()和UnLock()方法,可以获取锁和释放锁,我们可以方便的使用它来控制我们对共享资源的并发控制上。 但是标准库中的Mutex.Lock的锁被获取后,如果在未释放之前再调用L 阅读全文
posted @ 2020-12-17 15:09 Binb 阅读(1089) 评论(0) 推荐(1) 编辑
摘要:Golang知识点总结 各种类型复制的时候的花费 本节标题也可以叫做“各种类型的值的大小” (the sizes of values of all kinds of types),底层可被不同的值共享的数据的大小未被计算。 下面的表格中一个 word在32bit操作系统中代表4个字节,在64bit操 阅读全文
posted @ 2020-12-16 16:42 Binb 阅读(231) 评论(0) 推荐(0) 编辑
摘要:微服务的反模式和陷阱 本文转自 数据驱动的迁移反模式 Data-Driven Migration AntiPattern 微服务会创建大量小的、分布式的、单一用途的服务,每个服务拥有自己的数据。这种服务和数据耦合支持一个有界的上下文和一个无共享数据的架构,其中,每个服务及其对应的数据是独立一块,完全 阅读全文
posted @ 2020-12-16 16:03 Binb 阅读(395) 评论(0) 推荐(0) 编辑
摘要:Go文件操作大全 介绍 万物皆文件 UNIX 的一个基础设计就是"万物皆文件"(everything is a file)。我们不必知道一个文件到底映射成什么,操作系统的设备驱动抽象成文件。操作系统为设备提供了文件格式的接口。 Go语言中的reader和writer接口也类似。我们只需简单的读写字节 阅读全文
posted @ 2020-12-16 15:09 Binb 阅读(141) 评论(0) 推荐(0) 编辑
摘要:Go编译时变量注入 需求 golang程序在build时自动生成版本信息,使用 ./helloworld –version可以查看版本和build时间 实现原理 使用链接选项-X设置一个二进制文件中可以访问的变量 package main import "fmt" var Version = "No 阅读全文
posted @ 2020-12-16 14:15 Binb 阅读(897) 评论(0) 推荐(0) 编辑
摘要:本文转自鸟窝 获取 goroutineID package main import ( "fmt" "runtime" "strconv" "strings" "sync" ) func GoID() int { var buf [64]byte n := runtime.Stack(buf[:], 阅读全文
posted @ 2020-12-16 14:07 Binb 阅读(139) 评论(0) 推荐(0) 编辑
摘要:Go的交叉编译 转自鸟窝 Go 1.5以前,交叉编译程序还是有一点麻烦的,你需要massive scripts t来编译和宿主机器不同的程序。 正如 comes with support for all architectures built in文章中介绍的, Go 1.5可就简单的多了,你只需设 阅读全文
posted @ 2020-12-16 14:00 Binb 阅读(757) 评论(0) 推荐(0) 编辑
摘要:转自 这篇文章主要介绍一下 Wireshark 这个工具是如何抓包的,学习和使用抓包工具对于学习各种网络协议都很有帮助。 1.如何抓取报文 (1) 打开 Wireshark 抓包工具之后,点击 捕获->选项: (2)在新打开的 捕获选项 可以看到如下界面: (3)在 捕获选项 界面点击 Output 阅读全文
posted @ 2020-12-16 10:08 Binb 阅读(134) 评论(0) 推荐(0) 编辑
摘要:参透gRPC 本文转自 本文目录如下: 简述 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python 阅读全文
posted @ 2020-12-15 14:00 Binb 阅读(172) 评论(0) 推荐(0) 编辑
摘要:本文引用自 安装 $ go get -u github.com/golang/mock/gomock $ go install github.com/golang/mock/mockgen 第一步:我们将安装 gomock 第三方库和 mock 代码的生成工具 mockgen。而后者可以大大的节省我 阅读全文
posted @ 2020-12-14 14:53 Binb 阅读(629) 评论(0) 推荐(0) 编辑
摘要:Wire 是啥 Wire 是一个轻巧的Golang依赖注入工具。它由Go Cloud团队开发,通过自动生成代码的方式在编译期完成依赖注入。 依赖注入是保持软件 “低耦合、易维护” 的重要设计准则之一。 此准则被广泛应用在各种开发平台之中,有很多与之相关的优秀工具。 其中最著名的当属 Spring,S 阅读全文
posted @ 2020-12-11 23:01 Binb 阅读(3681) 评论(0) 推荐(1) 编辑
摘要:本文转自 在类 Unix 系统中,我们常常会使用 ps 命令来查看系统当前所运行的进程信息,该命令为我们提供了较大的帮助,能够快速的定位到某些进程的运行情况和状态。 而在 Go 语言中,也有类似的命令工具,那就是 gops[1](Go Process Status)。 gops 是由 Google 阅读全文
posted @ 2020-12-02 21:02 Binb 阅读(1561) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示