自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 微服务架构下的配置管理:Go 语言与 YAML 的完美结合

通过上述示例,我们学习了如何在 Go 语言中使用 YAML 配置文件。YAML 的易读性和 Go 语言的强大反射机制,使得配置管理变得简单而高效。无论是在微服务架构中还是在其他编程场景下,这种组合都能提供出色的开发体验。

2024-04-10 20:50:49 682

原创 动态支付策略:Go 语言中策略模式的妙用

策略模式是Go语言中处理多种算法或行为互换问题的强大工具。通过本文的探讨,我们不仅理解了策略模式的基本概念和实现方式,还学习了如何在实际项目中应用这一模式来提升代码质量和系统灵活性。希望这篇文章能够帮助您在构建支付系统或其他需要策略选择的场景时,更加得心应手。

2024-04-08 22:56:49 285

原创 Go语言中的逃逸分析

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在Go语言中,内存分配和逃逸分析是至关重要的概念,对于理解代码的性能和内存使用情况至关重要。本文将深入探讨Go语言中的内存分配原理以及逃逸分析的作用。

2024-04-06 20:28:54 226

原创 掌握 Go 语言的 defer 关键字

defer关键字允许我们在函数返回之前,推迟执行一段代码。这通常用于确保资源(如文件)被正确关闭,即使在发生错误的情况下也是如此。下面是一个简单的例子,展示了deferdefer fmt.Println("执行延迟的函数")fmt.Println("执行外层函数")执行外层函数执行延迟的函数defer是 Go 语言中一个非常有用的工具,它帮助我们确保资源的正确管理,特别是在涉及到文件操作时。通过理解defer的工作原理,我们可以编写出更加健壮和易于维护的代码。记住,defer。

2024-04-04 15:27:07 304

原创 深入探索堆:Go语言中的高效数据结构

堆不仅是数据结构领域的基石,更是现代编程中高效管理优先级数据的关键工具。它的分层组织和对数时间复杂度使其在算法设计和系统优化中扮演着不可或缺的角色。掌握堆的原理和操作,将为工程师和开发人员提供解决复杂问题、构建高效系统的强大工具集。

2024-04-01 11:03:45 294

原创 Go 利用上下文进行并发计算

是一个非常重要的概念,它包含了与请求相关的信息,如截止日期和取消信息,以及在请求处理管道中传递的其他数据。在并发编程中,特别是在处理请求时,正确处理上下文可以确保我们尊重和执行请求中设定的限制,如截止时间。然而,需要注意的是,每个 URL 的下载内容可能不同,因此下载所需的时间也可能不同。函数明确地检查上下文中的错误,如果发生了与上下文相关的截止日期(或任何其他错误),整个过滤过程就会失败。函数来应用谓词到每个内容上,但谓词的应用可能会花费一些时间,可能超过上下文设置的截止时间。

2024-02-25 16:34:25 278 1

原创 使用Go语言轻松实现谷歌翻译

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!大家好!今天我来介绍一种使用Go语言进行谷歌翻译的简单方法。在副业过程中,我发现需要将韩语翻译成汉语,以便群友更容易理解公告内容。最初考虑使用deepL,但是在使用其API时遇到了一些问题。于是我找到了一个非常简单的Go库,能够轻松实现谷歌翻译:https://github.com/bregydoc/gtranslate。

2024-02-22 18:42:03 277

原创 go 解决货币计算的难题:避免浮点数陷阱

Go语言中的标准浮点类型具有一定的精度(像其他任何语言一样),你不能在货币操作中使用它们。// 输出:0.30000000000000004你可以计算你需要将一个值与另一个值相加多少次,才能在你的账户上获得额外的钱!但反过来也是一样 — 在这种情况下,你只是失去了你的钱。这不仅在对你的钱进行数学运算时有问题,而且在不同系统或服务之间传递数据时也是有问题的。

2024-02-03 23:44:57 824

原创 使用 Go 发送微信群消息

虽然我目前的需求已经被满足了,不过这个库里面的好多功能我都没有去用过,也没有在这里介绍,感兴趣的同学可以自行深入去了解。

2024-02-03 00:19:41 428

