自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TonyBai

Kubernetes、Docker、Golang、儿童编程、DevOps、云计算平台和机器学习

  • 博客(1187)
  • 资源 (1)
  • 收藏
  • 关注

原创 Jepsen 报告震动 Go 社区:NATS JetStream 会丢失已确认写入

Jepsen 的这份报告,如同一次严苛的“体检”,指出了它在追求极致性能的过程中,所做出的一些高风险权衡。:在与任何分布式存储系统交互时,请仔细阅读其文档,搞清楚一个“成功的”写入响应,其背后的持久性承诺到底是什么级别的。的工具,精确地模拟了这种“断电即失忆”的场景,并成功复现了数据丢失:在一个测试运行中,NATS 丢失了大约 30 秒的写入,共计。在 Jepsen 的测试中,一个数据已损坏的节点,竟然成功地成为了集群的领导者,并立即删除了包含所有测试消息的流,导致了。

2025-12-11 08:00:50 580

原创 【API 设计之道】03 非标行为设计:当 REST 无法描述“取消订单”时怎么办?

但“取消订单”可能触发一系列沉重的后端流程(退款、通知、库存释放)。将这些副作用隐藏在一个简单的字段更新背后,违背了“最小惊讶原则”。在前面两讲中,我们不仅统一了资源导向的命名规范,还用泛型封装了标准的 CRUD 控制器。今天这一讲,我们就来聊聊当 CRUD 不够用时,如何在 Gin 中优雅地设计“非标行为”。有的在退库存时发生了错误,但订单状态却已经变更为取消了,导致数据不一致。更新状态字段,虽然符合 REST 的字面含义,但它掩盖了业务的复杂性。有的开发人员直接改了数据库状态,但忘了发短信。

2025-12-11 08:00:50 316

原创 Go 跌出 TIOBE 前十?别被排名骗了,这才是它的真实地位

这与行业内的普遍印象高度一致:专业的 Go 开发者往往不仅仅是在编写业务逻辑,更多时候是在与 Kubernetes 集群、微服务架构、CI/CD 管道以及各类 CLI 工具打交道。GitHub 的趋势图显示,Go 的生态活跃度保持着陡峭的上升曲线,没有减速迹象。Go 不会取代 Python 成为 AI 训练的语言,但在 AI 落地、服务化、工程化的“最后一公里”,Go 是绝对的主力。它不再是很多人的“初恋”语言,而是开发者在掌握了编程基础后,为了追求高性能、高并发和工程化能力而进阶选择的“成熟伴侣”。

2025-12-11 08:00:50 465

原创 “我曾想付钱给 Google 去工作”—— Russ Cox 深度访谈:Go 的诞生、演进与未来

每当我们的能力增长,或者我们将一些工作卸载给机器时,我们的雄心也会随之增长。从贝尔实验室的“简单”初心,到 Go 语言的“稳定”哲学,再到对 AI 时代的冷静远见,Russ Cox 的这场访谈,为我们描绘了一位顶尖工程师和技术领袖的心路历程。从 Plan 9 的“无人问津”,到 Go 的巨大成功,Russ Cox 对开源社区的建设和语言的演进,有着极其深刻的理解。那里的人们,那是一个小团队,他们在做着雄心勃勃的事情,而完成它们的最好方式,就是从简单的事情开始,构建那些真正坚固可靠的简单事物。

2025-12-10 08:00:16 760

原创 【API 设计之道】02 标准方法论:CRUD 的哲学与 HTTP 动词的精准语义

今天这一讲,我们将对标业界最严格的 API 设计规范,深入探讨 HTTP 动词背后的哲学,并用 Go 语言解决那个著名的“零值更新”陷阱。前端同学开发了一个“修改用户资料”的功能。用户只想修改“昵称”,于是前端发了一个请求。今天,我们深入到每一个具体的 Handler 内部,聊聊最基础、但也最容易出错的。结果:用户的“存款余额”突然变成了 0。后端代码没有区分“未传值”和“传了0”,直接把数据库覆盖了。写 API 容易,写出语义精准、行为安全的 API 很难。路由,重构成了整洁的资源层级结构。

