Go 语言单例模式全解析:从青铜到王者段位的实现方案

6 月 29 日
阅读 4 分钟
2.3k
单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类(或结构体,在 Go 语言中)只有一个实例,并提供一个全局访问点来访问这个实例。这个模式在需要协调系统中动作的场景下非常有用,例如日志记录、配置管理或数据库连接池。
封面图

如何为 gRPC Server 编写本地测试代码

6 月 26 日
阅读 3 分钟
440
在微服务架构中,gRPC 已成为主流的通信协议之一。但许多开发者在面对 gRPC 服务测试时,常常会遇到需要启动真实网络服务、管理端口占用等烦恼。
封面图

Go 语言中如何处理并发错误

6 月 25 日
阅读 9 分钟
407
在 Go 语言中,错误处理一直是开发中不可或缺的一部分。尤其在并发编程场景下,由于多个 goroutine 同时运行,错误的传递和处理就变得更为复杂。这篇文章就介绍了一些常见的处理并发错误的方法,以供各位参考。
封面图

深入解析 go 语言中的 select 语句

6 月 24 日
阅读 4 分钟
374
在 go 语言中,select 是 Go 语言专门为并发编程设计的控制结构,主要用于在多个 channel 操作之间进行非阻塞选择。它的工作方式类似于 switch,但所有 case 分支都必须是 channel 的 I/O 操作。
封面图

InfluxDB 时序数据的高效解决方案

6 月 23 日
阅读 8 分钟
358
InfluxDB 使用 Tag-Key-Value 模型来组织数据,这种模型便于对时间序列数据进行分类和聚合。它支持类 SQL 的查询语言 InfluxQL 和 Flux,适合复杂查询需求。InfluxDB 的架构设计使其在处理高频率、连续的时间序列数据时表现出色,例如监控系统中的指标数据、物联网设备的传感器数据、日志数据等。
封面图

不用WebSocket也能搞定实时消息推送?试一试SSE吧!

6 月 18 日
阅读 4 分钟
454
在现代 Web 开发中,实现实时数据更新是一个常见的需求。比如股票行情、聊天消息、体育比赛比分等场景,都需要服务器能够主动将数据推送给客户端,而不是客户端频繁轮询服务器来获取最新数据。
封面图

Go语言切片,使用技巧与避坑指南

6 月 17 日
阅读 3 分钟
550
切片(Slice)是Go语言中最灵活且高频使用的数据结构之一,其本质是对底层数组的动态引用视图,支持动态扩容、高效截取等特性。本文将结合代码示例,详细解析切片的核心用法及常见注意事项。一、切片基础与创建方式1.1 切片的底层结构切片由三个核心属性构成:指针:指向底层数组的起始位置;长度(len):当前存储的元...
封面图

Go语言中使用切片需要注意什么?

6 月 16 日
阅读 2 分钟
441
切片(Slice)是 Go 语言中非常强大且灵活的数据结构,它是对数组的一个连续片段的引用。切片的使用极大地简化了数组的操作,但在使用过程中也有一些需要注意的地方。
封面图

你真的会使用 Go 语言中的 Channel 吗?

6 月 13 日
阅读 3 分钟
456
Go 语言的并发模型是其强大之处之一,而 Channel 则是这一模型的核心。Channel 提供了一种在 goroutine 之间进行通信和同步的机制。然而,正确地使用 Channel 并不是一件简单的事情。
封面图

如何在 Go 中获取 goroutine 的 ID?

6 月 12 日
阅读 3 分钟
409
在使用 Go 语言进行并发编程时,Goroutine 是一种轻量级线程,具有很高的性能优势。然而,Go 语言并未直接提供获取 Goroutine ID 的官方 API。这是 Go 语言设计的一部分,目的是避免开发者依赖 Goroutine ID 进行不必要的复杂操作。然而,在某些场景下,获取 Goroutine ID 可能会有助于调试和日志跟踪。
封面图

