bobbyz3g
  • 首页
  • 归档
  • 标签
  • 关于

更强力的 Go 运行时 trace

本文是对 Go 官方博客 More powerful Go execution traces 的翻译。 runtime/trace 包包含了一个强大的工具, 用于理解和排查Go程序的问题。该功能允许生成在某段时间内每个goroutine 执行的 trace 记录。通过 go tool trace 命令(或优秀的开源工具 gotraceui ), 就可以可视化并探索这些 trace 记录中的数据。
2024-03-20
#Go

Go JSON patch

在这篇文章中,我会向你介绍 json patch,并展示如何在 Go 中使用 json patch 来完成资源的更新操作。 什么是 JSON Patches?JSON Patch 是一种格式化的方式,用于对 JSON 文件进行部分修改。它定义了一组操作符,可以用来描述如何修改一个 JSON 值。这种方式非常适合在客户端和服务器之间传递部分修改,而不需要传输整个 JSON 文档,从而节省了带宽。 J
2024-03-05
#Go

Go 切片的使用和内部实现

本文是翻译自 Go 官方的博客 Go Slices: usage and internals 介绍Go 的切片类型提供了一种方便高效的方法来处理类型化数据序列。切片类似于其他语言中的数组,但具有一些不寻常的属性。本文将介绍什么是切片以及它们的使用方式 数组切片类型是建立在 Go 的数组类型之上的抽象类型,因此要理解切片,我们必须首先了解数组。 数组类型定义指定长度和元素类型。例如,该类型 [4]i
2024-02-27
#Go

etcd 集群运维

etcd 简介etcd 是一个开源的、分布式的键值存储数据库,用于存储配置数据、服务注册和发现等。etcd 具有高可用性、强一致性和简单易用的特点,被广泛应用于各种分布式系统中。 etcd 基于 Raft 协议,通过复制日志文件的方式来保证数据的强一致性。 历史和发展“etcd” 源于两个方面,unix 的“/etc”文件夹和分布式系统 (“D”istribute system) 的 D,组合在一
2024-02-19
#etcd #operations

Go 使用管道连接 Command

在 posix 系统中,我们可以使用 | 来连接两个命令,从而将前一个命令的标准输出作为后一个命令的标准输入,就像下面这个例子一样 1ls | grep go 我们首先使用 ls 命令获取到当前目录的文件,然后将输出传递给 grep 命令,从文件列表中过滤带有 go 的文件。 那么我们可以在 Go 实现类似管道的操作吗,将多个 Cmd 连接起来。答案是可以的,并且十分的简单,只需使用标准库的能力
2024-01-23
#Go

搭建一个 Gemini 聊天网页

Google 发布了新的 Gemini Pro 模型,一个对标 openAI 的产品。我们除了可以通过使用英文版的 Bard 来尝试这个新的模型,也可以通过 Google AI 实验室来构建自己的 AI 应用。 在这篇文章中,我记录了如何搭建一个属于自己的聊天机器人。 事前准备: 1. 需要能够访问 Google,并且拥有 Google 账户。 2. docker 环境 首先,登录 Google
2024-01-12
#日常

MySQL 事务隔离

事务用来保证一组数据库操作,要么一起成功,要么一起失败。不存在一部分操作成功,另一部分操作失败的情况。 最常见的例子就是银行的转账。当小明需要给小红转 100 元时,首先需要检查小明的账户是否有足够的余额,然后将小红的余额增加 100,更新小明的余额。在这个例子中,整个操作必须同时成功或者失败,不能出现小红的余额增加了 100,小明的余额却没有减少 100 的情况。 MySQL 的事务支持是在引擎
2023-12-28
#MySQL

Go 错误是值

本文是对 Rob Pike 博客 Errors are values 的翻译。 在 Go 中,经常可以看到关于错误处理的讨论。在讨论的过程中,对话通常会演变成对语句 123if err != nil { return err} 出现次数的哀叹。我们最近扫描了我们能找到的所有开源项目,发现这个代码段在每一页只出现过一两次,比一些人让你相信的要少。不过,如果人们仍然认为你必须
2023-12-25
#Go

Go 使用 deadcode 查找无法访问的函数

这篇文章是对 Go 官方博客 Finding unreachable functions with deadcode 的翻译 项目源代码中存在但在任何执行过程中都无法访问的函数被称为“死代码”,会对代码库维护工作造成负担。今天,我们很高兴与您分享一个名为 deadcode 的工具,帮助您识别这些死代码。 12345$ go install golang.org/x/tools/cmd/deadco
2023-12-20
#Go

TLA+ 算子和值

算子在 TLA+ 中, 算子 (operator) 就是编程语言中的函数。它们接受参数并求值为表达式。 123EXTENDS IntegersMinutesToSeconds(m) == m * 60 算子可以接收任意数量的参数. 没有默认值, 重载或者是可选参数. 如果一个算子接收两个参数, 那么就必须传递两个参数. 如果一个算子不接受参数, 那么可以写成没有参数的形式. 在这种情况下, 它就
2023-12-12
#TLA+
123…7

搜索

Hexo Fluid