2025-12-10 08:00:16 302

原创 给了机关枪,你却非要耍大刀:2025 年末,程序员 All in AI 的生存启示录

直接 Copy & Paste AI 生成的代码上线,不看逻辑,不测边界,结果把 AI 的幻觉(Hallucination)直接变成了线上的 Bug。当 AI 帮你搞定了 80% 的“实现细节(How)”,你必须把节省下来的精力,投入到那 20% 更核心的“价值判断(Why & What)”中。遇到问题直接扔给 AI,AI 给什么就用什么,不再去探究底层的原理,甚至觉得“反正 AI 会,我不用学了”。这三年,AI 不再是那个只会写打油诗的聊天机器人,它是基建,是水电,是程序员的第二大脑。

2025-12-09 08:01:21 675

原创 Go 的“最小惊讶原则”破功了吗?—— 一个vet 新提案引发的思考

这两个例子共同揭示了一个问题:Go 在处理“数字”与“字符”的转换时,其行为源自 C 语言的悠久传统,但对于没有这种历史背景的现代开发者而言,这无疑是“反直觉”的。工具——添加新的“神力”,来弥合“简单”与“清晰”之间的鸿沟。然而,最近一个被 Go 团队接受的。这种继承自 C 语言的、依赖于“格式化字符串”与可变参数类型匹配的范式,本身就是类型不安全的,难以做到“无需文档即可正确使用”。在你的代码下划出波浪线时,或许你看到的,将不再是一个冰冷的警告,而是一份来自 Go 设计者们的、穿越时空的“温馨提示”。

2025-12-09 08:01:21 920

原创 【API 设计之道】01 资源导向设计 (ROD):告别 RPC 风格的“动词地狱”

随着业务增长,你的 API 会迅速膨胀成成百上千个无规律的 endpoint,就像一碗纠缠不清的面条,不仅难以维护,更难以在团队间形成统一的规范。我们定义一个函数名(动词),传入参数,返回结果。:全部使用 POST一把梭,HTTP 协议中精心设计的 GET(缓存)、PUT(幂等)、DELETE(安全)等语义完全失效。网络上的交互对象应该是“事物”(Nouns),而非“动作”(Verbs)。风格的接口之所以流行,是因为它非常符合我们写后端代码的直觉。如果是“这没问题啊,挺清晰的”,那你可能已经陷入了。

2025-12-08 08:01:18 411

原创 拒绝“面条代码”,做有架构思维的 Go API 设计师

比如,Google 是如何定义“软删除”的?“Tony,我已经熟悉了 Go 的语法,也会用 Gin 写增删改查(CRUD)了,为什么我写的 API 还是经常被前端吐槽?我们将揭秘大厂强制使用的“游标分页”机制,并在 Gin 中设计安全的 NextPageToken。真正优秀的企业级 API,像 Google、Stripe 或 GitHub 的 API,它们之所以好用、耐用,是因为它们背后有一套严密的。我们不谈空洞的理论,而是将经典的 API 设计模式(Patterns)内化为解决具体问题的思维工具。

2025-12-08 08:01:18 543

原创 “我从未想过学完 Rust 后会转向 Go”—— 这门“无聊”的语言究竟有什么魅力?

近日,开发者 Abhishek Singh 的一条推文,以其独特的、充满“诗意”的笔触,在开发者社区引发了广泛的共鸣和讨论。正是这两个看似“简陋”的原语,让开发者能够像拼接乐高积木一样,以一种直观、优雅的方式,构建出极其复杂的并发模式。作为 Gopher,你在使用 Go 的过程中,是否有过从“嫌弃它的繁琐”到“享受它的确定性”的心理转变?在这个热衷于创造复杂性、追逐下一个“银弹”的技术时代,Go的这份“无聊”与“克制”,或许才是一种最稀缺、也最值得我们工程师珍视的品质。你看到的,就是即将发生的。

