后端开发

后端开发,也称为后端工程或后端编程,是软件开发中的一个重要角色。它主要负责构建和管理应用程序的后端部分逻辑和算法,包括服务器、数据库、网络协议和相关的软件基础设施
Go中字符串处理:fmt.Sprintf与string.Builder的比较-牛翰网

Go中字符串处理:fmt.Sprintf与string.Builder的比较

在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用fmt.Sprintf函数和string.Builder类型。尽管两者都可以实现字符串的格式化和连接,但它们在性能和用法上有一些关键区别。 1....
e80876ce71530ec7的头像-牛翰网落雷11个月前
15411
理解Go中的零值-牛翰网

理解Go中的零值

在 Go 语言中,零值(Zero Value)是指在声明变量但没有显式赋值的情况下,变量会被自动赋予一个默认值。这个默认值取决于变量的类型,不同类型的变量会有不同的零值。零值是 Go 语言中的一个重...
e80876ce71530ec7的头像-牛翰网落雷11个月前
14515
Go 14周年-牛翰网

Go 14周年

原文在这里。 由 Russ Cox, for the Go team 发布于2023年11月10日 今天,我们庆祝Go开源发布的第十四个生日!Go在过去一年里取得了巨大的进展,发布了两个功能丰富的版本,并实现了其他重要的...
e80876ce71530ec7的头像-牛翰网落雷11个月前
12713
golang map-牛翰网

golang map

golang 的 map 使用的是 hash map 基本结构 下面截取自源码,已翻译 // runtime/map.go:117 // go map 定义,hashmap 缩写 type hmap struct { count int // map 里文件数 flags uint8 // map
4515902b04cd79b6的头像-牛翰网_小孟同学11个月前
14814
golang channel-牛翰网

golang channel

”不要以共享内存的方式来通信,相反,要通过通信来共享内存“ golang 的一个思想,不整文的,整点武的,具体来看channel 怎么做的 有一个很关键的 golang MPG 模型再单独分析,这篇先只分析 ch...
4515902b04cd79b6的头像-牛翰网_小孟同学11个月前
12912
go中异常处理流程-牛翰网

go中异常处理流程

在 Go 语言中,panic、recover 和 defer 是用于处理异常情况的关键字。它们通常一起使用来实现对程序错误的处理和恢复。 1. defer 语句 defer 用于在函数返回之前执行一段代码。被 defer 修饰的...
e80876ce71530ec7的头像-牛翰网落雷11个月前
1517
go并发 - goroutine-牛翰网

go并发 – goroutine

概述 Go并发模型独树一帜,简洁、高效。Go语言最小执行单位称为协程(goroutine),运行时可以创建成千万上个协程,这在Java、C等线程模型中是不可想象的,并发模型是Go的招牌能力之一。很多文章...
32d545c066d96de7的头像-牛翰网喜欢嗑瓜子11个月前
14615
go-GMP 协程切换时机 和 协程实战-牛翰网

go-GMP 协程切换时机 和 协程实战

当m在执行某个g的时候,g非常耗时,例如一个for循环,每次循环sleep1分钟,循环1000次。 这个例子看似无聊,却是很难解决的,成功的避开了2个系统切换时机。 如果这个时候,一直执行这个g,别的...
bea56bed4f5a940c的头像-牛翰网杨阳的技术博客11个月前
1245
go channel-牛翰网

go channel

模型 三部分组成: 发送等待队列 接收等待队列 管道 缓存区 定义 在 runtime 的chan.go中 type hchan struct { qcount uint dataqsiz uint buf unsafe.Pointer elemsize uint16 elemtype *_type
bea56bed4f5a940c的头像-牛翰网杨阳的技术博客11个月前
13813
go 网络 network poller-牛翰网

go 网络 network poller

网络基础 协议架构 tcp链接 假如需要开发者去实现一套新的网络协议(例如 redis 的resp), 是基于TCP的, 那tcp这层的协议,是否需要开发者自己去实现? 这层如果自己实现, 其实很复杂, 会涉及很多算...
bea56bed4f5a940c的头像-牛翰网杨阳的技术博客11个月前
12310