原创 使用Go Validator在Go应用中有效验证数据

是一个开源的包,为Go结构体提供强大且易于使用的数据验证功能。该库允许开发者为其数据结构定义自定义验证规则,并确保传入的数据满足指定的条件。支持内置验证器、自定义验证器,甚至允许您链式多个验证规则以满足更复杂的数据验证需求。如果内置验证器无法满足您的需求,您可以通过定义自己的验证函数来创建自定义验证器。这个功能允许您实现特定于应用程序需求的验证逻辑。

2024-01-26 00:12:29 352

原创 Go 日期时间包装器:15条更便捷的时间处理

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在Go编程中,处理日期和时间是一项常见任务,涉及到精确性和灵活性。尽管Go的标准库提供了时间包(time)用于处理时间相关操作,但在某些情况下,我们需要额外的实用函数来简化这些任务。本文将介绍一系列实用函数,它们充当time包的包装器,提供了更便捷的操作方式。

2024-01-20 15:12:38 907

原创 Go 构建高效的二叉搜索树联系簿

二叉搜索树是一种有序的二叉树,其中每个节点都包含一个可比较的键和关联的值。左子树中的所有节点的键值小于当前节点的键值。右子树中的所有节点的键值大于当前节点的键值。没有重复的节点。二叉搜索树的结构使得在其中插入、搜索和删除节点的操作都能在平均时间复杂度为O(log n)的情况下完成。通过构建高效的二叉搜索树联系簿,我们可以轻松地插入、搜索和删除联系人信息。使用适当的算法和数据结构,我们能够在O(log n)的时间复杂度内执行这些操作。这对于需要频繁处理联系人信息的应用程序来说尤为重要。

2024-01-18 13:32:49 926

原创 Go 优雅判断 interface 是否为 nil

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!

2024-01-15 14:45:06 393

原创 为什么选择Go语言编写网络应用程序

综上所述,尽管Go语言在一些方面可能存在一些挑战,但它的简洁性、高效性和强大的标准库使其成为编写网络应用程序的理想选择。随着Go语言的不断发展和壮大,相信未来会有更多的优秀库和工具涌现,为你的开发工作提供更多便利。希望你能够充分利用Go语言的优势,构建出令人惊艳的应用程序,而我也会在这里为大家分享更多的编程技巧以及工具的使用。

2024-01-14 01:17:02 379

原创 [go 面试] 实现服务高可用的策略和实践

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!实现服务高可用是确保系统在面临各种故障和异常情况时仍能保持可用性的重要目标。

2024-01-10 11:49:45 342

原创 Go语言中的面向对象编程(OOP)

数据抽象是一种设计模式,其中数据仅对语义相关的函数可见,以防止误用。数据抽象的成功导致在面向对象和纯函数式编程中频繁地将数据隐藏作为设计原则。在Go语言中,可以通过接口实现抽象。接口定义了一组必须实现的方法,以满足接口的要求。该接口定义了一个名为的方法,用于计算学生的百分比。

2024-01-08 10:58:25 391

原创 开年福利!各种学习资料免费拿!

所以我建立了一个学习陪伴群,旨为了和大家一起成长,去完成自己的目标,不为卷而卷。关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!这些都不仅仅能在广泛意义上的“职业生涯”有益处,把你自己当成“一人公司”来看,这些东西都是伴随着我们的一生。最近一两年,各种裁员新闻频出,在脉脉上充斥着裁员吐槽的帖子,我也相信很多同学身边已经实实在在的发生了。慢慢的,我就想把这个学习陪伴群按照上面所说的这四块内容去运营,去寻求自己的内心想法。

2024-01-07 23:18:28 299

原创 [go 面试] 分布式事务框架选择与实践

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!分布式事务是处理跨多个服务的原子操作的关键概念,而选择适合应用场景的框架对于确保事务一致性至关重要。以下是几个常见的分布式事务框架,并讨论它们的使用和实践。

2024-01-05 22:58:17 375

原创 使用 mapstructure 解析 json