2025-12-07 08:02:09 664

原创 看完《疯狂动物城2》,我发现“完美架构”的谎言被戳破了

后来的维护者(Lynxley)为了 KPI,可能会歪曲系统原有的设计,堆砌不合理的“补丁”,甚至把系统改造成一个不可维护的怪兽。在你的职业生涯中,有没有哪一次“挖坟”经历(维护极老的遗留代码),让你意外地学到了很多东西?在电影里,我们得知了一个惊天秘密:动物城引以为傲的“温控系统”和城市规划,并非现在的创始人(林雪猁, Lynxley)设计的,而是源自一位爬行动物——走出影院,看着手里 2025 年的新技术,再想想公司里那堆跑了 10 年的老代码,我突然多了一份敬畏。不要傲慢地认为新技术能替代一切。

2025-12-07 08:02:09 733

原创 如果《疯狂动物城》是一个分布式系统,那它一定是用 Go 写的

正是这些基础设施,像那道巨大的空调墙一样,通过 Namespace(命名空间)和 Cgroup(资源限制),让成千上万个习性迥异的“服务”互不干扰,在此消彼长的流量洪峰中,不仅没“化掉”,还活得很好。原本我是想好好享受亲子时光的,可看着看着,作为写了十几年代码的程序员,我的关注点却莫名其妙地“跑偏”了。它剔除了所有花哨的语法糖,强制你写出清晰(甚至有点死板)的代码,但正是这种克制和高效,让它成为了支撑起整个动物城(云原生生态)最坚实的骨架。在传统的系统里,不同环境的应用混在一起很容易“打架”(环境冲突)。

2025-12-06 08:00:45 960

原创 J组!阿根廷开启2026卫冕之旅:梅西,这一次,请尽情享受足球!

仿佛昨天,我们还在多哈的卢塞尔球场,在这个星球上最漫长、最窒息的决赛夜里,陪着那个男人哭,陪着那个男人笑。2014年的亚军以及2022年的那一冠,已经耗尽了我所有的眼泪和祈祷,也填补了心中所有的遗憾。如果不能,那也是足球规律的使然,我们依然拥有那颗金色的第三颗星,依然拥有那个最好的里奥·梅西。注:在前22届世界杯里,一共只出现过2次卫冕成功的,分别是1938年法国世界杯,意大利卫冕成功,1962年智利世界杯,巴西卫冕成功。,我的心里没有了四年前那种“不成功便成仁”的悲壮,取而代之的,是一份从容与平静。

2025-12-06 08:00:45 103

原创 Go 安全新提案:runtime/secret 能否终结密钥残留的噩梦?

,但关注这个提案的进展,不仅能让我们见证 Go 语言如何填补安全拼图中至关重要的一角,更能让我们在“围观”其解决信号处理、GC 交互等硬核挑战的过程中,完成一次对 Go 运行时底层机制的深度认知升级。当然,目前该提案的开发者 Daniel Morsing 已经逐个克服了上述挑战,比如针对信号处理的问题,他提出了一种巧妙的“影子栈”方案,试图在信号处理返回前拦截并擦除这些数据。然而,在 Go 语言中,“立即销毁”这个看似简单的动作,却是一个巨大的技术难题。旧栈中的敏感数据就此残留,且不再被追踪。

2025-12-05 08:00:41 997

原创 Anthropic 内部报告:程序员的“死”与“生”,效率暴增 50% 的残酷启示

一位工程师坦言:“如果我有关于代码库的大量隐性知识,而 Claude 没有,我宁愿自己写,也不想花时间去写完美的 Prompt。在你的日常工作中,AI是你的“副驾驶”,还是已经开始接管方向盘了?随着 Claude Code 及其背后模型的进化(从 Sonnet 到 Opus),工程师们对 AI 的使用方式经历了从“小心翼翼”到“深度协同”的转变。在 AI 原生工作流的加持下,工程师的生产力暴增了 50%,但旧时代的“程序员”正在死去,一种全新的职业物种正在诞生。然而,硬币的另一面是深深的焦虑。

