golang标准库新增的学习
1. builtin
1.1 clear (go1.21.0)
对于map,清除删除所有条目,导致map为空。对于slice,清除将所有直到slice长度的元素设置为相应元素类型的零值。
1 | package main |
rust初次实践
Rust 是一门现代的、开源的系统编程语言,其设计的核心目标是同时实现安全(Safety)、并发(Concurrency)和性能(Performance)。它通过在编译时强制执行一系列严格的规则,来消除一整类常见的内存错误(如空指针、悬垂指针、数据竞争等),而无需像 Java 或 Go 那样依赖垃圾回收器(Garbage Collector)。
Rust 就像一位拥有 “ 魔法钥匙 “ 的贴身管家:任何时候,一件珍贵的物品(一块内存数据)要么只能由一个人持有 “ 主钥匙 “(可写入权限),要么可以被多个人持有 “ 复制钥匙 “(只读权限),但绝不允许 “ 主钥匙 “ 和任何 “ 复制钥匙 “ 同时存在。这位管家(编译器)在你的程序 “ 运行 “ 之前,就会严格检查所有钥匙的分配,确保万无一失。
golang的泛型使用
Go 泛型(Generics)是一种编程范式,它允许我们在定义函数、方法或类型时,使用一个或多个 “ 类型占位符 “(Type Parameter),而不是具体的类型。这些 “ 占位符 “ 在实际调用时,会被具体的类型(如 int
, string
, struct
等)替换,从而让一份代码能够安全、高效地处理多种不同的数据类型。
Go 泛型就像一个万能的厨房模具,你不需要为心形、星形、圆形饼干分别准备三个模具,只需要一个可以调整形状的 “ 可变形 “ 模具,就能制作出所有形状的饼干。这个 “ 可变形模具 “ 就是你的泛型函数或泛型类型,” 形状 “ 就是你传入的具体类型。
Go 泛型的出现,完美地解决了这两个核心痛点。它让你能够:
- 编写可复用的代码:一套逻辑,多处使用,极大提高开发效率。
- 保证类型安全:在编译期间就进行类型检查,把错误消灭在萌芽状态,而不是等到运行时才
panic
。 - 提升性能:泛型代码在编译时会进行 “ 具象化 “(Instantiation),生成针对特定类型的原生代码,避免了
interface{}
带来的装箱(boxing)和拆箱(unboxing)开销。
微信读书PC插件
多看阅读:目前观看体验,排版还是iOS最好的,奈何同步导出功能越来越弱,属于不再维护状态。
neatreader:多端进度可以实时同步,需要花钱。
微信读书:上传自己的书多端进度可以实时同步,免费。
放弃多看阅读,neatreader,携桶转移到微信读书。
Istio教程04-超时重试负载均衡和熔断
在服务调用中遇到HTTP 503错误时,我们可以配置Istio来重试失败的请求,最多可以重试三次。我们可以准确地配置哪些失败的请求要重试、重试次数,以及每次重试的超时时间。
由于服务代理是按服务实例部署的,我们可以配置非常精细的重试行为,以适应应用程序的特定需求。Istio的所有弹性设置都是如此,服务代理实现了这些开箱即用的弹性模式:
- 客户端负载均衡。
- 位置感知负载均衡。
- 超时和重试。
- 熔断。
Istio教程02-网关Gateway实践
Istio教程01-服务网格和istio介绍
服务网格是一种分布式应用程序基础设施,它负责以透明的、进程外的方式代表应用程序处理网络流量。Istio是一个由谷歌、IBM和Lyft创建的服务网格的开源实现。

基础设施:它负责将代码部署到平台上(容器、Kubernetes、公共云、虚拟机等)。Istio不限定使用哪些自动化部署工具。
应用程序业务逻辑:为了保持竞争力而必须编写的业务差异化代码,。这段代码包括业务逻辑,以及知道要调用哪些服务、以何种顺序调用服务、如何处理服务的响应(例如,如何将它们聚合在一起)、在出现故障时如何处理。
Istio扮演着部署平台和应用程序代码之间的中间人的角色,它的作用是帮助从应用程序中获取复杂的网络代码。它可以基于请求元数据内容(HTTP头等)进行路由,也可以基于服务和请求元数据匹配进行细粒度的流量控制和路由。