基于go语言gin框架的web项目骨架
该骨架每个组件之间可单独使用,组件之间松耦合,高内聚,组件的实现基于其他三方依赖包的封装。 目前该骨架实现了大多数的组件,比如事件,中间件,日志,配置,参数验证,命令行,定时任务等功能,目前可以满足大多数开发需求,后续会持续维护更新功能。 github地址:https://github.com/cz ... »
该骨架每个组件之间可单独使用,组件之间松耦合,高内聚,组件的实现基于其他三方依赖包的封装。 目前该骨架实现了大多数的组件,比如事件,中间件,日志,配置,参数验证,命令行,定时任务等功能,目前可以满足大多数开发需求,后续会持续维护更新功能。 github地址:https://github.com/cz ... »
Golang Template Go语言中的Go Template是一种用于生成文本输出的简单而强大的模板引擎。它提供了一种灵活的方式来生成各种格式的文本,例如HTML、XML、JSON等。 Go Template的具有以下主要特性: 简洁易用:Go Template语法简洁而易于理解。它使用一对双 ... »
go1.21中,slog这一被Go语言团队精心设计的结构化日志包正式落地,本文将带领读者上手slog,体会其与传统log的差异。 WHY 在日志处理上,我们从前使用的log包缺乏结构化的输出,导致信息呈现出来的样子并非最适合人类阅读,而slog是一种结构化的日志,它可以用键值对的形式将我们需要的信息 ... »
> 本文主要记录下在日常开发过程中, 使用 [github.com/yuin/gopher-lua](https://github.com/yuin/gopher-lua) 过程中需要注意的地方。 > 后续遇到其他的需要注意的事项再补充。 ### 1、加载LUA_PATH环境变量 在实际开发中,我们 ... »
Excelize 是 Go 语言编写的用于操作电子表格办公文档的开源基础库,2023年8月28日,社区正式发布了 2.8.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。 ... »
[TOC] ## 1. 我以为 我以为 [GoPool](https://github.com/devchat-ai/gopool) 这个项目会昙花一现,从此在 GitHub 上封尘。 > 关于 GoPool 项目诞生的故事:[《仅三天,我用 GPT-4 生成了性能全网第一的 Golang Work ... »
[TOC] ## 1. Golang 中的“数据竞争” 我在上个月发过一篇[《跟着 GPT-4 从0到1学习 Golang 并发机制(三)》](https://www.danielhu.cn/from_0_to_1_go_concurrency_with_gpt_3/#23-race-detecto ... »
## 转载放在最前 [一文带你了解,虚拟内存、内存分页、分段、段页式内存管理](https://zhuanlan.zhihu.com/p/451736494)[[Golang三关-典藏版]一站式Golang内存洗髓经 | Go 技术论坛](https://learnku.com/articles/6 ... »
经过了半年左右的开发,golang 1.21 在今天早上正式发布了。 这个版本中有不少重要的新特性和变更,尤其是在泛型相关的代码上。 因为有不少大变动,所以建议等第一个patch版本也就是1.21.1出来之后再进行升级,以免遇到一些意外的bug带来麻烦。 好了,一起来看看1.21带来的新特性吧。 本 ... »
> 大家好,我是蓝胖子,在golang中可以使用go pprof的工具对golang程序进行性能分析,其中通过go trace 命令生成的trace view视图对于我们分析系统延迟十分有帮助,鉴于当前对trace view视图的介绍还是很少,在粗略的看过trace统计原理后,我将对这部分做比较详细 ... »
## 前言 假设一个场景,服务端部署在内网,客户端需要通过暴露在公网的nginx与服务端进行通信。为了避免在公网进行 http 明文通信造成的信息泄露,nginx与客户端之间的通信应当使用 https 协议,并且nginx也要验证客户端的身份,也就是mTLS双向加密认证通信。 这条通信链路有三个角色 ... »
一起了解Go语言的发展史、采用Go语言的知名公司、GO开发工具、环境搭建、 代码结构、代码风格以及如何使用官方库API文档。 ... »
写这篇文章的时候,已经离我找工作有一段时间了,但是觉得这道题不管是面试还是日常的工作中,都会经常遇到,所以还是特意写一篇文章,记录下自己对Golang中`==`的理解。如文章中出现不对的地方,请不吝赐教,谢谢。 > 注意,以下文章内容是基于 go1.16.4 进行演示的,如果和你验证时,结果不一致, ... »
目的:基准测试的主要目的是比较不同实现方式之间的性能差异,找出性能瓶颈。 1 准备以_test.go结尾文件和导入testing包 在命名文件时需要让文件必须以_test结尾,在文件中导入testing包。基准测试可以测试一段程序的运行性能及耗费CPU的程度,获得代码内存占用和运行效率的性能数据。G ... »
[TOC] ## 1. 我写了一个超牛的开源项目 激动的心,颤抖的手,我用 [DevChat](https://github.com/devchat-ai/devchat) 白嫖 GPT-4 写下了这辈子写过的最炫酷,最艺术的一千行代码! 我用 Golang 写了一个强大又易用的 Worker Po ... »
目的:单元测试的主要目的是验证代码的每个单元(函数、方法)是否按照预期工作。 提示:解决单元测试超时30s的问题在序号4 1 准备以_test.go结尾文件和导入testing包 在命名文件时需要让文件必须以_test结尾,在文件中导入testing包。单元测试源码文件可以由多个测试用例组成,每个测 ... »
调试:在Vscode软件中调试.go文件代码 1.1.1 确保调试文件正常运行 准备好.go文件,并且该文件能正常运行,终端输入命令运行程序,如:go run time.go 测试代码: package main import ( "fmt" "time" ) func main() { fmt.P ... »
在现代分布式系统中,多个节点之间共享资源是常见的需求。然而,并发访问共享资源可能导致数据不一致性和竞争条件。为了解决这些问题,我们需要引入分布式锁。GoRedisLock是一个出色的分布式锁库,它结合了Go语言和Redis的优势,提供了稳定高效的分布式并发控制解决方案。 **项目地址:** http ... »
最近一年各大中小厂都在搞"优化",说到优化,目的还是"降本增效",降低成本,增加效益(效率)。 技术层面,也有一些降本增效的常规操作。 比如池化、io缓冲区技术 | | golang | C# | eg. | | | | | | | 池化技术 | snnc.Pool | ObjectPool | 前 ... »
golang的泛型已经出来了一年多了,从提案被接受开始我就在关注泛型了,如今不管是在生产环境还是开源项目里我都写了不少泛型代码,是时候全面得回顾下golang泛型的使用体验了。 先说说结论,好用是好用,但问题也很多,有些问题比较影响使用体验,到了不吐不快的地步了。 这篇文章不会教你泛型的基础语法,并 ... »