funk 包 快速开发首选,但注意性能开销 生产环境热路径建议用原生循环 Go 1.18+ 可用泛型替代 funk 简介与安装 funk 是一个提供函数式编程工具的 Go 包,类似于 JavaScript 的 Lodash。 go get github.com/thoas/go-funk 常见操作 查找与过滤 `go import "github.com/thoas/go-funk" type User struct ...
摘要: 如果项目中包含大量合约交互,推荐使用此方式,封装通用的合约调用,避免重复造轮子。
前言 在 Web3 开发中,与智能合约的交互是核心功能。但直接使用 ethers.js 或 web3.js 进行合约调用时,我们常常会遇到这些问题: 开发痛点: 🔴 代码重复:每次调用都要重复创建 Provider、Signer、Contract 实例 🔴 错误处理混乱:各种异常分散在业务代码中,难以统一管理 🔴 性能低下:频繁创建连接对象,缺少复用机制 🔴 网络不稳定:区块链 RPC 节点经常超时,缺少重试机制 🔴 维护困难:业务逻辑和技术细节耦合,改一处动全身 本文目标: 通过生产环境实...
前言 在现代 Web 应用中,JWT(JSON Web Token)已经成为最流行的身份认证方案之一。相比传统的 Session 认证,JWT 具有无状态、可扩展、跨域支持等优势,特别适合微服务架构和前后端分离的应用。 本文将使用 github.com/golang-jwt/jwt/v5 库,从零开始构建一个完整的 JWT 认证系统,包括用户注册、登录、Token 刷新、权限验证等核心功能。 JWT 基础知识 什么是 JWT JWT 是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。 ...
前言 在 Go Web 开发中,数据验证是一个必不可少的环节。github.com/go-playground/validator/v10 是 Go 生态中最流行的验证库之一,但其默认的错误信息对用户并不友好。本文将详细介绍如何自定义验证错误信息,让你的 API 返回更加友好、易懂的错误提示。 问题场景 使用原生 validator 时,错误信息通常是这样的: ` Key: 'User.Email' Error:Field validation for 'Email' failed on the 'required' tag Key: 'User.Age' Erro...
本教程将指导您从零开始搭建一个完整的 gRPC 通信系统,使用 TypeScript 作为客户端,Go 作为服务端。 目录 环境准备 项目结构 步骤一:创建 Proto 文件 步骤二:搭建 Go 服务端 步骤三:搭建 TypeScript 客户端 步骤四:运行测试 故障排查 环境准备 必需软件 在开始之前,请确保已安装以下软件...