

Go语言圣经C
-
7天从零实现ORM框架-Day7 数据库迁移
本文是7天用Go从零实现ORM框架ORM的第七篇。 结构体(struct)变更时,数据库表的字段(field)自动迁移(migrate)。仅支持字段新增与删除,不支持字段类型变更。…
-
把「Go 静态分析」放进你的工具箱
背景 提到静态分析,大家第一反应可能是Sonar、FindBugs等静态代码检查工具,它通过对源码的分析,不实际运行代码,检查代码是否符合编码规范,发现源码中潜在的漏洞。这当中主要…
-
细嗦 Golang 的指针
与C语言一样,Go语言中同样有指针,通过指针,我们可以只传递变量的内存地址,而不是传递整个变量,这在一定程度上可以节省内存的占用,但凡事有利有弊,Go指针在使用也有一些注意点,稍不…
-
每日一问:Go变量是分配在栈上还是堆上呢?
我们都知道,程序运行时使用的内存被分为两个区:堆和栈。那么如何得知变量是分配在栈(stack)上还是堆(heap)上呢?对于手动管理内存的语言,比如C/C++,使用malloc或者…
-
说说Go中的语法糖
前言 由于工作变动,我现在已经开始使用Golang了。用了一段时间之后,我发现Golang(后面简称Go)中的语法糖还蛮多的,有些语法糖还让会让人很懵逼。那么接下来,让我以一个曾经…
-
面试官:谈谈如何防止消息丢失和消息重复
分布式事务 什么是分布式事务 我们的服务器从单机发展到拥有多台机器的分布式系统,各个系统之前需要借助于网络进行通信,原有单机中相对可靠的方法调用以及进程间通信方式已经没有办法使用,…
-
线上MySQL的自增id用尽怎么办?
MySQL的自增id都定义了初始值,然后不断加步长。虽然自然数没有上限,但定义了表示这个数的字节长度,计算机存储就有上限。比如,无符号整型(unsigned int)是4个字节,上…
-
Docker 又出了个新玩意儿
在上个月公布的Docker Desktop v4.7.0中,减少了一个新的CLI插件-docker/sbom-cli-plugin,其为Docker CLI减少了一个子命令 – s…
-
二级缓存(Go语言实现)
一、需求 实现二级缓存 程序运行起来后提示:“请输入命令:”,如果输入getall,查询并显示所有人员的信息 第一次时查询mysql并将结果缓存在redis,设置60秒的过期时间 …
-
Go语言 实现发送短信验证码并登录
现在大多数app或wap都实现了通过手机号获取验证码进行验证登录,下面来看下用go来实现手机号发送短信验证码登录的过程,基于的框架是gin 。 首先是短信服务商的申请,比如腾讯云、…
-
Golang中的 空结构体struct{} 有什么用途呢?
golang 空结构体 struct{} 可以用来节省内存 理由如下: 如果使用的是map,而且map又很长,通常会节省不少资源 空struct{}也在向别人表明,这里并不需要一个…
-
Gin 简明教程
Gin 简介 Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API …
-
设计模式系列一之单例模式
1.定义 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 2.问题 单例模式同时解决了两个问题,…
-
打工人必须搞懂-HTTP包源码分析
1. http包建立web服务器 2. http包的运行机制 相关源码位于:/src/net/http/server.go 服务端的几个概念 Request:用户请求的信息,用来解…