标签

 golang 

相关的文章:

这是一个包含了关于Golang的多个主题的文章合集,包括同步异步使用方法、语言规范改动、性能分析等内容。

Chapar :Golang的Postman替代方案

原文约1300字,阅读约需3分钟。发表于:

Chapar是使用 Golang 和 Gio 库构建的 Postman 的强大替代品。Chapar 的目标是通过支持 HTTP 和 gRPC 协议来提供用户友好的体验。Chapar目前拥有一系列旨在简化 API 测试工作流程的功能。主要特征: Chapar 使用 GoLang 构建,GoLang 以其速度和性能而闻名。它被设计为快速高效。 Chapar 使用 python 编写请求前和请求后脚本。它的设计易于使用且灵活。 使用工作区进行组织:创建和管理工作区以有效地组织您的 API 端点。 管理环境:轻松存储 API 端点的变量和配置。 轻松测试:创建和管理请求以彻底测试您的 API 端点。

Chapar是使用Golang和Gio库构建的Postman替代方案,支持HTTP和gRPC协议,具有多种功能和特性。它可以创建和管理工作区、管理环境、轻松测试API端点、发送各种请求、支持不同的内容类型和身份验证方法,以及其他功能。Chapar还支持深色模式、保护隐私,并与Postman兼容。未来的路线图包括支持gRPC、WebSocket、GraphQL协议,以及其他功能的改进。

相关推荐 去reddit讨论

wg 0.9.0: 支持同步和异步的使用方法像Golang一样的WaitGroup

原文英文,约200词,阅读约需1分钟。发表于:

地址: https://github.com/al8n/wg 支持同步, 异步(不依赖特定运行时), no_std环境的的使用方法像Golang一样的WaitGroup. 例子 Sync use wg::WaitGroup; use std::sync::Arc; use std::sync::atomic::{AtomicUsize, Ordering}; use std::time::Duration; use std::thread::{spawn, sleep}; fn main() { let wg = WaitGroup::new(); let ctr = Arc::new(AtomicUsize::new(0)); for _ in 0..5 { let ctrx = ctr.clone(); let t_wg = wg.add(1); spawn(move || { // mock some time consuming task sleep(Duration::from_millis(50)); ctrx.fetch_add(1, Ordering::Relaxed); // mock task is finished t_wg.done(); }); } wg.wait(); assert_eq!(ctr.load(Ordering::Relaxed), 5); } Async use wg::AsyncWaitGroup; use std::sync::Arc; use std::sync::atomic::{AtomicUsize, Ordering}; use tokio::{spawn, time::{sleep, Duration}}; #[tokio::main] async fn main() { let wg = AsyncWaitGroup::new(); let ctr = Arc::new(AtomicUsize::new(0)); for _ in 0..5 { let ctrx = ctr.clone(); let t_wg = wg.add(1); spawn(async move { // mock some time consuming task sleep(Duration::from_millis(50)).await; ctrx.fetch_add(1, Ordering::Relaxed); // mock task is finished t_wg.done(); }); } wg.wait().await; assert_eq!(ctr.load(Ordering::Relaxed), 5); }

这篇文章介绍了一个类似于Golang中的WaitGroup的库,可以在同步、异步和no_std环境中使用。通过示例代码展示了如何使用该库进行同步和异步操作。

相关推荐 去reddit讨论

Senior ZK Engineer(Rust or C++)/Protocol Engineer(Golang /Rust)

原文约200字,阅读约需1分钟。发表于:

硬性要求:硕博/English读写能力/可remote 预算 130k-200k usdt 1️⃣Protocol Engineer(Golang /Rust) 2️⃣Senior ZK Engineer(Rust or C++) 有意向带简历小窗 私🚀🚀(高效-直接推) 🌍:shane-2 telegram:web3_shane

这是一份招聘广告,要求硕士或博士学历,具备英语读写能力,能够远程工作。招聘职位包括协议工程师和高级ZK工程师,需要掌握Golang、Rust或C++等编程语言。预算范围为130k-200k usdt。

相关推荐 去reddit讨论

Senior ZK Engineer(Rust or C++)/Protocol Engineer(Golang /Rust)

原文约200字,阅读约需1分钟。发表于:

硬性要求:硕博/English读写能力/可remote 预算 130k-200k usdt 1️⃣Protocol Engineer(Golang /Rust) 2️⃣Senior ZK Engineer(Rust or C++) 有意向带简历小窗 私🚀🚀(高效-直接推) 🌍:shane-2 telegram:web3_shane

这是一份招聘广告,要求硕士或博士学历,具备英语读写能力,能够远程工作。招聘的职位包括协议工程师和高级ZK工程师,要求掌握Golang、Rust或C++等编程语言。预算范围为130k-200k usdt。