2025-12-05 08:00:41 432

原创 MinIO 开源版突发“安乐死”:维护模式开启,社区愤怒,你的数据还安全吗?

曾经,MinIO 是自建 S3 兼容存储的首选,是开源界的宠儿。MinIO 试图通过重新包装,将自己定位为 AI 基础设施的关键组件,从而向更有付费能力的企业客户(尤其是 AI 公司)靠拢。正如一位 HN 用户指出的:“他们在上一轮融资中估值 10 亿美元,要想成功退出,必须有深口袋的买家(如 Nvidia, Dell 等)。如今,它自己却试图摆脱开源的束缚,这种双重标准让社区感到讽刺。,且项目要求签署 CLA(贡献者许可协议),这让不少刚被 MinIO 伤过心的开发者担心它未来会重演“养肥再杀”的剧本。

2025-12-04 18:00:00 1070

原创 别盲目梭哈 Agentic AI!先看清“确定性”的崩塌与“概率性”重建

确定性”与“概率性”的碰撞,正在重塑我们的代码世界。模型一换,一切全乱;在 Agent 输出结果给用户之前,加一层确定性的校验代码(比如:检查生成的 SQL 是否包含 DELETE 语句,检查生成的金额是否超过上限)。如果你把它的温度(Temperature)降到绝对零度,强行让它变得完全确定,它就失去了智能,退化成了一个极其昂贵的搜索引擎。梭哈 Agentic AI 之前,请先接受这个世界的随机性,然后用你精湛的工程能力,给它套上逻辑的缰绳。我们并不是在简单的“重做”软件,我们是在培育一个新的物种。

2025-12-04 08:03:32 718

原创 Go 2025云原生与可观测年度报告:底层性能革新与生态固防

这直接减少了无谓的线程争用,让运行在 Kubernetes Pod 中的 Go 服务(尤其是那些资源受限的 Sidecar 或 Agent)无需人工调优即可获得更稳定、更高效的表现。这意味着运维人员能“开箱即用”地看到 Go 应用的内部健康状况,配合 OTel 的语义惯例,能够更早地发现由 GC 或并发引起的潜在风险。为了降低在 K8s 中的部署难度,OTel Go SDK 正在增强对 YAML/JSON 文件配置的支持,改变了过去过度依赖环境变量的局面,提升了配置的灵活性和易用性。

2025-12-03 08:00:49 1081

原创 只要 Title 带“工程师”,你就必须写代码:Uber 杰出工程师的硬核建议

在他看来,无论你的级别有多高,哪怕到了 Principal 或 Distinguished 级别,只要头衔里还有“工程师”这三个字,你就必须保持手感,持续编码。“也许几个月后,你会听到他们在讨论你的想法,甚至充满激情地捍卫它,仿佛那是他们自己想出来的。他不但分享了那个让他获得关键晋升的“史诗级”项目,还坦诚地谈论了办公室政治、不公平的晋升制度、以及他对“影响力”的独特理解。:如果团队成员知道你不仅懂业务,还能写出高质量的代码,甚至愿意干“脏活累活”,他们会更愿意听取你的建议。

2025-12-02 12:00:00 276

转载 我天,Go 已沦为老二。。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?除了大模型技术讲解,还有能够震撼到每一个程序员的、超详细、最热门的大模型商业化应用案例。掌握主流大模型(如DeepSeek、Qwen等)的微调技术,针对特定场景优化模型性能。5个步骤,覆盖超多业务场景,培养全栈开发能力,轻松成为大模型应用开发工程师!课程由AI大模型领域大佬们联合打磨研发,老师们将大模型技术原理讲透的同时,一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!

2025-12-02 08:02:03 11

原创 【Google ADK 实战】06 评估与部署:从“能用”到“可靠”的最后一步