Go 语言中如何操作二维码?

6 月 11 日
阅读 3 分钟
411
二维码(QR Code)已经成为我们生活中不可或缺的一部分,无论是支付、登录还是信息共享,它们可以轻松地存储和传输各种类型的数据,从网站链接到名片信息,无所不能。在开发中,我们经常会遇到识别二维码的需求,那么用 Go 语言如何实现二维码识别呢?

如何判断两张图片的相似度?原来图片对比也可以如此简单!

6 月 10 日
阅读 5 分钟
557
图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个社交媒体平台的运营,每天要处理数万张图片。重复图片不仅占用存储空间,还会影响用户体验。
封面图

告别数据库瓶颈!用这个技巧让你的程序跑得飞快!

6 月 9 日
阅读 3 分钟
385
在日常开发中,数据库连接的管理是一个非常重要的环节。为了避免频繁地创建和销毁数据库连接,我们可以通过连接池来提高系统的性能和响应速度。连接池能够有效地重用已有的连接,避免重复的连接创建和销毁过程。
封面图

HTTP2.0 从原理到实践,保证把你治得服服帖帖!

6 月 6 日
阅读 3 分钟
698
HTTP 是 Web 传输的基础协议,随着互联网的发展,它不断演进,从最初的 HTTP/1.0 到 HTTP/1.1,再到如今的 HTTP/2,每个版本都带来了显著的改进。
封面图

还在用 Jmeter 做压测?试试 oha 吧!你会毫不犹豫的爱上它!

6 月 5 日
阅读 4 分钟
474
在进行 Web 服务和 API 性能测试时,选择合适的工具至关重要。市面上有很多工具可以帮助开发者进行负载测试,其中 OHA 和 JMeter 是两个常见的选择。
封面图

localhost 和 127.0.0.1 到底有啥区别?

6 月 4 日
阅读 3 分钟
762
在开发中,我们经常会接触到 localhost 和 127.0.0.1。很多人可能觉得它们是一样的,甚至可以互换使用。实际上,它们确实有很多相似之处,但细究起来,也存在一些重要的区别。
封面图

又双叒叕出来了一款船新Copilot!腾讯终于发大招了!码农们又可以丝滑摸鱼啦~

2024-12-11
阅读 6 分钟
1k
说实话,自从去年年底 GitHub Copilot 腾空出世之后,陆陆续续出现了不少好用的 AI 代码助手,像 CodeGeeX 智能编程助手、JetBrains 官方出品的 JetBrains AI Assistant、字节跳动旗下豆包的 MarsCode AI、再到 Cursor AI 编辑器…… 在 AI 代码助手这方面,真可谓百花齐放,其中完全免费的,有体验期限的,直接需要付费的...
封面图

Grequests,非常 Nice 的 Python 异步 HTTP 请求神器

2024-12-03
阅读 2 分钟
729
我们已知的 requests 库已经是相当的牛掰了,但是比较遗憾的是 requests 库不支持异步请求,今天,我们来介绍一个异步 HTTP 请求库 ——grequests。grequests 库以其异步处理能力,为开发者提供了一个高效、简洁的方式来发送和处理 HTTP 请求,并且它和 requests 库的用法贼为相似。一起来看看吧!
封面图

通过标签清理微信好友:Python自动化脚本解析

2024-12-02
阅读 5 分钟
772
在上一篇文章中,我写了一个自动根据用户状态(好友将我们删除了还是拉黑了)将用户打上不同标签的工具。那么,已经将用户打好了标签之后,我们就可以根据指定的标签名来直接删除好友了。
封面图

手撸了一个全自动微信清粉小工具(源码详解)

2024-12-01
阅读 16 分钟
828
在当今社交软件中,微信是最常用的通讯工具之一。然而,随着时间的推移,我们的好友列表中可能会出现一些不再活跃的账号,也就是我们俗称的“僵尸粉”。
封面图

hyperf-throttle-requests,一个超牛的 PHP 限流神器

