主页 | Web版 | 订阅 | 归档 | Feed

GopherDaily

20250410

每日一谚:Use constants for magic numbers


Go技术生态

Go开发者必看!JetBrains 2024报告深度解读:Go语言现状、趋势与未来机遇
近期JetBrains,这家开发者们都非常熟悉的工具公司,最近发布了《Is Golang Still Growing? Go Language Popularity Trends in 2024》的研究报告文章。针对这份报告献上我的一些解读。

Gopher的AI原生应用开发第一课:使用Go SDK与大模型交互
Gopher的AI原生应用开发第一课系列的第5篇,了解各个模型厂家推出的Go SDK,以OpenAI Go SDK为主。

Go 1.25新提案:GOMAXPROCS默认值将迎Cgroup感知能力,终结容器性能噩梦?
Go核心团队带来一则好消息,Go Runtime团队的Michael Pratt已正式提出一项提案(#73193),旨在让Go运行时默认感知Linux Cgroup的CPU quota限制并自动调整GOMAXPROCS值,该提案有望在Go 1.25中为开发者带来开箱即用的性能优化,告别在容器或Kubernetes中手动配置GOMAXPROCS的烦恼

《100 个 Go 语言常见错误及避免方法》背后的故事
这篇文章讲述了作者创作技术书籍《100 个 Go 语言常见错误及避免方法》背后的故事,从最初的构思到最终出版,分享了其中的心路历程、遇到的挑战以及收获。文章详细描述了与出版商 Manning 的合作过程,包括合同签订、编辑修改、读者反馈以及最终出版后的感受,并特别提到了与开发编辑和技术编辑的合作以及选择书封插图的经历。作者坦诚地分享了写作过程中的身心疲惫,以及最终出版后产生的空虚感(出版后抑郁症)。最后,作者还介绍了基于书籍内容创建的 100go.co 网站,以及对 Go 社区、读者和出版商的感谢。

Firebase 推出适用于 Python 和 Go 的 Genkit
Firebase 推出 Genkit 的 Python(Alpha 版)和 Go(Beta 版)SDK,这是一个用于构建 AI 应用程序的开源框架。Genkit 提供统一的 API,用于使用来自 Google、OpenAI、Anthropic 和 Ollama 等的各种 AI 模型。它还包含工具和可观察性功能,用于快速迭代、调试和监控生产中的应用程序。该框架还拥有不断壮大的插件生态系统,方便开发者集成各种专业工具和服务。

别让你的大脑超负荷:编写简洁的Go代码
本文通过对一个简单的 Go 包进行重构,阐述了如何提升代码可读性并降低认知负荷。文章重点讲解了如何简化布尔表达式、利用内置字符串比较运算符以及优化代码结构以提高可读性,并附带了代码示例和测试结果。

为什么 Go 应该是你进入后端开发的最佳第一步
你已经掌握了前端知识,但想了解后端?本文推荐 Go 语言作为你的后端开发入门语言。Go 语言简洁易学,性能优越,擅长并发处理,静态类型安全,且拥有强大的标准库和工具,非常适合前端开发者快速上手后端开发。

发布 Mockery v3
Mockery v3 将使 Go 社区中所有现有的基于接口的代码生成框架都过时。这是一个大胆的声明,对吧?幸运的是,我有充分的理由证明这一点。本文回顾了 Go 社区中代码生成器的现状,重点关注生成接口实现的代码生成器。然后,文章指出这些工具都很慢,因为它们花费大部分时间来解析语法,尤其是在调用 `packages.Load()` 时。为了解决这个问题,Mockery v3 引入了一个名为 `packages:` 的功能,它缓存了对 `packages.Load()` 的调用,从而极大地提高了性能。Mockery v3 还引入了一个模板框架,允许用户使用自己的模板,这使得 Mockery 能够支持各种代码生成器,并大大提高了效率。

云原生技术

使用 Docker 模型运行器在本地运行 Gemma 3:完整的本地 GenAI 开发者体验
本文探讨了如何使用 Docker 模型运行器在本地运行 Gemma 3 模型,并以评论处理系统为例进行实践研究。本地 GenAI 开发具有成本效益、数据隐私、降低网络延迟和完全控制等优势。文中介绍了如何使用 Docker 模型运行器设置 Gemma 3,以及评论处理系统的工作原理,包括生成合成用户评论、对评论进行分类、使用嵌入聚类相似的评论、识别评论中潜在的产品特性以及生成上下文相关的回复等多个方面。所有任务都在本地执行,无需外部 API 调用。

Salesforce 工程博客:面向企业 AI 的 Agentforce 工程
本文介绍了 Salesforce AI 平台的执行副总裁兼总经理 Adam Evans 如何带领团队开发 Agentforce,这是一个先进的 AI 编排层,旨在将智能代理集成到现实世界的企业环境中。文章探讨了团队如何应对向概率 AI 的转变,如何指导工程师摒弃数十年的传统实践,以及如何设计一个灵活的多模型编排系统,在适应性和严格的测试与控制之间取得平衡。

组件与容器:冲突?
WebAssembly 组件提供了一种在云原生环境中部署微服务和其他应用程序的新方法。这自然会引发一个问题:新兴的组件是否会取代容器?或者这是一种需要学习合作的竞争局面?本文探讨了两种技术之间的异同,以及如何理解它们各自的用例——无论是独立使用还是协同工作。然后,我们将探讨 WebAssembly (Wasm) 如何扩展跨多个云、边缘和设备的容器编排的边界。

Alexa+ 让我们更接近于环境界面
文章设想构建一个类似《星际迷航》中那样可以理解人类意图的计算机。十年前,这是一个雄心勃勃的目标。从基本的语音命令到Alexa+的更具会话性的界面,我们已经走了很长一段路。Alexa+利用生成式AI,让开发者能够通过简单的API来扩展Alexa的功能,从而处理自然语言的细微差别。这标志着从显式命令模式向自然对话的转变,类似于数据库查询的演变。Alexa+可以解释随意请求,并执行事务,感觉就像与另一个人交谈一样。对于开发者而言,这意味着可以专注于核心业务逻辑,而让Alexa处理自然语言理解的复杂性。文章最后鼓励开发者尝试使用Alexa+的AI原生SDK。

Netflix 如何精确地关联 eBPF 流日志
Netflix 此前的一篇博文中描述了如何利用 eBPF 大规模捕获 TCP 流日志以增强云网络洞察力。本文更深入地探讨了 Netflix 如何解决核心问题:将流 IP 地址准确地关联到工作负载标识。最初的方法依赖于 Sonar(内部 IP 地址跟踪服务),但存在误关联问题。Netflix 开发了一种新方法,通过利用本地 IP 地址的简单关联以及基于可靠时间戳的远程 IP 地址关联,消除了误关联问题。新方法还解决了跨区域 IP 地址和非工作负载 IP 地址的关联问题。通过对 Zuul(Netflix 云网关)的分析,验证了新方法的准确性。

更少的 htmx,更好的效果
本文探讨了如何通过结合一些浏览器特性,学习使用更少的 htmx 来构建出色的网站。作者认为,应该尽量使用纯 HTML,htmx 应该仅用于用户不会在刷新或新页面加载时看到的更新,以及在刷新或新页面加载时也会存在的更新。过度使用 `hx-boost` 会导致各种问题,例如页面部分更新、页面空白等。作者建议使用常规链接,并通过发送缓存头来重用 CSS 和 JS,利用浏览器的内置功能来优化性能和用户体验。同时,文章还讨论了 `hx-boost` 的存在意义以及在特定场景下使用 htmx 构建 SPA 的可能性。

AI

我们被骗了:大型语言模型的真相
这是一篇关于大型语言模型(LLM)高昂运行成本以及为什么整个AI现状开始显得可疑的辛辣评论。文章指出,大型语言模型公司故意隐瞒运行LLM的成本,因为如果人们知道真实成本,他们可能会停止相信围绕AI和LLM,特别是开源模型的所有炒作。文章通过计算运行大型语言模型的成本,例如Deepseek和Llama 3,来论证其观点,并以图片和数据为例说明其高昂的运行成本,指出其成本远超普通用户的承受能力。文章最后呼吁读者保持警惕,并介绍了DoltHub的系列产品。

大型语言模型查询理解服务
Doug Turnbull 最近写了一篇文章,讲述了所有搜索现在都是结构化的:即使是一个小型开源大型语言模型,也能够以相对较低的成本将搜索查询转换为合理的结构。在这个后续教程中,他演示了在支持 GPU 的 Google Kubernetes Engine 容器中运行的 Qwen 2-7B 如何将用户的搜索查询(例如“红色双人沙发”)转换为结构化过滤器,例如`{"item_type": "loveseat", "color": "red"}`。作者尝试使用 LLM 对其他一些模型运行他的提示,并对结果进行了总结。

Agent2Agent协议(A2A)发布
Google发布了一个名为Agent2Agent (A2A) 的全新开放协议,该协议旨在支持来自不同厂商和框架的AI智能体在企业平台上进行协作和信息交换,从而促进无缝AI智能体互操作性和增强自动化。A2A协议基于现有标准(如HTTP、SSE、JSON-RPC),具有安全特性,支持长时间运行的任务和多种模式(包括文本、音频和视频)。该协议旨在支持企业级身份验证和授权,并具有与OpenAPI的身份验证方案相当的特性。文章还包含了来自50多个技术合作伙伴和服务提供商的反馈。

MCP 协议:AI 开发工具的新构建块
模型上下文协议 (MCP) 通过扩展 IDE 的 AI 功能而迅速普及。为什么它如此受欢迎,为什么开发者应该关注它?本文将通过一个实际案例,解释 MCP 的工作原理,探讨其起源、架构、安全隐患以及未来应用场景,例如连接 Figma 与 VS Code、通过 Cursor 进行 3D 建模以及通过 Windsurf 控制 3D 打印机等。 作者还采访了 MCP 的联合创建者 David Soria Parra,并分享了更多见解。

AI与Stack Overflow:开发者支持领域的变革
随着人工智能的进步,开发人员寻求帮助的方式正在发生转变。但随着Stack Overflow的普及度下降,指南和博客正在崛起以填补这一空白。本文探讨了人工智能的局限性以及开发者支持的新领域。

如何在 Google Cloud Run 上部署 ADK 代理程序
本文介绍了如何使用 Google 的 Agent Development Kit (ADK) 将 AI 代理程序部署到 Google Cloud Run,包括使用 adk deploy cloud_run 命令以及使用 gcloud 和 Dockerfile 手动部署两种方法。文章还介绍了使用 Web UI 和 API 进行测试的方法。

Vercel 推出 Chat SDK
Chat SDK 是一个免费的开源模板,由 Next.js 和 AI SDK 提供支持,可帮助您构建强大的聊天机器人应用程序。它具有生成式 UI、可自定义的工件和浏览器内代码执行等功能。

流行工具与项目

caddyserver/caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

krillinai/KrillinAI
A video translation and dubbing tool powered by LLMs, offering professional-grade translations and one-click full-process deployment. It can generate content optimized for platforms like YouTube,TikTok, and Shorts. 基于AI大模型的视频翻译和配音工具,专业级翻译,一键部署全流程,可以生成适配抖音,小红书,哔哩哔哩,视频号,TikTok,Youtube Shorts等形态的内容

googleapis/google-cloud-go
Google Cloud Client Libraries for Go.

gin-gonic/gin
Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

netbirdio/netbird
Connect your devices into a secure WireGuard®-based overlay network with SSO, MFA and granular access controls.

docker/buildx
Docker CLI plugin for extended build capabilities with BuildKit

derailed/k9s
🐶 Kubernetes CLI To Manage Your Clusters In Style!

go-gitea/gitea
Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD

coroot/coroot
Coroot is an open-source APM & Observability tool, a DataDog and NewRelic alternative. Metrics, logs, traces, continuous profiling, and SLO-based alerting, supercharged with predefined dashboards and inspections.

cloudwego/eino
The ultimate LLM/AI application development framework in Golang.

akuity/kargo
Application lifecycle orchestration

hashicorp/terraform
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

uber-go/mock
GoMock is a mocking framework for the Go programming language.

ethereum/go-ethereum
Go implementation of the Ethereum protocol

kubernetes/kubernetes
Production-Grade Container Scheduling and Management

containers/skopeo
Work with remote images registries - retrieving information, images, signing content

spf13/viper
Go configuration with fangs

open-telemetry/opentelemetry-collector
OpenTelemetry Collector

vitessio/vitess
Vitess is a database clustering system for horizontal scaling of MySQL.

grafana/alloy
OpenTelemetry Collector distribution with programmable pipelines

fsnotify/fsnotify
Cross-platform filesystem notifications for Go.

kubernetes-sigs/gateway-api
Repository for the next iteration of composite service (e.g. Ingress) and load balancing APIs.


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily