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

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

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

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

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

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

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

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

如何在Go语言中实现表单验证?整一个validator吧!

11 月 20 日
阅读 6 分钟
72
本文将通过一个实际的示例,演示如何使用 Go 语言的 Gin 框架结合 validator 包,实现高级的表单验证功能,并且支持国际化(i18n)的错误信息提示。
封面图

使用漏桶和令牌桶实现API速率限制

11 月 19 日
阅读 3 分钟
43
在现代 Web 应用程序中,流量的突增是不可避免的。为防止服务器被过多的请求压垮,限流(Rate Limiting) 是一个至关重要的技术手段。
封面图

Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!

11 月 18 日
阅读 7 分钟
65
在现代 Web 应用中,JWT(JSON Web Token)已经成为了主流的认证与授权解决方案。它轻量、高效、易于实现,并且非常适合于微服务架构。
封面图

分布式唯一ID生成:深入理解Snowflake算法在Go中的实现

11 月 17 日
阅读 4 分钟
74
在分布式系统中,为了确保每个节点生成的 ID 在整个系统中是唯一的,我们需要一种高效且可靠的 ID 生成机制。分布式 ID 的特点全局唯一性:不能出现有重复的 ID 标识,这是基本要求。递增性:确保生成的 ID 对于用户或业务是递增的。高可用性:确保任何时候都能生成正确的 ID。高性能性:在高并发的环境下依然表现良好。...
封面图

Viper,一个Go语言配置管理神器!

11 月 16 日
阅读 4 分钟
81
在 Go 语言中,Viper 是一个功能强大且广泛使用的配置管理库,它支持从多个来源读取配置,包括文件、环境变量、远程配置中心等。本文将详细介绍如何使用 Viper 来管理配置,包括从本地文件和 Consul 远程配置中心读取配置的示例。
封面图

Go Web服务中如何优雅平滑重启?

11 月 15 日
阅读 2 分钟
48
在这篇文章中,我将带大家一起探索如何在 Go 语言中通过使用 endless 包来实现服务的优雅重启,即在不影响当前正在处理的请求的情况下,完成服务的无缝升级。
封面图

Go Web服务中如何优雅关机?

11 月 14 日
阅读 4 分钟
92
在构建 Web 服务时,我们往往会遇到一个棘手的问题:当我们想要停止服务时,如何确保正在处理的请求能够顺利完成,而不是突然中断? 这种技术被称为“优雅关机”,它可以确保在服务关闭时,所有的请求都被妥善处理。
封面图

用 Zap 轻松搞定 Go 语言中的结构化日志

11 月 13 日
阅读 4 分钟
96
Zap 是 Uber 开发的一款高性能日志库,专为那些需要快速、结构化日志记录的场景而设计。与其他日志库相比,Zap 的性能更为优越,尤其是在需要频繁记录日志的高并发环境中。
封面图

Redis 实现高效任务队列:异步队列与延迟队列详解

11 月 12 日
阅读 5 分钟
68
在现代开发中,任务队列是一种非常常见的设计模式。它允许我们将需要耗时的操作放到后台执行,从而提高系统的响应速度和并发能力。而在众多的技术选型中,Redis 凭借其高性能和简单易用性,成为了任务队列的理想选择。
封面图

如何用Redis高效实现点赞功能?用Set?还是Bitmap?

11 月 11 日
阅读 3 分钟
109
我们设定这样一个需求场景:在一篇文章的评论下实现点赞功能,每位用户只能对同一条评论点赞一次,再次点赞则视为“取消点赞”。此外,我们还需要统计每条评论的总点赞数。
封面图

Python中的文字识别利器:pytesseract库

11 月 7 日
阅读 3 分钟
95
今天我要给大家介绍一个非常实用的 Python 库——pytesseract。这是一个基于 Google 的 Tesseract-OCR 引擎的 Python 封装,是一个功能强大的 OCR 工具,能够实现图像中文字的识别。无论是从图片中提取文本信息,还是实现图像转文字的自动化处理,pytesseract 都能够轻松胜任。
封面图

Python爬虫神器requests库的使用

11 月 7 日
阅读 4 分钟
215
在现代编程中,网络请求几乎是每个项目不可或缺的一部分。无论是获取数据、发送信息,还是与第三方 API 交互,都会涉及到网络请求。今天,我们就来详细介绍一下 Python 中的 requests 库,它是一个功能强大、使用方便的 HTTP 请求库。🚀让我们从基础知识开始,一步步深入了解它的特性和实际应用场景。🌟1. 安装 requests ...
封面图

体验了下豆包MarsCode编程助手,惊艳到我了!

8 月 30 日
阅读 3 分钟
2k
前天晚上打开掘金的时候,发现有一条系统通知,我还以为是掘金又有什么薅羊毛活动来了呢,😁 定睛一看,原来是:邀请一些博主测评 MarsCode。

Go语言中高效使用Redis的Pipeline

8 月 19 日
阅读 4 分钟
554
在构建高性能应用时,Redis 经常成为开发者的首选工具。作为一个内存数据库,Redis 可以处理大量的数据操作,但如果每个命令都单独发送,网络延迟会成为瓶颈,影响性能。
封面图

Go语言中如何扫描Redis中大量的key

8 月 16 日
阅读 3 分钟
254
KEYS 命令会一次性返回所有匹配的键,这可能导致 Redis 阻塞,严重影响线上服务的稳定性。为了解决这个问题,Redis 提供了 SCAN 命令,用于分批次迭代键,避免一次性返回所有数据。

Go语言中使用sqlx来操作事务

8 月 15 日
阅读 3 分钟
245
在应用程序中,数据库事务的使用至关重要。它可以确保操作的原子性、一致性、隔离性和持久性(ACID)。github.com/jmoiron/sqlx 包提供了一个便利的方法来简化对数据库的操作。
封面图

Go语言中使用 sqlx 来操作 MySQL

8 月 14 日
阅读 6 分钟
300
Go 语言以其高效和简洁的语法逐渐受到开发者的青睐。在实际开发中,数据库操作是不可避免的任务之一。虽然标准库提供了 database/sql 包来支持数据库操作,但使用起来略显繁琐。
封面图

Go 语言中的 MySQL 事务操作

8 月 13 日
阅读 3 分钟
258
事务是一个包含一个或多个 SQL 操作的逻辑单元。在 MySQL 中,事务确保了这些操作要么全部成功执行,要么在发生错误时全部回滚,保持数据的一致性。事务的主要特性包括:
封面图

Go语言中进行MySQL预处理和SQL注入防护

8 月 12 日
阅读 3 分钟
289
在现代 web 应用开发中,安全性是我们必须重视的一个方面。SQL 注入是常见的攻击手法之一,它允许攻击者通过构造特殊的 SQL 查询来访问、修改数据库中的数据。
封面图

手摸手教你,从0到1开发一个Chrome浏览器插件

8 月 9 日
阅读 3 分钟
1.2k
开发 Chrome 浏览器插件(也称为扩展)是一段有趣且有成就感的过程。在本教程中,我将引导你从零开始,逐步创建一个简单的 Chrome 插件。无论你是编程新手还是有一定基础的用户,我们都将以简单易懂的方式介绍整个过程。
封面图

Go语言中如何连接 MySQL,基础必备!

8 月 8 日
阅读 4 分钟
794
在本教程中,我们将学习如何使用 Go 语言与 MySQL 数据库进行基本的 CRUD(创建、读取、更新、删除)操作。我们将使用 database/sql 标准库以及 github.com/go-sql-driver/mysql 驱动来实现这些功能。
封面图

涨姿势啦!Go语言中正则表达式初始化的最佳实践

8 月 7 日
阅读 5 分钟
321
然而,正则表达式的编译过程是比较耗费性能的,因此在初始化正则表达式时需要考虑性能和代码的可读性。本文将讨论两种主要的正则表达式初始化方式,并给出最佳实践建议。
封面图

在项目中到底应不应该用jwt?

8 月 6 日
阅读 3 分钟
248
通常用于身份验证和授权场景,通过 JWT 可以安全地传输用户信息,如用户名和用户角色等。一旦用户登录成功,服务器会生成一个包含用户信息的 JWT 并将其返回给客户端。客户端在后续的请求中携带这个令牌,服务器可以验证令牌的有效性以确定请求的来源身份是否合法。这样无需在每个请求中都验证用户凭证。这种认证机制可...
封面图

一文弄懂Go语言的Context包,值得收藏!

8 月 5 日
阅读 5 分钟
678
这时,Go 标准库中的 context 包就显得尤其重要了,它提供了在不同 API 层级之间传递取消信号、超时时间、截止日期,以及其他特定请求的值的能力。
封面图

想要解析邮件?IMAP协议轻松助你,不再烦恼!

8 月 2 日
阅读 8 分钟
520
POP3 (Post Office Protocol - Version 3)协议用于支持使用电子邮件客户端获取并删除在服务器上的电子邮件。
封面图

使用 Hugo 快速搭建一个云博客系统

7 月 18 日
阅读 3 分钟
745
Hugo 快速搭建一个博客系统Hugo 是由 Go 语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。支持 markdown 语法。官网地址皮肤地址这里我使用的主题是 m10c,你也可以使用更多的主题,比如:图文并茂类型的极简类型的传统博客类型的极客风格的安装 Hugo直接去 Hugo Releases 页面下载对应系统版本的 Hugo ...
封面图