因此,在我们将 Agent 推向生产环境之前,必须先为它建立一套科学的“体检”和“高考”体系。后半部分,我们将带着这份“体检合格”的信心,完成从开发到生产的“最后一公里”——在传统的软件开发中,我们有单元测试、集成测试,它们提供清晰的“通过/失败”的“绿/红”信号。你怎么能量化地证明,你的 Agent 在 95% 的情况下,都能正确地遵循预设的轨迹(比如先调用 A 工具,再调用 B 工具)?这是我们从“能用”的“原型”,走向“可靠”的“产品”的最后,也是最关键的一步。》的第六讲,这也是本微专栏的收官之作。

2025-12-01 08:01:18 403

原创 Brad Fitzpatrick 也等不及了!sync.Map 的泛型进化与 sync/v2 的诞生之路

当 Go 核心团队前成员、著名 Gopher、net/http包的设计者 Brad Fitzpatrick 在 GitHub 上留下上图中的这句评论并甩出一个自己移植的库时,我们知道,类型的容器,必须进行装箱(boxing),这不仅增加了 CPU 开销,更重要的是会产生额外的内存分配,加重 GC 负担。在本文中,我们将深入剖析这份提案的核心内容,探讨它将如何重塑 Go 的并发编程体验,以及社区为此展开的激烈辩论。这样的高频场景,避免每次 Put/Get 时的切片头分配,是实打实的性能红利。

2025-12-01 08:01:18 678

原创 Go 编译器崩溃背后:一个 append 函数引发的语言规范修正案

近期,Go 社区报告的一个 Bug (NO.76220) 和 Go 核心团队的后续跟进 (NO.76226),为我们上演了一出精彩的“技术侦探剧”。然而,在 Go 1.25.4 中,同样的代码却导致了编译器自身的恐慌 (panic),抛出了一个致命的内部编译器错误 (ICE)。这个词,将隐含的“常识”变成了明确的“规则”,从根本上堵住了任何可能的误读。:Go 团队追求的,不仅仅是让编译器“在大多数情况下做对的事”,而是让语言的。在语言的设计中,没有不言自明的“常识”,只有需要被精确定义的“规范”。

2025-11-30 08:00:16 664

原创 【Go 测试之道】10 拥抱“混乱”:混沌工程与 Go 测试实践初探

传统的测试,是在一个风和日丽的“靶场”里验证我们的武器有多准。它教我们如何主动地、有控制地在“靶场”里制造一场“狂风暴雨”,以考验我们的武器在极端恶劣的环境下,是否还能可靠地工作。通过在系统中,主动地、有控制地注入现实世界中可能发生的故障(如服务器宕机、网络延迟、磁盘I/O错误),来提前发现系统中的脆弱之处,并建立对其在混乱情况下行为的信心。它的目标,是将那些隐藏在系统深处的、只有在高压或异常情况下才会暴露的“未知未知” (Unknown Unknowns) 问题,转化为“已知已知”。接口会受到多大影响?

2025-11-30 08:00:16 401

原创 “香蕉、猴子和整片丛林”:我们是否深陷于 OOP 的“优雅”陷阱?

近日,一篇由 Alexander Danilov 撰写的、题为《OOP:编程史上发生的最糟糕的事》的文章,则以一种更系统、更“檄文”式的方式,为我们详细解剖了这只“猴子”和这片“丛林”的构成。Danilov 的文章,如同一份详细的“丛林勘探报告”,迫使我们重新审视,我们最初只是想要的那根香蕉(代码复用),是如何让我们不知不觉地,深陷于一片由类、继承和“魔法”构成的、盘根错节的“优雅”陷阱之中的。而非继承,我们可以像搭乐高积木一样,精确地选择自己需要的“零件”(香蕉),而不会被迫带上任何多余的“猴子”。

2025-11-29 08:01:27 336

原创 【Go 测试之道】09 Go 测试的“黑魔法”:覆盖率、Fuzzing 与 Golden Files

