大家好,我是小❤,一个漂泊江湖多年的 985 非科班程序员,曾混迹于国企、互联网大厂和创业公司的后台开发攻城狮。1. 引言今天呢,咱们来聊聊 Go 语言的那点事儿,尤其是咱们在并发处理中常用的 select 语句,它可是处理并发时的一把利剑!Go 语言的 select 语句,仿佛是编程世界中的一位冷静的裁判,当多个通道(channel)全都争着抢话语权的时候 ......
88
0
0
2024-02-17
GolangGolang作为一款近年来最火热的服务端语言之一,深受广大程序员的喜爱,笔者最近也在用,特别是高并发的场景下,golang易用性的优势十分明显,但笔者这次想要介绍的并不是golang本身,而且golang代码的漏洞扫描工具,毕竟作为服务端的程序,安全性一直是一个不同忽视的地方Go安全团队在2022.09.06发布了全新的漏洞检测工具 govuln ......
124
0
0
2024-02-13
Golang代码漏洞扫描Golang作为一款近年来最火热的服务端语言之一,深受广大程序员的喜爱,笔者最近也在用,特别是高并发的场景下,golang易用性的优势十分明显,但笔者这次想要介绍的并不是golang本身,而且golang代码的漏洞扫描工具,毕竟作为服务端的程序,安全性一直是一个不同忽视的地方TrivyTrivy介绍Trivy是不是是一款功能强大的漏洞 ......
101
0
0
2024-02-13
作者:Goland猫 https://juejin.cn/post/7245919919223636023对于大型的互联网应用程序,如电商平台、社交网络、金融交易平台等,每秒钟都会收到大量的请求。在这些应用程序中,需要使用高效的技术来应对高并发的请求,尤其是在短时间内处理大量的请求,如1分钟百万请求。同时,为了降低用户的使用门槛和提升用户体验,前端需要实现参 ......
100
0
0
2024-02-13
作者:colygo 中高性能编程是一个经久不衰的话题,本文尝试从实践及源码层面对 go 的高性能编程进行解析。1. 为什么要进行性能优化服务上线前,为什么要进行压测和性能的优化?一个例子,content-service 在压测的时候发现过一个问题: 旧逻辑为了简化编码,在进行协议转换前,会对某些字段做一个 DeepCopy,因为转换过程需要原始数据,但我们完 ......
82
0
0
2024-02-13
在使用golang开发程序过程中,应用的内部状态常常面临读写并发访问的情况,此时需要使用同步原语对状态进行保护,但golang提供了三种同步原语 Mutex, RWMutex, sync.Map,如何选择合适的同步原语就显得至关重要,选择不当可能会造成程序性能下降,降低应用体验。本文将深入探讨Golang RWMutex的执行机制,为选择提供理论依据。一、 ......
82
0
0
2024-02-09
Golang 为并发编程提供了多种并发原语(Mutex、RWMutex、sync.Map),用于临界区的数据访问和保护;开发应用时,面对不同的场景如何选择合适的并发原语,使功能正常实现的同时提供更高的性能;在互联网应用中,由并发原语保护的临界区从本质上来说无非三种情况:读多写少、写多读少、读写一致。 上篇文章介绍了 sync.RWMutex并发原语,其适用于 ......
102
0
0
2024-02-09
C++那些事之grpc小Demogithub上比较火的rpc有grpc、brpc,腾讯内部比较牛逼的trpc等等,这些rpc支持不同的语言、不同平台。今天来聊聊如何使用grpc,从一个简单的demo入手,整个项目使用CMake构建,一个非常标准的rpc项目管理,所有代码已更新至星球,获取方式见最后的二维码。1.Step by Step 环境如果你的电脑是ma ......
93
0
0
2024-02-08
无论写什么样的语言,单元测试都是必不可少的,它可以极大的提高我们的代码质量,减少各种低级错误和 bug无论你是一个靠谱合格的码农,还是一个优秀的程序员,单元测试都是咱们必须落实的一环单元测试比较容易,此处梳理了了基本的单元测试用到的方式和第三方库的使用方式,用到的时候,可以来这里查询 mock 第三方库的地址和基本用法,欢迎收藏基本的单元测试Golang 单 ......
116
0
0
2024-02-08
互斥锁互斥锁是一种常用的控制共享资源访问的方法,它能够保证同时只有一个goroutine可以访问共享资源。Go语言中使用sync包的Mutex类型来实现互斥锁。 定义一个锁:var lock sync.Mutex 加锁:lock.Lock() 解锁:lock.Unlock() 完整示例package main import ( "fmt ......
77
0
0
2024-02-08
看到 validator 咱们第一反应会想起啥?见名知意我就可以知道他是一个验证器,如果用过 gin web 框架的同学,自然是用过 gin 里面的 validator,只不过 gin 中使用的关键字是 binding 去做标识开门见山Validator 实际上是一个验证工具,属于 golang 的第三方包,这个包中使用了各种反射技巧来提供了各种校验和约束数 ......
98
0
0
2024-02-03
说起 golang 的 flag 个包,我们第一反应的是什么呢?至少我曾经第一次看到 flag 包的时候,第一反应是想起写 C 语言的时候咱们用于定义一个表示的,我们一般会命名为 flag 变量实际上 golang 的 flag 包是用于处理命令行参数的工具包,我们可以基于这个包来开发自定义的命令行工具对于命令行,相信大家都不陌生吧,学过 C 的就知道,如下 ......
86
0
0
2024-02-03
前面我们分享了 go-zero 的快速实战以及日志组件的剖析,本次我们来实战使用 go-zero jwt 鉴权本次文章主要是分享关于 go-zero 中 jwt 的使用方式,会以一个 demo 的方式来进行实战,对于使用 goctl 工具以及安装细节就不在赘述,有需要的话可以查看:官网本次文章主要分为如下几个部分:Jwt 的简单介绍Go-zero 中使用 j ......
118
0
0
2024-02-03
上一次我们分享了关于 gRPC-Gateway 快速实战 ,可以查看地址来进行回顾 :也可以查看关于 gRPC 的历史文章:gRPC介绍gRPC 客户端调用服务端需要连接池吗?gRPC的拦截器gRPC的认证分享一下 gRPC- HTTP网关 I今天主要是分享关于 gRPC-Gateway Swagger 的实战部分,文章大体分为如下几个部分:基本环境补充gR ......
112
0
0
2024-02-03
今天来分享一波 gRPC-Gateway , 之前咱们有分享过什么是 gRPC 及其使用方式,可以看看这些关于 gRPC 的历史文章:gRPC介绍gRPC 客户端调用服务端需要连接池吗?gRPC的拦截器gRPC的认证分享一下 gRPC- HTTP网关 I今天主要是分享关于 gRPC-Gateway 的实战部分,文章大体分为如下几个部分:gRPC-GateWa ......
110
0
0
2024-02-03