刷新
利用泛型编写更安全的Golang代码

博主头像 从Go 1.18正式引入泛型,再到Go 1.21大量泛型函数/类型进入标准库开始已经过去了三年。尽管有着不支持类型特化、不支持泛型方法、实现方式有少量运行时开销、使用指针类型时不够直观等限制,泛型编程还是在golang社区和各种项目中遍地开花甚至硕果累累了。 不过也因为泛型功能上的种种限制,大多数代 ...

Golang游戏开发笔记:地图索引系统实现

博主头像 好家伙, 在游戏开发,尤其是后端服务的构建过程中,我们常常从一个简单的想法或原型开始。 代码直接、功能明确,一切看起来都很好。但随着项目复杂度的提升,最初的“简洁”设计往往会变成“僵化”的枷锁。 0.需求分析 我想我需要一张地图,作用如下: 1.记录所有人的位置, 2.快速的拿到某个角色的信息 3. ...

Go红队开发—图形化界面

博主头像 目录GUi 图形化配置第一个GUI常用 widget 组件Layout 布局绝对布局dialog弹框注意事项类别案例demo所有代码 好久没做golang开发了,之前的文章一直在做cli的安全工具开发,这里了解一下gui图形化的开发,后续目前还不知道能发什么了,主要是cli和gui这些无非都是将之前 ...

Gin笔记二之gin.Engine和路由设置

博主头像 本文首发于公众号:Hunter后端 原文链接:Gin笔记二之gin.Engine和路由设置 这一篇笔记主要介绍 gin.Engine,设置路由等操作,以下是本篇笔记目录: gin.Default() 和 gin.New() HTTP 方法 路由分组与中间件 1、gin.Default() 和 gin ...

golang unique包和字符串内部化

博主头像 最近在做老系统优化,正好遇到了需要使用字符串内部化的场景,所以今天就来说说字符串内部化这种优化技巧。 什么是字符串内部化 熟悉Java或者python的开发者应该对“内部化”这种技术不陌生。内部化指的是对于内容完全相同的字符串变量,内存中只保留一份数据,所有的变量都引用同一份数据,从而节约内存。 举 ...

如何有效提升代码覆盖率:从单元测试到集成测试的实践指南

博主头像 Go语言代码覆盖率实现 一、什么是代码覆盖率 代码覆盖率是软件测试中的一种白盒测试度量指标,表示程序源代码中被执行的比例。简单来说,就是“我的测试到底跑过多少代码”。 覆盖率常见的几种标准: 语句覆盖(段覆盖、基本块覆盖):每一行代码是否至少执行过一次 分支覆盖:程序中的每个判断(if/else)是 ...

《Go 单元测试从入门到覆盖率提升》(二)

博主头像 Golang相关测试框架 在 Go 语言里,最常用的测试框架有:自带的 testing 包、GoConvey 和 testify。 1、Go自带的testing包 testing 包是官方内置的,无需额外安装,也是大多数项目的首选。 (1)单元测试 测试文件必须以 _test.go 结尾,例如:ca ...

《Go 单元测试从入门到覆盖率提升》(一)

博主头像 一、静态代码分析 静态代码分析是一种在不执行和运行程序的情况下检查源代码的方法。通过这种方法,自动化工具会扫描代码查找潜在的问题,如bug、安全漏洞或与编码标准的偏离。静态代码分析可以在执行或合并到main分支之前检查源代码中的问题。 动态代码分析是在代码被执行时,识别运行时的问题,例如性能瓶颈、内 ...

Go 1.26 内置函数 new 新特性

博主头像 目前golang 1.26的各种新特性还在开发中,不过其中一个在开发完成之前就已经被官方拿到台面上进行宣传了——内置函数new功能扩展。 每个新特性其实都有它的背景故事,没有需求的驱动也就不会有新特性的诞生。所以在介绍这个新特性之前我们先来了解下是什么样的场景催生了这个功能。 如果你经常浏览一些大型 ...

类型转换

博主头像 package _case import ( "fmt" "strconv" "time" "unsafe" ) // ConvertCase 类型转换 func ConvertCase() { // 同类型转换 数字和数字 字符串和字符和字节 // 不同类型转换 数字和字符串 // 接口类型转其他 ...

123···6>