简单来说,语句覆盖率就是指“你的测试代码,到底执行了多少比例的生产代码”。Go 的覆盖率工具会在编译时,对你的源码进行“插桩”,在每个代码块(block)的入口处插入一个计数器。它只能证明每一行代码都被“运行”过,但无法保证在所有可能的输入组合和并发条件下,代码的行为都是正确的。覆盖率最大的价值,不在于那个最终的百分比数字,而在于它能像一张“X光片”一样,清晰地。这些“红色”的盲区,往往隐藏着未经测试的逻辑分支和潜在的 bug。,探索了契约测试的解耦之道,并登上了 E2E 测试的顶峰。

2025-11-29 08:01:27 344

原创 【Google ADK 实战】05 workflowagents:编排你的多 Agent 系统

但现实世界中的问题往往更加复杂,需要多个步骤、多个角色的协作才能完成。比如,一个完整的软件开发流程,至少需要“产品经理”提需求、“程序员”写代码、“测试工程师”做审查。在软件工程中,我们都熟悉“单一职责原则”(Single Responsibility Principle):一个模块或一个类,应该只负责一项功能。谁来把上一步的输出(生成的代码)传递给下一步(审查 Agent)?: 它的唯一职责就是像一个最挑剔的 Tech Lead 一样,审查代码的质量。的思想,将一个大任务,拆解给多个各司其职的。

2025-11-28 08:00:38 320

原创 Go 2026 路线图曝光:SIMD、泛型方法与无 C 工具链 CGO —— 性能与表达力的双重飞跃?

但在 2026 规划中,我们看到了 Go 团队向“极致性能”发起的冲锋,目标直指 AI、科学计算和高频交易等对延迟极度敏感的领域。这将允许同一份 Go 二进制代码,在不同向量长度(128位到2048位)的硬件上自动适配,实现性能的“线性扩展”,这对于 AI 推理场景至关重要。:Go 调度器的“工作窃取”机制虽然平衡了负载,但也导致 Goroutine 经常在不同 CPU 核心间“漂移”,破坏了 L1/L2 缓存的热度。:这是一个颠覆性的变化。规划中提到的几个特性,将进一步提升 Go 的表达力。

2025-11-28 08:00:38 409

原创 【Go 测试之道】08 E2E 测试与自动化:从 API 到完整系统的“终极验收”

在过去的旅程中,我们已经为“短链接”服务构建了层层递进的质量防线。用集成测试确保了“零件”与“外部供应商”(数据库、缓存)的协作顺畅;用契约测试确保了我们与其他“合作伙伴”(微服务)之间的“合同”无误。E2E 测试将我们的应用视为一个完全的“黑盒”。的,但它提供了最高维度的信心保证。因此,我们应该只为最核心、最关键的业务流程,编写数量适度的 E2E 测试——这个“度”,就是你的。我们已经从各个角度,对系统的内部组件进行了无数次的“彩排”。的身份,来与我们的系统进行交互。验证一个完整的、跨越多个组件的。

2025-11-28 08:00:38 404

原创 【Google ADK 实战】04 session 与 memory:让你的 Agent 拥有记忆

存储用户的偏好(“我最喜欢的城市是北京”)、历史交互的关键信息(用户过去经常查询的城市)、Agent 通过学习获得的知识等。它保证了 Agent 在一次连续的交互中,是“有记忆”和“连贯”的。想象一下,我们希望这个助手不仅仅是一个“查询工具”,更是一个能帮助我们做决策的“旅行规划助理”。准备好为你的 Agent 安装“海马体”,让它从一个简单的“查询工具”进化成一个真正的“助理”了吗?当被要求“综合来看”时,它的“记忆”是空白的,根本无从比起。,让它能够记录和比较多次查询结果,并能“记住”你跨会话的偏好。

2025-11-27 08:01:12 344

原创 dingo:Go 语言的 “TypeScript”时刻?—— 一场由社区驱动的语言演进实验

