2024-09-27 Go 厌倦了黑底白字?用 Go 给终端点颜色瞧瞧! 如果你每天都在使用终端,想必无法忍受终端永远都是黑白两种配色。如果你不知道终端中各种花哨的颜色是如何输出的,那么本文就来帮你解答。 而如果你恰巧在使用 Go 语言,那么你将在一分钟内学会使用 Go 语言在终端中输出彩色字符。 阅读全文…
2024-09-17 Mac Mac 一键迁移初体验 最近打算将搬砖主力机从 MacBook Air 换成 MacBook Pro,这就涉及到机器数据搬迁问题。因为我的 MacBook Air 使用了快两年了,积攒了很多有用和无用的数据,趁着中秋休息,就开始了迁移工作。 阅读全文…
2024-09-14 Go Go 错误处理指北:pkg/errors 源码解读 pkg/errors 包在 Go 错误处理生态中可谓大名鼎鼎了,截止目前在 GitHub 上有 8.2k 的 star 量。虽然不是 Go 官方包,但却被很多团队当作事实标准来使用。 本文就来深入到 pkg/errors 包源码中,一窥它的设计与实现。 阅读全文…
2024-09-06 Go Go 错误处理指北:Error vs Exception vs ErrNo 很多有其他编程语言经验的人初次接触 Go 语言时,想必对 if err != nil 的错误处理方式感到新奇,之后用久了,竟发现有点令人抓狂。 因为很多人不满 Go 语言的错误处理方式,甚至有人做了一张梗图: 哈哈😄,不吹不黑,本文就来对比下 Python、C 以及 Go 这三种编程语言中的异常处理机制,看看你更喜欢哪一种。 阅读全文…
2024-08-26 Go Builder 模式在 Go 语言中的应用 Builder 模式是一种创建型模式,即用来创建对象。 Builder 模式,中文翻译不太统一,有时候被翻译为建造者模式或构建者模式,有时候也被翻译为生成器模式。为了不给读者造成困扰,我还是直接叫它 Builder 模式好了。 《设计模式:可复用面向对象软件的基础》 一书中对 Builder 模式的意图阐明如下: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 阅读全文…
2024-08-22 Go Go 程序如何实现优雅退出?来看看 K8s 是怎么做的 在写 Go 程序时,优雅退出是一个老生常谈的问题,也是我们在微服务开发过程中的标配,本文就来介绍下工作中常见的几种优雅退出场景,以及带大家一起来看一下 K8s 中的优雅退出是怎么实现的。 阅读全文…
2024-08-15 ChatGPT ChatGPT4 充值渠道 FOMEPay 跑路?我找来了替代方案:WildCard! 前几天我在公众号发布了一条消息《注意:ChatGPT 充值渠道 FOMEPay 疑似跑路!》。 经过这两天的多次亲自尝试和观察,FOMEPay 大概率是真的跑路了! 阅读全文…
2024-08-10 Kubernetes K8s 如何设置容器 /dev/shm 控制共享内存大小 记一次生产实践过程中,使用 K8s 部署大语言模型训练代码时,Pod 未设置容器 /dev/shm 大小而引发异常,以及完整解决过程。 阅读全文…
2024-07-28 Go 在 Go 中如何使用反射实现简易版 encoding/json 在使用 Go 语言开发过程中,我们经常需要实现结构体到 JSON 字符串的序列化(Marshalling)或 JSON 字符串到结构体的反序列化(Unmarshalling)操作。Go 为我们提供了 encoding/json 库可以很方便的实现这一需求。 在本文中,我们将探索如何使用 Go 的反射机制自己来实现一个简易版的 encoding/json 库。这个过程不仅能帮助我们理解序列化和反序列化的基本原理,还能提供一种实用的反射使用方法,加深我们对反射的理解。 通过本文的学习,我们将实现一个能够将结构体转和 JSON 字符串互相转换的包。 阅读全文…