![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 65
谢小鱼
不后悔过去,不怀疑未来
展开
-
优雅地关闭 channel
在不改变 channel 自身状态的情况下,无法获知一个 channel 是否关闭。关闭一个 closed channel 会导致 panic。所以,如果关闭 channel 的一方在不知道 channel 是否处于关闭状态时就去贸然关闭 channel 是很危险的事情。向一个 closed channel 发送数据会导致 panic。所以,如果向 channel 发送数据的一方不知道 channel 是否处于关闭状态时就去贸然向 channel 发送数据是很危险的事情。转载 2023-07-12 18:15:12 · 83 阅读 · 0 评论 -
golang关于关闭管道后从管道中读数据的理解
只有管道已关闭且缓冲区中没有数据时,管道读取表达返回的第二个变量才跟管道关闭状态一致原创 2023-07-12 10:21:10 · 629 阅读 · 0 评论 -
golang代码规范之框架搭建规范
框架搭建需要适应项目的变化,为项目选择最合适的架构,没有什么是一成不变的。技术架构应该是不断完善的,在满足当前需求的前提下做最大程度的设计,但不要过度设计。原创 2023-06-19 16:18:24 · 1133 阅读 · 0 评论 -
golang代码规范之业务开发规范
项目采用领域驱动模型的充血模型开发,业务实现都在internal目录下,业务分层为server、service、biz、data、config。server层为服务注册层,注册系统的http、grpc服务等;service层为接口层,处理外部请求,调用内部实现,然后返回数据。biz层为业务逻辑层,根据service层传入的输入,根据业务目的,调用data层获取数据进行业务处理。data层用于和数据库以及第三方库进行交互,不处理业务逻辑只负责拿数据。service层需要将请求数据转换成biz层的struc原创 2023-06-19 16:11:55 · 400 阅读 · 0 评论 -
goland代码规范之代码风格
一个优秀的团队应当保持一致的代码风格,我们在实践中发现,如果一个项目的代码风格不一致,会导致项目杂乱、不利于跨模块开发、影响开发效率、想骂人等弊端,在定义我们的编码风格之前,先推荐一本非常好的书籍《clean code》,有时间的可以去看看,磨刀不误砍柴工。原创 2023-06-19 16:07:08 · 337 阅读 · 0 评论 -
goland代码规范之代码注释
我们为了保证整个项目的一致性、可读性,对注释规范做了更加严格和详细的修改。PR评审时务必注意代码注释问题。原创 2023-06-19 15:45:53 · 777 阅读 · 0 评论 -
go常用命令
go常用命令// errcheck代码检测工具安装go get -u github.com/kisielk/errcheck// 然后,在你的代码目录中运行 errcheck .用来监测error检测覆盖率errcheck .// godoc 安装go get -v golang.org/x/tools/cmd/godoc//查看包内的文档,这里是查看 fmt 包中Println 的的文档godoc fmt Println//查看文档并包含源码godoc -src fmt Pri原创 2021-12-18 21:06:32 · 194 阅读 · 0 评论 -
如何在 Kubernetes 集群中集成 Kata
如何在 Kubernetes 集群中集成 Kata原创 2022-07-13 16:09:27 · 696 阅读 · 0 评论 -
为Kubernetes选择合适的容器运行时
作为后台支撑,Kubernetes优势明显,具有自动化部署、服务伸缩、故障自我修复、负载均衡等特性。我们目前的系统的后台支撑大量使用了Kubernetes,不同的系统对于数据的安全性及运行效率也各不一样,因此如何选择合适容器运行时成为了一个重点考虑的问题。.........原创 2022-07-13 15:19:25 · 1124 阅读 · 1 评论 -
go用ent框架连接数据库报错driver:bad connection
数据库事务并发读写报错driver:bad connection原创 2022-06-01 12:21:17 · 1936 阅读 · 0 评论 -
Kratos配置允许跨域请求
中间件代码://MiddlewareCors 设置跨域请求头func MiddlewareCors() middleware.Middleware { return func(handler middleware.Handler) middleware.Handler { return func(ctx context.Context, req interface{}) (interface{}, error) { if ts, ok := transport.FromServerConte原创 2022-04-06 14:53:29 · 1838 阅读 · 0 评论