dingo项目的README 中有一个有趣的隐喻:Go 的吉祥物 Gopher(地鼠)是规矩的、被管理的;即使你坚持使用纯 Go,dingo 的存在也是一件好事——它是一只被放入沙丁鱼群的鲶鱼,或许能激活 Go 语言演进的一池春水。在本文中,我们就来深入剖析 dingo 的核心机制与创新语法,看看它是如何在保持 Go 零运行时开销的同时,实现那些 Gopher 们梦寐以求的现代语言特性的。Gopher们渴望“越狱”,但Go 核心团队对此保持审慎,这不仅是为了保持语言的纯粹,也是为了向后兼容。

2025-11-27 08:01:12 404

原创 13万节点!Google 如何打破 Kubernetes 的物理极限,构建全球最大集群

的超大规模集群——这是目前已知全球最大的 Kubernetes 集群,其规模是 GKE 官方支持上限(65,000 节点)的两倍,更是开源。,这些在极限场景下打磨出的技术创新,最终都会反哺到普通的 GKE 集群,甚至回馈给开源社区(如 Kueue 和 KEP 提案)。标准的 Kubernetes 使用 etcd 作为存储后端,但在 13 万节点的规模下,etcd 的容量和吞吐量成为了瓶颈。为了支撑起这座“13万节点”的摩天大楼,Google 对 Kubernetes 的底层架构进行了四项关键的“手术”。

2025-11-26 08:02:10 298

原创 【Google ADK 实战】03 tool.Tool:为你的 Agent 插上“手臂”

工具 (Tools),就是赋予 Agent “手臂”和“感官”的关键。这让它从一个“知道分子”蜕变为一个能解决实际问题的“行动派”。它所有的知识都来自于 LLM 内部的训练数据,它无法感知和影响我们真实的世界。,学会如何将一个普通的 Go 函数,几乎零成本地转化为一个 Agent 可用的工具。它就像一个被禁锢在瓶子里的“精灵”,拥有强大的智慧,却没有“手臂”去施展。包,带领你完成一次从“思考”到“行动”的飞跃。,明白 ADK 是如何为所有工具定义统一的“能力说明书”。这一讲,我们将聚焦于 ADK 的。

2025-11-26 08:02:10 295

原创 【Google ADK 实战】02 agent.Agent:定义你的第一个智能体

我们完成了一次重要的思维转变,理解了 Google ADK “代码优先”的哲学,并亲手跑通了官方的 Quickstart 示例。我们只是提了一个问题,ADK 就在背后完成了一系列复杂的 LLM 调用和工具执行。我们将一起深入 ADK 的心脏,去探寻一个 Agent 的。在 Go 的世界里,接口是构建可扩展、可测试系统的基石。但这“魔法”的背后,一定有一套严谨的工程抽象。,学会配置一个由大语言模型驱动的 Agent 的核心参数。的核心能力,而不关心其内部是如何实现的。,在代码的世界里,它到底是什么?

2025-11-25 08:17:44 420

原创 谁“杀”死了你的 HTTP 连接?—— 揭秘云环境下连接池配置的隐形陷阱

然而,在云原生时代,应用代码只是庞大网络链路中的一环。最令人费解的是,这往往发生在低频请求的场景下,或者系统刚从闲置状态“醒来”的时候。Go 客户端认为连接在 60~90 秒之间是可用的,但云端的 LB 已经在第 60 秒把它杀掉了。客户端的空闲超时时间,必须小于链路中任何中间设备(LB, NAT, Firewall)的超时时间。:OkHttp 的 5分钟,Go 的 90秒,在 60秒超时的公有云 LB 面前都是隐患。:运行在容器内的应用,使用okhttp的 HTTP 连接池(Keep-Alive)。

2025-11-25 08:17:44 270

原创 【Go 测试之道】07 微服务的“握手”协议:用契约测试解耦集成

