首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go学习专栏
爱发白日梦的后端
创建于2022-10-20
订阅专栏
专门用来记录学习、使用 Go 的问题集合。
等 72 人订阅
共140篇文章
创建于2022-10-20
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
依赖注入与控制反转:优化Go语言REST API客户端
在这篇文章中,我将探讨依赖注入(DI)和控制反转(IoC)是什么,以及它们的重要性。作为示例,我将使用Monibot的REST API客户端。让我们开始吧: 一个简单的客户端实现 我们从一个简单的客户
[go 面试] 一致性哈希:数据分片与负载均衡的黄金法则
在分布式系统中,一致性哈希(Consistent Hashing)是一项关键算法,为解决数据分片和负载均衡难题提供了强大的支持。本文将深入研究一致性哈希的核心原理,解析其如何超越传统哈希算法,同时详细
[go 面试] 接口测试的方法与技巧
接口测试是确保软件系统接口功能、性能和可靠性等方面的关键步骤。以下是一些常见的接口测试方法和技巧: 1. 输入验证 验证接口对于不同的输入数据是否正确处理和响应,包括: 正常输入 边界条件 异常输入
[go 面试] 前端请求到后端API的中间件流程解析
在前端请求到后端API的典型流程中,经过一系列中间件的处理,确保请求的顺利处理和安全性。以下是中间件的详细解析: 1. 前端请求 用户在前端发起请求,包括请求的URL、参数、以及其他必要的信息。 2.
介绍 Agency: 使AI与Go语言无缝对接
在当今应用开发领域,类似OpenAI API等生成式AI技术的蓬勃发展正在彻底改变着应用开发的格局。Python和JavaScript等语言已经拥有丰富的资源来支持这些技术,其中LangChain就是
[go 面试] 优化线上故障排查与性能问题的方法
在面对线上故障和性能问题时,迅速而准确的排查是至关重要的。以下是一些优化排查的方法,帮助你更有效地解决短时间内产生大量time wait请求的问题。 1. 监控和日志分析 通过监控系统实时监控应用的指
[go 面试] 构建高效微服务通信:选择合适的通信方式
构建分布式系统或微服务架构时,服务间通信成为至关重要的一环。不同的通信方式各有优劣,因此在选择时需根据需求和场景做出明智的决策。以下是几种常见的服务间通信方式: 1. HTTP/RESTful API
[go 面试] Go Kit中读取原始HTTP请求体的方法
在Go Kit中,如果你想读取未序列化的HTTP请求体,可以使用标准的net/http包来实现。以下是一个示例,演示了如何完成这个任务: 在这个例子中: decodeRequest 函数使用 iout
使用Go Validator在Go应用中有效验证数据
作为一名开发者,确保Go应用中处理的数据是有效和准确的非常重要。Go Validator是一个开源的数据验证库,为Go结构体提供强大且易于使用的数据验证功能。本篇文章将介绍Go Validator库的
[go 面试] 为并发加锁:保障数据一致性(分布式锁)
在单机程序中,当多个线程或协程同时修改全局变量时,为了保障数据一致性,我们需要引入锁机制,创建临界区。本文将通过一个简单的例子,说明在不加锁的情况下并发计数可能导致的问题,并介绍加锁的解决方案。 不加
利用 Golang 中的 Recover 处理错误
Golang 中的 recover 是一个鲜为人知但非常有趣和强大的功能。让我们看看它是如何工作的,以及在 Outreach.io 中如何利用它来处理 Kubernetes 中的错误。 Panic/D
[go 面试] 并发与数据一致性:事务的保障
并发 并发是计算机系统中同时执行多个独立任务的能力。通过共享资源和并发执行,系统可以提高性能和效率。然而,并发可能引发一些问题,如竞态条件和资源冲突,需要适当的并发控制机制来确保正确性。 数据一致性
[go 面试] 深入理解进程、线程和协程的概念及区别
在操作系统中,我们经常听到进程、线程和协程这些概念,它们都是用来描述执行单元的。接下来,我会详细解释这些概念以及它们之间的区别。 1. 进程(Process) 进程是计算机中正在执行的一个程序实例,它
使用 sync.Cond 来协调并发 goroutine 的访问共享资源
使用 sync.Cond 解决并发访问共享资源问题 在并发编程中,当多个 goroutine 需要访问共享资源时,我们需要使用一些机制来协调它们的执行顺序,以避免竞态条件和数据不一致的问题。在 Go
Go事件管理器:简单实现
在编程中,事件管理器是一种常见的工具,用于通过通知来触发操作。在Go语言中,我们可以通过创建事件管理器和监听器来实现事件的处理。本文将介绍一个简单的Go事件管理器的实现,并通过异步改进提高其性能。 监
揭秘 Go 中的模板:一份全面而广泛的指南
本全面指南将带领您进入Go模板的复杂世界,为您提供使用这个宝贵工具的知识和专业技能。在探索过程中,您将深入了解模板的基本概念,揭示其语法的复杂性,并揭示在Go项目中利用模板的最佳实践。 揭示模板的本质
Go 命名规范:全面指南
在软件开发领域中,命名规范在提升代码可读性、可维护性和一致性方面起着至关重要的作用。良好定义的命名规范确保代码具有自解释性,减少开发人员的认知负担,并促进协作。Go语言作为一种流行的编程语言,遵循一套
Go 内存分配:结构体中的优化技巧
在使用Golang进行内存分配时,我们需要遵循一系列规则。在深入了解这些规则之前,我们需要先了解变量的对齐方式。 Golang的unsafe包中有一个函数Alignof,签名如下: 对于任何类型为v的
10个令人惊叹的Go语言技巧,让你的代码更加优雅
在开发生产项目的过程中,我注意到经常会发现自己在重复编写代码,使用某些技巧时没有意识到,直到后来回顾工作时才意识到。 为了解决这个问题,我开发了一种解决方案,对我来说非常有帮助,我觉得对其他人也可能有
写出高质量代码的秘诀:Golang中的测试驱动开发(TDD)
在软件开发的世界中,质量至关重要。编写代码不仅仅是为了能运行,更要保证代码的可维护性和无缝演变。测试驱动开发(TDD)是一种广受欢迎的方法论,它有着充分的理由。本文将探讨TDD是什么,为什么它是必要的
下一页