2024-11-30
阅读 8 分钟
834
在分布式系统和微服务架构中,API 的稳定性和可用性至关重要。为了保护后端服务不受恶意攻击和流量高峰的影响,请求频率限制(Rate Limiting)成为了一种常见的策略。
封面图

hyperf-alarm-clock,一个自动计算代码执行时间,超时并发送通知的小工具

2024-11-29
阅读 4 分钟
832
在软件开发中,我们经常需要对代码执行时间进行监控,以确保系统的性能和稳定性。在 PHP 的世界里,Hyperf 框架以其高性能和丰富的组件生态而闻名,而今天我要介绍的是 Hyperf 生态中的一个小巧的插件包 —— hyperf-alarm-clock 库。它是一个计算代码执行时间,并在超时后发送通知的小工具。
封面图

hyperf-wise-locksmith,一个高效的PHP分布式锁方案

2024-11-28
阅读 5 分钟
694
在分布式系统中,如何确保多台机器之间不会产生竞争条件,是一个常见且重要的问题。hyperf-wise-locksmith 库作为 Hyperf 框架中的一员,提供了一个高效、简洁的互斥锁解决方案。
封面图

PHP 互斥锁:如何确保代码的线程安全?

2024-11-27
阅读 4 分钟
598
在多线程和高并发的环境下,我们经常会遇到需要确保代码段互斥执行的场景。比如,在电商平台中,当多个用户同时购买同一件商品时,如何确保库存的扣减是线程安全的?

你可能不知道 xz 也是一种压缩格式,并且还相当惊艳

2024-11-26
阅读 3 分钟
1.1k
Linux 系统中有多种工具和格式可以实现文件压缩,最常见的包括 tar、zip、gzip、bzip2 和 xz 等。本文将详细介绍 xz 命令,帮助读者理解其与其他压缩工具的不同之处,并指导编程小白用户如何使用该命令。
封面图

Go语言中的加解密利器:go-crypto库全解析

2024-11-25
阅读 4 分钟
753
在软件开发中,数据安全和隐私保护越来越受到重视。Go 语言以其简洁高效的特性,成为了许多开发者的首选。然而,在实际项目中使用加解密时,还是需要在标准库的基础上做一些封装。go-crypto 库应运而生,它是一个专为 Golang 设计的加密解密工具库,提供了 AES 和 RSA 等多种加密算法的支持。
封面图

Go语言中json序列化的一个小坑,建议多留意一下

2024-11-24
阅读 5 分钟
692
在 Go 语言开发中,JSON(JavaScript Object Notation)因其简洁和广泛的兼容性,通常被用作数据交换的主要序列化格式。然而,当你深入使用 JSON 时,可能会发现它并不总是最佳选择。
封面图

如何在 Go 项目中隐藏敏感信息,比如避免暴露用户密码?

2024-11-23
阅读 3 分钟
508
在我们日常开发的 Go 项目中,用户信息管理是一个非常常见的场景。特别是当我们需要存储和处理用户密码等敏感信息时,如何确保这些信息不暴露给客户端就显得尤为重要。
封面图

探索 Go 语言中的内存对齐:为什么结构体大小会有所不同?

2024-11-22
阅读 2 分钟
400
在这个例子中,我们定义了两个结构体 A 和 B。它们的字段基本相同,只是排列顺序不同。然后,我们使用 unsafe.Sizeof 来查看这两个结构体在内存中的大小。
封面图

聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题

2024-11-21
阅读 2 分钟
427
然而,在处理数字,尤其是大整数时,我们可能会遇到精度丢失的问题。这是因为 JavaScript 中的数字类型只能安全地处理一定范围内的整数。其数字类型是基于 64 位双精度浮点数的 Number 类型。这种类型可以安全表示 -2^53 到 2^53 之间的整数,超过这个范围的整数将无法精确表示,但是我们后端语言的整数范围是超过的,因...
封面图