我们用单元测试保证了每个“零件”的质量,用 Testcontainers 支持的集成测试,确保了我们的服务与它所依赖的基础设施(PostgreSQL, Redis)能够完美协作。不再将两个服务拉到一起进行端到端的“联调”,而是通过一份双方都认可的“契约 (Contract)”文件,让消费者 (Consumer) 和提供者 (Provider) 可以各自独立、异步地进行测试。每次他们的 API 发生(甚至是微小的)变更,都需要通知我们,否则我们的测试就会“悄无声息”地失败。—— 一场“异步”的集成测试。

2025-11-25 08:17:44 381

原创 【Google ADK 实战】01 思维转变:为什么 Google ADK 提倡“代码优先”?

如果你和我一样,是一个对 AI Agent 技术既兴奋又感到一丝迷茫的 Go 工程师,那么这个专栏正是为你我量身打造的。在过去的一年里,AI Agent 的概念铺天盖地,各种框架和平台层出不穷。这些问题,指向了当前 Agent 开发领域的一个核心痛点:许多工具在追求“快速上手”的同时,牺牲了软件工程中最宝贵的“可测试性”、“可维护性”和“可集成性”。当 Agent 的逻辑变得复杂时,一长串的“链”或一堆 YAML 文件该如何维护和版本化?最后,我们会亲手跑通官方的第一个示例,直观地感受 ADK 的魅力。

2025-11-24 08:00:17 274

原创 霸榜 GitHub 一周!Google 开源 ADK for Go,彻底终结 AI“炼丹”时代?

这就是为什么它能霸榜 GitHub 的原因——它不是在教你如何更好地“调优 Prompt”,而是在教你如何用坚实的工程代码,去彻底终结那个不可控的“炼丹”时代。不再有晦涩的 YAML,不再有天书般的“链”,Agent 的所有逻辑、决策、工作流,都由你亲手编写的、地地道道的 Go 代码来定义。我如何将这个“充满魔法”的 Python 脚本,与我现有的 Go 微服务体系优雅地集成,而不是变成一坨无法维护的“耦合怪”?AI Agent 开发,正在从“炼丹”式的“艺术创作”,全面进入“工程化”的“工业生产”时代。

2025-11-24 08:00:17 489

原创 白天改Bug,晚上刷视频:你以为在放松,其实在消耗你写出好代码的能力

晚上回到家,你只想“犒劳”一下疲惫的大脑,于是瘫倒在沙发或舒服的大床上,划开手机,沉浸在短视频那无穷无尽的信息流里。这种“伪学习”带来的即时满足感,可能会取代系统性、结构化的深度学习,让我们误以为自己“学到了很多”,实则认知能力的基础正在被侵蚀。短视频的算法和产品设计,其目标恰恰是系统性地、持续地打破我们的专注,用一个又一个的新鲜刺激来捕获我们的注意力。从今天起,让我们重新审视“白天改Bug,晚上刷视频”的生活模式,为我们宝贵的大脑,留出更多“慢思考”的宝贵空间。为你的大脑创造一个“无短视频”的纯净空间。

2025-11-23 08:02:23 883

原创 从韩立到梅西:顶级“全栈工程师”的修炼之道与生存哲学

在韩立的字典里,没有“这不归我管”或者“我是法修,不扛伤害”。为了生存(项目上线/系统稳定)这个终极目标,他打通了从炼气(开发)、炼体(架构)、阵法(运维)到炼丹(资源管理)的全链路。那一刻,看着韩立终成道祖,我心中涌起的激荡,竟与三年前看着阿根廷夺冠、梅西捧起大力神杯时的热泪盈眶,产生了奇妙的共振。当我摘下“修仙”和“足球”的滤镜,用一个资深技术人的视角去审视韩立与梅西的成长轨迹时,一个惊人的结论浮现在脑海:。在职场上,我们习惯给自己贴标签:“我是后端”、“我是DBA”、“我是写Go的”。

2025-11-23 08:02:23 831

BigPIM

BigPIM是一款个人信息管理软件,类似著名的Winpim,目前还有一些功能尚未完成而且还存在许多bug.

2006-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除