相关推荐 去reddit讨论

标准库unsafe:带你突破golang中的类型限制

原文约8800字,阅读约需21分钟。发表于:

本文主要介绍了unsafe包的检查功能。

本文介绍了在使用Golang编程时,通过使用标准库unsafe包中的函数和类型,可以绕过类型限制,实现一些特殊操作。unsafe包中的函数包括Sizeof和Alignof,分别用于获取表达式的大小和对齐系数。通过示例展示了如何使用这些函数,并说明了它们的一些特性和注意事项。文章还提到了使用unsafe包时需要注意的安全性问题。

相关推荐 去reddit讨论

Golang 测试替代

原文英文,约1100词,阅读约需4分钟。发表于:

这篇文章介绍了Golang中的测试替代技术,包括Dummy、Stub、Spy、Mock和Fake等不同的实现方式。通过使用接口来实现解耦,可以轻松地更改搜索方式。同时,还提供了相应的测试函数来验证不同实现方式的正确性。

Golang 测试替代
相关推荐 去reddit讨论

Golang 1.22 语言规范改动

原文约1800字,阅读约需5分钟。发表于:

Golang 1.22语言规范变更:默认修复了循环变量的意外共享,新增整数范围支持和函数迭代器支持。

Golang 1.22 语言规范改动
相关推荐 去reddit讨论

Golang框架实战-KisFlow流式计算框架(8)-KisFlow Action

原文英文,约4700词,阅读约需17分钟。发表于:

KisFlow Action 是指在执行Function的时候,同时可以控制Flow的调度逻辑,KisFlow提供一些Action动作让开发者做选择,本节先介绍最简单的Action动作,Abort(终

本文介绍了KisFlow流式计算框架中的跳转Action的实现方式和使用方法。通过调用flow.Next(kis.ActionJumpFunc("funcName1"))来指定跳转到funcName1的Function。文章还给出了相应的单元测试代码。

相关推荐 去reddit讨论

Golang CAS 操作是怎么实现的

原文约1700字,阅读约需4分钟。发表于:

《Golang CAS 操作是怎么实现的》在Go语言中,CAS(Compare and Swap) 操作一般都是通过 `atomic` 操作来实现的,我们来探究一下底层是怎么实现的。我们以 `CompareAndSwapInt32` 为例,首先找到源码,位于 `doc.go`...

Golang的CAS操作是通过atomic操作实现的。具体实现是通过汇编代码来完成的,使用了CMPXCHG指令进行比较和交换操作。CAS操作比较内存地址中的值与期望值是否相等,如果相等,则将新的值写入内存地址中,并返回操作是否成功。CAS操作依赖于CPU提供的底层能力。

Golang CAS 操作是怎么实现的
相关推荐 去reddit讨论

Golang 性能分析

原文约3200字,阅读约需8分钟。发表于:

Golang 为性能分析提供了丰富的标准库和标准工具,本文会详细介绍他们的使用和原理。 性能分析库和工具 Golang 中提供了丰富的标准库来帮助我们配置、收集、存储性能指标信息: 标准库 主要作用 使用场景 net/http/pprof 提供开箱即用的性能指标 HTTP 接口 在线检测应用性能指标,供性能分析工具使用接口 runtime/pprof 提供了一系列函数用于在程序运行时收集和输出性能分析数据 非网络应用的性能分析,或者需要深入控制检测逻辑 runtime/trace 提供了一系列函数用于跟踪和分析程序执行期间性能 非网络应用的性能分析,或者需要深入控制检测逻辑 runtime 提供了一系列函数用于配置性能分析参数 动态调整性能分析的采样率,比如配置 CPU、内存、阻塞采样频率 上述性能指标中的产物有些是 protocol buffers 二进制格式,Golang 提供了两个标准工具来解析它们: 标准工具 主要作用 go tool pprof 解析 CPU、内存、阻塞、Goroutine 等指标信息 go tool trace 解析代码运行事件和时间戳等跟踪信息 开箱即用的性能接口 标准库 net/http/pprof 可以帮我们基于 HTTP 协议的网络应用添加性能分析接口。我们只需要: import ( "net/http" _...

本文介绍了Golang中的性能分析标准库和工具,包括net/http/pprof、runtime/pprof和runtime/trace。标准库用于配置、收集和存储性能指标信息,标准工具用于解析性能指标数据。net/http/pprof还提供了在线性能分析接口。CPU、内存和阻塞指标使用不同的函数进行配置和收集。

Golang 性能分析
相关推荐 去reddit讨论