左诗右码_社区达人页

个人头像照片
左诗右码
已加入开发者社区2005

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
江湖侠士
江湖侠士

成就

已发布89篇文章
13条评论
已回答0个问题
0条评论
已发布0个视频
github地址

我关注的人 更多

技术能力

兴趣领域
  • Go
  • PHP
  • Python
  • 微服务
  • 容器
  • 人工智能
  • Linux
  • MacOS
擅长领域
技术认证

暂时未有相关云产品技术能力~

三观比五官更正,思想比套路更深。常用技术栈PHP、Go、Python,享受编程,平时爱好写点文章。V公主耗:「左诗右码」,欢迎关注交流。

暂无精选文章
暂无更多信息

2024年11月

  • 11.23 13:09:20
    发表了文章 2024-11-23 13:09:20

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

    在Go语言开发中,用户信息管理常涉及敏感数据如密码的处理。为防止这些数据暴露给客户端,本文介绍了三种方法:使用JSON标签忽略字段、自定义序列化逻辑、使用数据传输对象(DTO),以确保用户数据的安全性。通过这些方法,可以有效控制数据输出,避免敏感信息泄露。
  • 11.22 10:49:35
    发表了文章 2024-11-22 10:49:35

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

    在 Go 语言中,内存对齐是优化内存访问速度的重要概念。通过调整数据在内存中的位置,编译器确保不同类型的数据能够高效访问。本文通过示例代码展示了两个结构体 `A` 和 `B`,尽管字段相同但排列不同,导致内存占用分别为 40 字节和 48 字节。通过分析内存布局,解释了内存对齐的原因,并提供了优化结构体字段顺序的方法,以减少内存填充,提高性能。
  • 11.21 10:21:36
    发表了文章 2024-11-21 10:21:36

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

    在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
  • 11.20 11:16:56
    发表了文章 2024-11-20 11:16:56

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

    本文通过一个实际示例,展示了如何使用 Go 语言的 Gin 框架结合 `validator` 包实现高级表单验证,并支持多语言错误提示。示例包括表单数据结构定义、自定义验证器、多语言支持及错误处理等关键步骤,确保用户提交的信息符合要求,并能根据用户语言偏好提供相应的错误提示。
  • 11.19 15:03:18
    发表了文章 2024-11-19 15:03:18

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

    本文介绍如何在 Go 语言的 Gin 框架中使用漏桶算法和令牌桶算法实现 API 限流,以保护系统资源,防止过载和恶意攻击,确保服务稳定。通过具体代码示例展示了两种算法的应用方法。
  • 11.18 10:40:01
    发表了文章 2024-11-18 10:40:01

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

    本文介绍了如何在 Go 语言中使用 Gin 框架实现 JWT 用户认证和安全保护。JWT(JSON Web Token)是一种轻量、高效的认证与授权解决方案,特别适合微服务架构。文章详细讲解了 JWT 的基本概念、结构以及如何在 Gin 中生成、解析和刷新 JWT。通过示例代码,展示了如何在实际项目中应用 JWT,确保用户身份验证和数据安全。完整代码可在 GitHub 仓库中查看。
  • 11.17 15:04:36
    发表了文章 2024-11-17 15:04:36

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

    在分布式系统中,确保每个节点生成的 ID 唯一且高效至关重要。Snowflake 算法由 Twitter 开发,通过 64 位 long 型数字生成全局唯一 ID,包括 1 位标识位、41 位时间戳、10 位机器 ID 和 12 位序列号。该算法具备全局唯一性、递增性、高可用性和高性能,适用于高并发场景,如电商促销时的大量订单生成。本文介绍了使用 Go 语言的 `bwmarrin/snowflake` 和 `sony/sonyflake` 库实现 Snowflake 算法的方法。
  • 11.16 16:34:12
    发表了文章 2024-11-16 16:34:12

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

    Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
  • 11.15 10:10:07
    发表了文章 2024-11-15 10:10:07

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

    在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
  • 11.14 11:50:02
    发表了文章 2024-11-14 11:50:02

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

    在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
  • 11.13 17:24:20
    发表了文章 2024-11-13 17:24:20

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

    在现代应用程序开发中,日志记录至关重要。Go 语言中有许多日志库,而 Zap 因其高性能和灵活性脱颖而出。本文详细介绍如何在 Go 项目中使用 Zap 进行结构化日志记录,并展示如何定制日志输出,满足生产环境需求。通过基础示例、SugaredLogger 的便捷使用以及自定义日志配置,帮助你在实际开发中高效管理日志。
  • 11.12 11:17:56
    发表了文章 2024-11-12 11:17:56

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

    本文介绍了如何使用 Redis 实现异步队列和延迟队列。通过 Go 语言的 `github.com/go-redis/redis` 客户端,详细讲解了 Redis 客户端的初始化、异步队列的实现和测试、以及延迟队列的实现和测试。文章从基础连接开始,逐步构建了完整的队列系统,帮助读者更好地理解和应用这些概念,提升系统的响应速度和性能。
  • 11.11 17:49:01
    发表了文章 2024-11-11 17:49:01

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

    在众多软件应用中,点赞功能几乎成为标配。本文从实际需求出发,探讨如何利用 Redis 的 `Set` 和 `Bitmap` 数据结构设计高效点赞系统,分析其优缺点,并提供 PHP 实现示例。通过对比两种方案,帮助开发者选择最适合的存储方式。
  • 11.07 22:47:12
    发表了文章 2024-11-07 22:47:12

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

    `pytesseract` 是一个基于 Google Tesseract-OCR 引擎的 Python 库,能够从图像中提取文字,支持多种语言,易于使用且兼容性强。本文介绍了 `pytesseract` 的安装、基本功能、高级特性和实际应用场景,帮助读者快速掌握 OCR 技术。
  • 11.07 22:38:16
    发表了文章 2024-11-07 22:38:16

    Python爬虫神器requests库的使用

    在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟

2024年08月

  • 08.30 17:46:15
    发表了文章 2024-08-30 17:46:15

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

    豆包 MarsCode 是一款 AI 编程助手,提供智能代码补全等功能,支持多种编程语言及 IDE,涵盖代码解释、审查与修复等辅助功能,旨在提升开发效率。其支持线上编辑器,无需搭建环境即可运行代码,体验接近本地 VS Code。尽管部分功能解释略显不足,但整体表现出色,可无缝替代 GitHub Copilot,适合希望提高开发效率的程序员使用。无论是在本地还是线上,MarsCode 都能显著提升编程体验。
  • 08.19 14:49:20
    发表了文章 2024-08-19 14:49:20

    Go语言中高效使用Redis的Pipeline

    Redis 是构建高性能应用时常用的内存数据库,通过其 Pipeline 和 Watch 机制可批量执行命令并确保数据安全性。Pipeline 类似于超市购物一次性结账,减少网络交互时间,提升效率。Go 语言示例展示了如何使用 Pipeline 和 Pipelined 方法简化代码,并通过 TxPipeline 保证操作原子性。Watch 机制则通过监控键变化实现乐观锁,防止并发问题导致的数据不一致。这些机制简化了开发流程,提高了应用程序的性能和可靠性。
  • 08.16 22:12:18
    发表了文章 2024-08-16 22:12:18

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

    在Redis中,遍历大量键时直接使用`KEYS`命令会导致性能瓶颈,因为它会一次性返回所有匹配的键,可能阻塞Redis并影响服务稳定性。为解决此问题,Redis提供了`SCAN`命令来分批迭代键,避免一次性加载过多数据。本文通过两个Go语言示例演示如何使用`SCAN`命令:第一个示例展示了基本的手动迭代方式;第二个示例则利用`Iterator`简化迭代过程。这两种方法均有效地避免了`KEYS`命令的性能问题,并提高了遍历Redis键的效率。
  • 08.15 14:58:43
    发表了文章 2024-08-15 14:58:43

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

    在应用中,数据库事务保证操作的ACID特性至关重要。`github.com/jmoiron/sqlx`简化了数据库操作。首先安装SQLX和MySQL驱动:`go get github.com/jmoiron/sqlx`和`go get github.com/go-sql-driver/mysql`。导入所需的包后,创建数据库连接并使用`Beginx()`方法开始事务。通过`tx.Commit()`提交或`tx.Rollback()`回滚事务以确保数据一致性和完整性。
  • 08.14 14:00:02
    发表了文章 2024-08-14 14:00:02

    Go语言中使用 sqlx 来操作 MySQL

    Go语言因其高效的性能和简洁的语法而受到开发者们的欢迎。在开发过程中,数据库操作不可或缺。虽然Go的标准库提供了`database/sql`包支持数据库操作,但使用起来稍显复杂。为此,`sqlx`应运而生,作为`database/sql`的扩展库,它简化了许多常见的数据库任务。本文介绍如何使用`sqlx`包操作MySQL数据库,包括安装所需的包、连接数据库、创建表、插入/查询/更新/删除数据等操作,并展示了如何利用命名参数来进一步简化代码。通过`sqlx`,开发者可以更加高效且简洁地完成数据库交互任务。
  • 08.13 16:26:50
    发表了文章 2024-08-13 16:26:50

    Go 语言中的 MySQL 事务操作

    在现代应用中,确保数据完整与一致至关重要。MySQL的事务机制提供了可靠保障。本文首先解释了事务的概念及其ACID特性,随后介绍了如何在Go语言中使用`database/sql`包进行MySQL事务操作。通过一个银行转账的例子,演示了如何通过Go开启事务、执行操作并在必要时回滚或提交,确保数据一致性。最后,还讨论了不同事务隔离级别的含义及如何在Go中设置这些级别。通过本文的学习,开发者能更好地掌握MySQL事务的应用。
  • 08.12 22:12:59
    发表了文章 2024-08-12 22:12:59

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

    在现代Web应用开发中,安全性至关重要。SQL注入是一种常见的攻击方式,攻击者可通过构造特殊SQL查询来非法访问或修改数据库数据。本文介绍如何利用Go语言中的预处理SQL语句来防范此类攻击。预处理不仅能提升安全性,还能提高性能并简化代码。通过使用`?`作为占位符,Go自动处理参数转义,有效避免SQL注入。此外,文章还提供了连接MySQL数据库、执行预处理查询以及最佳实践的示例代码。务必遵循这些指导原则,确保应用程序的安全性。
  • 08.09 12:06:13
    发表了文章 2024-08-09 12:06:13

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

    开发 Chrome 插件既有趣又具成就感。本教程将引导你从零开始,逐步创建一个简单的 Chrome 插件。首先了解 Chrome 插件是可增强浏览器功能的小程序。以一个基础示例开始,你将学习如何设置开发环境,包括安装 Chrome 和准备文本编辑器,并掌握 HTML、CSS 和 JavaScript 的基础知识。接着,我们将构建插件的基本结构,涉及 `manifest.json` 配置文件、`background.js` 后台脚本、`popup.html` 用户界面以及 `style.css` 样式表。
  • 08.08 23:22:01
    发表了文章 2024-08-08 23:22:01

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

    在现代应用中,数据库操作至关重要。本教程将指导你使用Go语言进行MySQL的CRUD操作。首先,确保已创建`test_db`数据库及`users`表。接着安装MySQL驱动:`go get -u github.com/go-sql-driver/mysql`。通过示例代码,你将学会连接数据库、创建、查询、更新及删除用户记录。尽管此方法直接,但在实际项目中可能略显繁琐,后续会介绍更高效的库如sqlx或gorm。现在,让我们从基础开始,掌握Go语言中的数据库交互技巧。
  • 08.07 18:18:48
    发表了文章 2024-08-07 18:18:48

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

    在Go语言中,正则表达式是处理字符串的强大工具,但其编译过程可能消耗较多性能。本文探讨了正则表达式编译的性能影响因素,包括解析、状态机构建及优化等步骤,并通过示例展示了编译的时间成本。为了优化性能,推荐使用预编译策略,如在包级别初始化正则表达式对象或通过`init`函数进行错误处理。此外,简化正则表达式和分段处理也是有效手段。根据初始化的复杂程度和错误处理需求,开发者可以选择最适合的方法,以提升程序效率与可维护性。
  • 08.06 22:10:10
    发表了文章 2024-08-06 22:10:10

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

    JSON Web Tokens(JWT)是一种开放标准,用于在网络上传输安全信息。它常用于身份验证场景,用户登录后,服务器生成JWT并返回给客户端。客户端在后续请求中携带此令牌,服务器验证其有效性来确认用户身份。JWT具有无状态、可扩展和安全的特点,支持跨域认证,但也有令牌大小、续期复杂等缺点。是否使用JWT取决于项目需求,多数公司在采用,除非有特殊理由避免。以下是Go语言中使用JWT的一个示例。
  • 08.05 15:28:29
    发表了文章 2024-08-05 15:28:29

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

    在开发高效的Go应用程序时,处理超时、取消操作和传递请求范围的数据至关重要。Go标准库中的`context`包提供了一套强大的工具,用于在不同层级间传递取消信号、超时和截止时间等信息。本文首先概述了`context`包的核心功能,接着详细介绍了关键方法,如`WithCancel`、`WithDeadline`、`WithTimeout`和`WithValue`的使用场景。通过创建和派生上下文,开发者能更好地管理请求的生命周期,控制长时间运行的操作,并在并发环境中传递必要的数据。
  • 08.02 13:42:48
    发表了文章 2024-08-02 13:42:48

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

    电子邮件仍是关键的通讯工具,利用编程语言自动化处理能显著提高效率。本文介绍使用Go语言从IMAP服务器读取、解析邮件及处理相关信息。首先概述POP3/IMAP/SMTP协议的作用,强调IMAP协议的优势及其在邮件客户端与服务器间双向同步的特点。接着,指导如何获取授权码以连接第三方服务。通过实战演示,展示使用`go-imap`库连接服务器、读取邮件详情(如主题、收件人等)、标记邮件为已读的过程。最后,对比`Store`与`UidStore`方法的区别,指出使用`UidStore`更安全可靠。本文提供了一段详细的Go语言示例代码,帮助读者快速上手。