先来介绍一下是一个 Go 库,用于将通用映射值解码为结构,反之亦然,同时提供有用的错误处理。该库在解码数据流(JSON、Gob 等)中的值时最为有用,因为在读取部分数据之前,您并不十分清楚底层数据的结构。因此,您可以读取并使用此库将其解码为适当的本地 Go 底层结构。简单来说,它擅长解析一些我们并不十分清楚底层数据结构的数据流到我们定义的结构体中。下面我们通过几个例子来简单介绍一下怎么使用。// 请注意,结构类型中定义的 mapstructure 标签可以指示将值映射到哪些字段。if err!

2023-12-27 23:54:38 976

原创 Go语言的自给自足:编译自身的神奇之旅

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!Go语言的自给自足,即能够用自身编译自身,听起来似乎是一个矛盾的悖论,一个鸡生蛋或蛋生鸡的困境。但这正是Go语言引人入胜的特点。今天,我们将深入探究Go语言这个有趣的方面,并探索它为语言带来的好处。

2023-12-25 22:38:03 383

原创 使用 gin-api-mono 创建简单的 TODO 服务

首先介绍一下 gin-api-mono 这个项目,这个项目是由go-gin-api作者基于用户的需求衍生出来的一个项目。因为有些用户觉得go-gin-api是一个前后端都有的一个开源项目,对于很多用户来说,前端部分是不需要的,所以作者看到这层需求,从而将后端代码抽离出来成为 gin-api-mono 这个项目。目前 gin-api-mono 是闭源的,需要的同学可以扫文末二维码购买小册进群交流。

2023-12-24 15:30:49 966

原创 如何使用 templ 在 Go 中编写 HTML 用户界面?

templ是一个在 Go 中编写 HTML 用户界面的语言。使用 templ,我们可以创建可呈现 HTML 片段的组件,并将它们组合起来创建屏幕、页面、文档或应用程序。

2023-12-21 22:42:57 1020

原创 Golang引领科技前沿:探索工程师在多领域的关键角色

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在科技行业不断演变的背景下,对熟练工程师的需求持续增长,而各种编程语言在塑造数字世界中发挥着关键作用。其中,Golang(或Go)以其高效、简单和可扩展的特性而备受推崇。Golang工程师发现自己能够胜任科技领域内多种角色。让我们深入探讨Golang工程师可以扮演的各种多样化角色。Golang以其出色的性能在构建可扩展且高效的后端系统方面表现卓越。

2023-12-18 23:18:40 332

原创 选择适合微服务的编程语言

总的来说,仔细考虑在采用微服务架构时选择的编程语言是至关重要的。每种语言都有其独特的优缺点,选择应该基于项目的需求和开发团队的专业知识。在实践中,应用程序的需求、快速开发、性能或可扩展性等因素将决定哪种语言最适合。为了取得最佳结果,团队成员了解他们在所选择语言中的能力和项目的具体需求至关重要。

2023-12-14 21:52:28 368

原创 [go 面试] 雪花算法与分布式ID生成

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!

2023-12-12 23:05:10 514

原创 [go 面试] 缓存策略与应对数据库压力的良方

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在高并发场景中,缓存是提高系统性能的关键利器。然而,缓存穿透、缓存击穿、缓存雪崩等问题可能会给系统带来严重的负担。本文将深入探讨这些问题,并提供有效的解决办法,使用 Go 语言示例代码。

2023-12-11 22:45:44 372

原创 依赖注入与控制反转:优化Go语言REST API客户端

在这篇文章中,我展示了如何以及为什么在Go中使用DI和IoC。正确使用DI/IoC可以导致更易于测试和维护的代码,特别是在代码库不断增长时。虽然代码示例是用Go编写的,但这里描述的原则同样适用于其他编程语言。

2023-12-10 13:36:39 326

原创 [go 面试] 一致性哈希:数据分片与负载均衡的黄金法则

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在分布式系统中,一致性哈希(Consistent Hashing)是一项关键算法,为解决数据分片和负载均衡难题提供了强大的支持。本文将深入研究一致性哈希的核心原理,解析其如何超越传统哈希算法,同时详细探讨一个关键问题:当节点发生问题时,数据是如何被处理的。

2023-12-10 13:33:35 351

