深度思维者

永远年轻,永远热泪盈眶

上一页 1 2 3 4 5 6 ··· 14 下一页
摘要: 前言 我们在使用go语言时,最方便莫过于将编译好的二进制文件直接拷贝到服务器中运行即可,但是随着代码工程的复杂可能导致二进制文件很大,这会造成传输过程的时间成本变大,如果在频繁构建,发布中,无疑会增加一些成本,所以有时候考虑将二进制文件编译的越小越好变得算是一件重要的事情, 那么如何将编译的文件最小 阅读全文
posted @ 2023-03-07 18:38 failymao 阅读(664) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 golang构建程序很简单,当遇到需要调用c库时,如通常使用 net,kafka, sqlite3 程序运行时就会调用当前服务器的 动态库,如果遇到没有库时,通常还需要 下载比如 alpine需要安装sqlite apk add --no-cache sqlite-libs sqlite 阅读全文
posted @ 2023-03-07 18:25 failymao 阅读(1748) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 Go 语言中两个经常成对出现的两个关键字 — panic 和 recover。这两个关键字与上一节提到的 defer 有紧密的联系,它们都是 Go 语言中的内置函数,也提供了互补的功能。 需要说明两点 panic 能够改变程序的控制流,调用 panic 后会立刻停止执行当前函数的剩余代码 阅读全文
posted @ 2021-12-19 23:06 failymao 阅读(1520) 评论(0) 推荐(1) 编辑
摘要: 1. 简介 defer 会在当前函数返回前执行传入的函数,它会经常被用于关闭文件描述符、关闭数据库连接以及解锁资源。 理解这句话主要在三个方面: 当前函数 返回前执行,当然函数可能没有返回值 传入的函数,即 defer 关键值后面跟的是一个函数,包括普通函数如(fmt.Println), 也可以是匿 阅读全文
posted @ 2021-12-19 22:13 failymao 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 一.序 这一篇算是并发编程的一个补充,起因是当前有个项目,大概の 需求是,根据kafka的分区(partition)数,创建同等数量的 消费者( goroutine)从不同的分区中消费者消费数据,但是总有某种原因导致,某一个分区消费者创建失败,但是其他分区消费者创建失败。 最初的逻辑是,忽略分区失败 阅读全文
posted @ 2021-12-12 00:02 failymao 阅读(802) 评论(1) 推荐(0) 编辑
摘要: 1. 引言 关于闭包的说明,曾在很多篇幅中都有过一些说明,包括Go基础--函数2, go 函数进阶,异常与错误 都有所提到, 但是会发现,好像原理(理论)都懂,但是就是不知道如何使用,或者在看到一些源码时,依然一头雾水。 刚好今天看到了一篇优质的博客,并结合以前几篇关于类似闭包的介绍,再次对 闭包进 阅读全文
posted @ 2021-12-08 00:25 failymao 阅读(533) 评论(2) 推荐(0) 编辑
摘要: 1. 什么是边界检查? 边界检查,英文名 Bounds Check Elimination,简称为 BCE。它是 Go 语言中防止数组、切片越界而导致内存不安全的检查手段。如果检查下标已经越界了,就会产生 Panic。 边界检查使得我们的代码能够安全地运行,但是另一方面,也使得我们的代码运行效率略微 阅读全文
posted @ 2021-12-05 23:12 failymao 阅读(1104) 评论(2) 推荐(0) 编辑
摘要: 一.前言 1.1 为什么需要Singleflight? 很多程序员可能还是第一次听说,本人第一次听说这个的时候以为翻译过来就是程序设计中被称为的是 "单例模式"。 google之后二者天壤之别。 一般情况下我们在写一写对外的服务的时候都会有一层 cache 作为缓存,用来减少底层数据库的压力,但是在 阅读全文
posted @ 2021-11-27 22:39 failymao 阅读(1835) 评论(1) 推荐(6) 编辑
摘要: 一.设计原理 Go 语言中最常见的、也是经常被人提及的设计模式就是: "不要通过共享内存来通信,我们应该使用通信来共享内存" 通过共享内存来通信是直接读取内存的数据,而通过通信来共享内存,是通过发送消息的方式来进行同步。 而通过发送消息来同步的这种方式常见的就是 Go 采用的通信顺序进程 CSP(C 阅读全文
posted @ 2021-11-23 00:30 failymao 阅读(2265) 评论(0) 推荐(0) 编辑
摘要: 一. 序言 1.1 场景一 现在有一个 Server 服务在执行,当请求来的时候我们启动一个 goroutine 去处理,然后在这个 goroutine 当中有对下游服务的 rpc 调用,也会去请求数据库获取一些数据,这时候如果下游依赖的服务比较慢,但是又没挂,只是很慢,可能一次调用要 1min 才 阅读全文
posted @ 2021-11-17 01:03 failymao 阅读(1472) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 14 下一页