标签: Go语言

16 个内容

笔记(15)

文章总结MOV (ProRes 4444)转WebM (VP9)透明视频转换问题:透明区域变黑/灰、边缘杂色、重影。核心方案:使用`-c:v libvpx-vp9`、`-pix_fmt yuva420p`、`-auto-alt-ref 0`禁用交替参考帧、`-vf premultiply`处理边缘。Chrome验证透明度。(148字符)

Elliot Yang·
95 浏览

本文提供了一份 JWT 签名算法速查表,对比了 HS256、RS256、ES256 等算法在性能、体积和部署难度上的差异。针对不同应用场景,如内网高 QPS、对外开放平台和移动端,给出了选型建议,并提供了 Go 语言的性能基准测试代码。

Elliot Yang·
181 浏览

本文针对统计字符串所有子串中元音字母总数的问题,提出了一个高效的解决方案。传统方法复杂度过高,本文通过数学推导,得出每个元音的贡献值为 `(i+1) * (n-i)`,其中 i 是元音的下标,n 是字符串长度。最终,只需一次遍历即可得到答案,时间复杂度为 O(n)。

Elliot Yang·
101 浏览

Go 语言中 map 的迭代顺序是不确定的,这是故意设计以避免开发者依赖特定顺序。底层实现采用哈希表,迭代顺序受哈希函数和键分布影响。若需有序遍历,应维护单独排序的键切片。迭代期间修改 map,新增或删除的键可能被访问或跳过。

Elliot Yang·
217 浏览

本文探讨了Go语言中`%v`格式化输出slice的行为,当slice为nil或empty时均显示为`[]`。为区分两者,建议使用`%#v`查看Go语法表示或直接判nil。此外,文章还提及了`%T`、`%p`等其他格式化选项。

Elliot Yang·
173 浏览

Go 语言中的“裸返回”指无参数的 return 语句,依赖于命名返回值。虽然在短函数中能提高简洁性,但长函数会降低可读性。文章讨论了裸返回的语法、适用场景、潜在问题(如变量遮蔽、defer 交互)及社区观点,建议谨慎使用,权衡可读性和可维护性。

Elliot Yang·
100 浏览

Go语言中,数组和切片是两种不同的数据结构。数组长度固定,是值类型,通常在栈上分配;切片长度可变,是引用类型,底层数组在堆上分配。由于内存分配和访问方式的差异,数组在某些场景下性能更好,切片更灵活。

Elliot Yang·
90 浏览

该文章讲解了Go语言中面向接口编程的应用。通过定义Service接口,并使用Database结构体实现该接口,实现了数据库操作的解耦。这种设计模式方便了数据库的切换、单元测试以及业务逻辑的维护,提高了代码的灵活性和可扩展性。

Elliot Yang·
116 浏览

`context.Context`是Go并发编程中传递请求元数据和控制信号的标准机制,用于取消、超时、跨层数据传递和层级关联。通过链式传递上下文信息,实现协程的协同控制。文章介绍了Context的基本用法、常见场景、最佳实践及常见误区。

Elliot Yang·
93 浏览

本文探讨了云原生架构中 Goroutine 与多实例部署的关系。针对单进程下 Goroutine 数量过多导致的性能瓶颈问题,提出多实例部署方案,实现物理资源隔离、故障隔离和水平扩展。同时,讨论了分层并发模型、流量调度策略,以及协程泄漏检测、冷启动和分布式追踪等挑战,并展望了未来演进方向。

Elliot Yang·
136 浏览

本文针对并发编程中共享对象未初始化完全就被使用的问题,展示了双重检查锁的错误示例,该示例未使用原子操作,可能发生指令重排,导致读取到未初始化的对象。解决方案是使用atomic包提供的原子操作和内存屏障,保证变量写入的顺序性,避免重排问题。

Elliot Yang·
91 浏览

本文深入解析Go并发编程的四大核心组件:goroutine、channel、atomic和sync包锁。Goroutine提供轻量级并发,channel实现通信同步,atomic支持原子操作,sync包提供锁机制。文章剖析了各组件的原理、应用场景及最佳实践,并探讨了未来发展趋势。

Elliot Yang·
184 浏览

本文深入解析了Golang的类型组合哲学,区别于传统继承,采用结构体嵌入和接口组合实现代码复用和扩展。强调组合优于继承,解耦数据与行为,并探讨了工业级最佳实践、潜在问题及未来发展趋势。

Elliot Yang·
224 浏览

Go语言的complex128类型是科学计算的基础,由两个float64构成,支持原生运算但缺少模和相位角计算。编译器进行寄存器优化,硬件层面有SIMD加速潜力。工程实践如信号处理和量子模拟,可通过内存对齐和SIMD并行化优化性能。CGO和二进制协议支持跨语言互操作,精度问题和性能瓶颈可通过高精度库和GPU加速解决。未来发展方向包括编译器优化、硬件加速和标准化扩展。

Elliot Yang·
204 浏览

Go适用于资源充足的云原生应用,TinyGo则为资源受限的嵌入式系统和WebAssembly而生。TinyGo通过激进优化和裁剪,显著减小体积和内存占用,但牺牲了部分标准库和反射功能。选择需权衡表达能力与资源约束。

Elliot Yang·
220 浏览

动态(1)

E
Elliot Yang
公开

https://github.com/nacos-group/nacos-sdk-go/issues/316#issuecomment-1807895963

docker 启动的 nacos 使用 go nacos sdk 调用 GetConfig 报错解决。

read config from both server and cache fail, err=read cache file Config Encrypted Data Key failed. cause file doesn't exist

解决办法:把 8848,9848,9849 三个端口打开。

go
1client.GetConfig(vo.ConfigParam{
2		DataId: dataID,
3		Group:  group,
4	})
浏览:280点赞:0