原创 [go 面试] 深入理解并发控制:掌握锁的精髓

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在并发编程中,锁是保障共享资源安全访问的重要机制。本文将深入探讨不同类型的锁、公平锁与非公平锁的对比、乐观锁与悲观锁的选择以及信号量与锁的区别,助你更好地应对并发场景。

2023-12-09 13:44:48 380

原创 [go 面试] 接口测试的方法与技巧

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!接口测试是确保软件系统接口功能、性能和可靠性等方面的关键步骤。

2023-12-07 22:29:51 349

原创 [go 面试] 前端请求到后端API的中间件流程解析

在前端请求到后端API的典型流程中,经过一系列中间件的处理,确保请求的顺利处理和安全性。以下是中间件的详细解析:用户在前端发起请求,包括请求的URL、参数、以及其他必要的信息。请求首先经过网关层,可能是Ingress或Nginx。网关的主要功能包括:后端服务可能使用路由中间件,根据请求的URL或其他条件,将请求分发给相应的处理器或控制器。这有助于模块化和组织代码。在一些需要身份验证的场景中,身份验证中间件被用来验证请求的身份。这可以包括:通过身份验证后,鉴权中间件用于验证用户是否有权访问请求的资源。它确保用

2023-12-06 23:23:32 373

原创 介绍 Agency: 使AI与Go语言无缝对接

在这个AI盛行的时代,我们深知Go语言开发者对于高效、简单而强大的AI工具的需求。Agency的诞生旨在填补Go语言领域的空白,为开发者提供一种更直观、更贴近Go编程理念的AI解决方案。

2023-12-05 15:13:49 1299

原创 [go 面试] 优化线上故障排查与性能问题的方法

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在面对线上故障和性能问题时,迅速而准确的排查是至关重要的。以下是一些优化排查的方法,帮助你更有效地解决短时间内产生大量time wait请求的问题。

2023-12-05 15:12:53 377

原创 [go 面试] 构建高效微服务通信:选择合适的通信方式

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!构建分布式系统或微服务架构时,服务间通信成为至关重要的一环。不同的通信方式各有优劣,因此在选择时需根据需求和场景做出明智的决策。

2023-12-04 21:49:08 399

原创 [go 面试] Go Kit中读取原始HTTP请求体的方法

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在Go Kit中,如果你想读取未序列化的HTTP请求体,可以使用标准的net/http包来实现。

2023-12-04 21:43:38 435

原创 使用Go Validator在Go应用中有效验证数据

Go Validator是一个开源的包,为Go结构体提供强大且易于使用的数据验证功能。该库允许开发者为其数据结构定义自定义验证规则,并确保传入的数据满足指定的条件。Go Validator支持内置验证器、自定义验证器,甚至允许您链式多个验证规则以满足更复杂的数据验证需求。如果内置验证器无法满足您的需求,您可以通过定义自己的验证函数来创建自定义验证器。这个功能允许您实现特定于应用程序需求的验证逻辑。

2023-12-01 07:35:00 352

原创 [go 面试] 为并发加锁:保障数据一致性(分布式锁)

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在单机程序中,当多个线程或协程同时修改全局变量时,为了保障数据一致性,我们需要引入锁机制,创建临界区。本文将通过一个简单的例子,说明在不加锁的情况下并发计数可能导致的问题,并介绍加锁的解决方案。

2023-12-01 07:32:54 921

原创 利用 Golang 中的 Recover 处理错误

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!Golang 中的recover是一个鲜为人知但非常有趣和强大的功能。让我们看看它是如何工作的,以及在中如何利用它来处理 Kubernetes 中的错误。Panic/Defer/Recover 基本上是 Golang 中对于其他编程语言中 throw/finally/catch 概念的替代品。它们有一些共同之处,但在一些重要细节上有所不同。

2023-11-30 22:23:16 480

原创 并发与数据一致性:事务的保障

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!

2023-11-30 22:20:20 433

原创 [go 面试] 深入理解进程、线程和协程的概念及区别

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力!在操作系统中,我们经常听到进程、线程和协程这些概念,它们都是用来描述执行单元的。接下来,我会详细解释这些概念以及它们之间的区别。

2023-11-29 23:09:24 505

突击春招:通用技术面试题

突击春招:通用技术面试题

2023-11-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除