2024年07月

  • 07.18 17:34:53
    发表了文章 2024-07-18 17:34:53

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

    使用Hugo快速搭建博客,Hugo是基于Go的静态站点生成器,以其简单、高效著称。[官网](https://gohugo.io/) 提供多种主题,如[m10c](https://themes.gohugo.io/themes/hugo-theme-m10c/)等。在Mac上可通过`brew install hugo`安装。创建站点`hugo new site ~/hugo-blog`,
  • 07.18 17:11:42
    发表了文章 2024-07-18 17:11:42

    新MacBook到手时,建议你需要做的事情(二)

    在Mac上重装系统前,应备份`~/.gitconfig`, `~/.ssh`, `~/.config`等个人配置文件。推荐的软件包括有道云笔记、WPS Office、FastZip、XMind、网络调试助手、Chrome、Clash、iTerm2、oh-my-zsh、Homebrew、Git、wget、tree、telnet、Neovim、tldr、IDEs(如JetBrains产品)、GitHub Desktop、VS Code、
  • 07.18 17:03:10
    发表了文章 2024-07-18 17:03:10

    新MacBook到手时,建议你需要做的事情(一)

    Markdown 摘要: --- 重装 **MacBook Pro (16", 2019)** 后,配置从简,侧重系统默认软件。首先在引导时联网、启用定位,登录 **Apple ID** 以实现跨设备同步。设置包括:启用触控板轻点、三指拖移,显示访达中的硬盘和常用边栏项,个性化输入法如双拼,并在控制中心显示键盘亮度。安装必要字体如 MiSans 和阿里妈妈数黑体。后续内容将涉及软件安装及编程相关配置。
  • 07.18 16:52:19
    发表了文章 2024-07-18 16:52:19

    如何借助Redis巧妙的管理用户签到?——Bitmap篇

    Redis位操作用于高效存储分析,如用户签到。通过位操作,每个用户签到只需1位,节省空间。使用`setbit`设置签到状态,`getbit`查询,`bitcount`统计签到天数。适用于用户特征标记、系统功能开关和在线状态追踪。高效率、低空间占用,适合大数据场景。
  • 07.18 16:48:10
    发表了文章 2024-07-18 16:48:10

    如何借助Redis更高效统计UV?——Hyperloglog篇

    Redis的HyperLogLog数据类型是用于近似计算大规模数据集中不重复元素基数的工具,它以低空间开销(约12KB)提供高精度的估算(误差率约0.81%)。通过`pfadd`添加元素,`pfcount`统计数量,`pfmerge`合并多个HyperLogLog,实现去重计数。尽管内部存储为字符串,但它是概率数据结构,适合高效UV统计和其他大数据场景。
  • 07.18 16:37:35
    发表了文章 2024-07-18 16:37:35

    如何在Redis中快速推算两地之间的距离?——Geo篇

    Redis 3.2 引入Geo类型,支持地理位置数据存储和计算,如距离和范围查询。使用`GEOADD`将城市经纬度添加至`zset`中,通过`GEOPOS`获取坐标,`GEODIST`计算距离,`GEORADIUS`查找指定范围内的城市。Redis的Geo功能适用于快速的地理位置服务,如附近搜索和配送范围分析。利用`ZSET`操作可增删位置数据,简化地理空间应用开发。
  • 07.12 02:12:39
    发表了文章 2024-07-12 02:12:39

    Go语言map并发安全,互斥锁和读写锁谁更优?

    Go并发编程中,`sync.Mutex`提供独占访问,适合读写操作均衡或写操作频繁的场景;`sync.RWMutex`允许多个读取者并行,适用于读多写少的情况。明智选择锁可提升程序性能和稳定性。示例展示了如何在操作map时使用这两种锁。
  • 07.12 02:09:06
    发表了文章 2024-07-12 02:09:06

    Go语言map并发安全使用的正确姿势

    在Go并发编程中,由于普通map不是线程安全的,多goroutine访问可能导致数据竞态。为保证安全,可使用`sync.Mutex`封装map或使用从Go 1.9开始提供的`sync.Map`。前者通过加锁手动同步,后者内置并发控制,适用于多goroutine共享。选择哪种取决于具体场景和性能需求。
  • 07.12 02:05:12
    发表了文章 2024-07-12 02:05:12

    Go语言中的map为什么默认不是并发安全的?

    Go语言的map默认不保证并发安全,以优化性能和简洁性。官方建议在需要时使用`sync.Mutex`保证安全。从Go 1.6起,并发读写map会导致程序崩溃,鼓励开发者显式处理并发问题。这样做的哲学是让代码更清晰,并避免不必要的性能开销。
  • 07.11 17:55:45
    发表了文章 2024-07-11 17:55:45

    Docker 安装 KONG 带你玩转 API 网关

    **摘要:** 在微服务架构中,API网关Kong作为流行开源选择,提供身份验证、安全和流量控制等功能。通过Docker部署Kong简单高效。步骤包括:创建Docker网络,部署PostgreSQL数据库,初始化Kong数据库,启动Kong容器,并检查运行状态。此外,安装Konga管理界面便于直观管理Kong。使用Docker命令行,逐步设置环境变量和网络连接,即可完成安装。当不再需要时,可清理相关容器和网络。Kong结合Konga,为API管理提供强大且用户友好的解决方案。
  • 07.11 17:44:14
    发表了文章 2024-07-11 17:44:14

    深入理解 Nginx 与 Kong 的配置与实践

    在微服务架构中,Nginx 用于配置负载均衡,如示例所示,定义上游`pay-service`包含不同权重的服务节点。Kong API 网关则通过service和route进行服务管理和路由,与Nginx的upstream和location类似。通过Kong的命令行接口,可以创建upstream、target、service和route,实现对后端服务的负载均衡和请求管理。Nginx和Kong协同工作,提供高效、灵活的API管理和流量控制。
  • 07.11 17:22:59
    发表了文章 2024-07-11 17:22:59

    使用 Protobuf 实现高效数据交换

    **Protocol Buffers(Protobuf)** 是Google的序列化框架,语言和平台中立,用于高效、结构化数据的传输和存储。它支持多种数据类型,包括基本类型和复杂结构如枚举、数组和嵌套消息。Protobuf文件采用类似编程接口的定义,用`.proto`文件描述服务和消息。与RESTful API相比,gRPC基于HTTP/2和Protobuf,提供更小、更快的二进制格式。 Protobuf还包括`oneof`、`enum`和`map`等特性,用于处理复杂数据结构。通过代码生成,它简化了跨语言的数据交换。
  • 07.09 22:49:54
    发表了文章 2024-07-09 22:49:54

    Go语言设计模式:使用Option模式简化类的初始化

    在Go语言中,面对构造函数参数过多导致的复杂性问题,可以采用Option模式。Option模式通过函数选项提供灵活的配置,增强了构造函数的可读性和可扩展性。以`Foo`为例,通过定义如`WithName`、`WithAge`、`WithDB`等设置器函数,调用者可以选择性地传递所需参数,避免了记忆参数顺序和类型。这种模式提升了代码的维护性和灵活性,特别是在处理多配置场景时。
  • 07.09 22:44:31
    发表了文章 2024-07-09 22:44:31

    Go 语言性能优化技巧

    在Go语言中优化性能涉及数字字符串转换(如用`strconv.Itoa()`代替`fmt.Sprintf()`)、避免不必要的字符串到字节切片转换、预分配切片容量、使用`strings.Builder`拼接、有效利用并发(`goroutine`和`sync.WaitGroup`)、减少内存分配、对象重用(`sync.Pool`)、无锁编程、I/O缓冲、正则预编译和选择高效的序列化方法。这些策略能显著提升代码执行效率和系统资源利用率。
  • 07.08 11:53:16
    发表了文章 2024-07-08 11:53:16

    聊聊 Go 中的单例模式

    **摘要:** 单例模式确保类只有一个实例,提供全局访问点。Go中实现单例有饿汉式和懒汉式。饿汉式在程序启动时创建实例,如: ```go var Instance = new(singleton) ``` 懒汉式首次需要时创建,使用双重检查锁定模式确保线程安全: ```go if instance == nil { mutex.Lock() if instance == nil { instance = new(singleton) } mutex.Unlock() } ``` 饿汉式简单但可能浪费资源,懒汉式延迟初始化但需处理并发。
  • 07.08 11:45:33
    发表了文章 2024-07-08 11:45:33

    Go 项目自动重载解决方案 —— Air 使用入门

    **Air**: 提升Go开发效率的利器!自动重载工具,监听文件变化,实时编译运行,无需频繁重启。安装:启用Go Module后,运行`GO111MODULE=on go install github.com/cosmtrek/air@latest`。启动项目:`air`,配置文件默认为`air.toml`。集成到项目,忽略`tmp/`目录。让代码更改即时生效,专注编码,告别手动重启。适用于开发环境,生产环境禁用。[更多详情](https://github.com/cosmtrek/air)
  • 07.05 15:53:55
    发表了文章 2024-07-05 15:53:55

    万字详解!在 Go 语言中操作 ElasticSearch

    本文档通过示例代码详细介绍了如何在Go应用中使用`olivere/elastic`库,涵盖了从连接到Elasticsearch、管理索引到执行复杂查询的整个流程。
  • 07.05 15:44:18
    发表了文章 2024-07-05 15:44:18

    使用 Makefile 管理和部署 Go 项目

    在软件开发中,`Makefile` 用于自动化任务,提升效率。在Go项目中,它简化构建和部署。`Makefile`集成了编译、打包、清理和部署等任务,减少错误,提高效率。通过定义规则和依赖,`make`工具执行任务。示例展示了如何创建`Makefile`进行Go应用的自动化部署,包括构建、传输、停启服务。通过`make deploy-dev`一键执行部署流程。`Makefile`不仅简化部署,还可扩展实现更多复杂自动化,提升开发流程的专业性和效率。
  • 07.04 22:44:02
    发表了文章 2024-07-04 22:44:02

    Nginx 开启 gzip 压缩,让网站飞一会!

    一起来了解下nginx的gzip压缩
  • 07.04 12:43:07
    发表了文章 2024-07-04 12:43:07

    如何有效提升 API 接口的安全性?

    **API安全关键在于验证和防刷。通过排序参数、生成签名和MD5加密确保请求合法性。使用Redis限制请求频率,防止接口被恶意刷取。验证和防刷策略结合,保护API免受攻击和滥用。**
  • 07.03 10:55:15
    发表了文章 2024-07-03 10:55:15

    手把手教你玩转 Nginx 配置

    作为静态服务器、反代和负载均衡器,Nginx 因高性能和灵活性广泛使用。
  • 发表了文章 2024-11-23

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

  • 发表了文章 2024-11-22

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

  • 发表了文章 2024-11-21

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

  • 发表了文章 2024-11-20

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

  • 发表了文章 2024-11-19

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

  • 发表了文章 2024-11-18

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

  • 发表了文章 2024-11-17

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

  • 发表了文章 2024-11-16

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

  • 发表了文章 2024-11-15

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

  • 发表了文章 2024-11-14

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

  • 发表了文章 2024-11-13

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

  • 发表了文章 2024-11-12

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

  • 发表了文章 2024-11-11

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

  • 发表了文章 2024-11-07

    Python爬虫神器requests库的使用

  • 发表了文章 2024-11-07

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

  • 发表了文章 2024-08-30

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

  • 发表了文章 2024-08-19

    Go语言中高效使用Redis的Pipeline

  • 发表了文章 2024-08-16

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

  • 发表了文章 2024-08-15

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

  • 发表了文章 2024-08-14

    Go语言中使用 sqlx 来操作 MySQL

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息