20250528
每日一谚:In the world of Go, clarity triumphs over brevity. Embrace clear code, even if it means typing extra lines.
使用GORM的泛型方法
GORM 在最新版本(v1.30.0)中正式引入了对 Go 泛型的支持。此项新增功能显著增强了可用性和类型安全性,同时减少了诸如由于重复使用 gorm.DB 实例而导致的 SQL 污染等问题。此外,我们改进了 Joins 和 Preload 的行为,并加入了事务超时处理以防止连接池泄漏。 此更新以一种精心设计的方式引入了泛型 API,同时保持了与现有 API 的完全向后兼容性。您可以在项目中自由混合传统和泛型 API——只需在新代码中使用泛型,而无需担心与现有逻辑或 GORM 插件(如加密/解密、分片、读/写分离、跟踪等)的兼容性。为了防止误用,我们在泛型版本中故意删除了某些容易出现歧义或并发问题的 API,例如 FirstOrCreate 和 Save。同时,我们正在设计一个全新的 gorm CLI 工具,它将在未来提供更强大的代码生成能力、增强的类型安全性以及 lint 支持——进一步降低了错误使用的风险。 我们强烈建议在新项目中或在重构工作期间使用新的基于泛型的 API,以获得更好的开发体验、改进的类型保证以及更易于维护的代码库。
TypeScript 正在转向 Go:为什么它是务实的选择
TypeScript 正在被移植到 Go 语言(被称为“TypeScript 7”)。本文探讨了此次移植的背景、意义以及对 TypeScript 生态系统的影响。文章从性能提升、TypeScript 团队工作方式改变、与 TypeScript 交互方式的改变以及生态系统工具的影响等方面进行了深入分析,并对 Go 语言的选择进行了评价。
Go 的 net/http 包中 TCP 连接的幕后机制
本文探讨了 Go 的 net/http 包如何基于 TCP 协议实现 HTTP 连接的底层机制,包括 Socket、文件描述符、TCP 连接建立过程(Socket 创建、服务器绑定与监听、连接接收、客户端连接)、数据传输、连接关闭以及关键实现细节(多路复用、连接池管理、超时控制、错误处理和重试机制)和工作流程。
Go语言实践中结构体布局和填充的优化
本文探讨了Go语言中结构体在内存中的布局以及编译器添加填充以确保正确对齐的方式。了解结构体布局对于编写高效的Go代码至关重要,因为它会影响内存效率、缓存利用率和性能。文章解释了填充的原理,并通过示例演示了如何通过重新排序字段来优化结构体布局,从而减少内存消耗并提高性能。此外,文章还介绍了使用viztruct工具来分析和优化结构体布局的方法,并提供了一个实际的基准测试来展示优化后的性能提升。
为什么实时数据、SQL 和统一平台是 AI 应用的竞争优势?
提供真正个性化的 AI 体验非常复杂。这需要大型语言模型 (LLM) 访问相关的个人或组织信息,并具备将需求转化为切实行动的能力。这一追求一直是 GenAI 应用开发中的一个关键方向。本文探讨了构建 AI 原生应用的数据基础,重点介绍了实时数据、SQL 和统一平台的重要性。
Dolt 与 Prometheus 的协作
Dolt(以及 Doltgres)数据库公开了 Prometheus 指标。本文介绍如何访问 Dolt(gres) 指标以用于 Prometheus。文章涵盖了设置 Dolt 和 Doltgres 指标发布、配置 Prometheus 指标收集器以及查询指标数据以可视化指标的方法。还介绍了一些有用的指标,例如 `go_memstats_heap_alloc_bytes`(已分配的堆字节数)和 `dss_query_duration_bucket`(查询持续时间的直方图)。
让它扩展:Aurora DSQL 故事
AWS 高级首席工程师 Niko Matsakis 和 Marc Bowes 带我们深入了解 Aurora DSQL 的开发:无需两阶段提交即可扩展写入操作,克服垃圾回收难题,以及同时采用 Rust 作为数据层和控制层。文章详细介绍了 Aurora DSQL 的架构、设计决策以及从 JVM 迁移到 Rust 的过程,并探讨了在云环境下构建可扩展关系数据库的挑战与经验。
GitHub MCP 被利用:通过 MCP 访问私有仓库
Invariant 发现了一个影响广泛使用的 GitHub MCP 集成的严重漏洞(GitHub 上有 14k 星)。该漏洞允许攻击者通过恶意 GitHub Issue 劫持用户的代理,并强制其泄露私有存储库中的数据。该漏洞是 Invariant 用于检测有害代理流的安全分析器发现的首批漏洞之一。
开发者被取代的循环炒作
人工智能并没有取代开发者,而是在改变他们。正如无代码技术催生了专业人士,云计算将系统管理员转变为DevOps工程师一样,人工智能将工程师从代码编写者提升为系统架构师。软件开发中最有价值的技能不是编写代码,而是设计一致的系统。
高效 Monorepo 的要素
本文探讨了构建高效 Monorepo 所需的工具和策略。作者指出,简单的复制大型科技公司(如 Google、Meta、Uber)的经验并不可行,成功的 Monorepo 需要关注一致性、组织连贯性和共享工具。文章强调了 O(change) 而不是 O(repo) 的重要性,并详细阐述了源码控制、构建、测试和持续集成/交付等方面面临的挑战和解决方案,包括对 Git 扩展、构建系统选择、测试策略以及持续集成/交付流程的优化等。
llm-llama-server 0.2
这是一个关于llm-llama-server 0.2版本的文章。文章介绍了使用LLM的新工具支持针对本地模型的第二种方法(第一种是通过llm-ollama)。它指出llama.cpp生态系统已经拥有相当健壮的OpenAI兼容工具支持,因此llm-llama-server插件只需要快速升级即可实现这些功能。不幸的是,目前流支持似乎不适用于llama-server中的工具,因此添加了一个名为llama-server-tools的新模型ID,它禁用了流并启用了工具。文章还提供了几种尝试该工具的方法,包括使用Homebrew安装llama-server,运行服务器,以及使用llm命令行工具进行测试。
大型语言模型现在可以在你的终端运行工具了(LLM 0.26)
LLM 0.26 版本发布,带来了自项目启动以来最大的新功能:工具支持。现在,你可以使用 LLM 命令行工具和 Python 库,让来自 OpenAI、Anthropic、Gemini 和 Ollama 的本地模型访问任何可以用 Python 函数表示的工具。LLM 现在还拥有工具插件,因此你可以安装插件来为当前使用的任何模型添加新功能。本文重点介绍了 LLM 运行工具的新功能,包括从插件安装工具、在命令行传递 Python 函数代码、Python API 支持工具以及工具在异步和同步上下文中的工作方式。文章还包含多个使用示例,展示了如何使用内置工具和插件工具,以及如何使用 --functions 选项创建临时命令行工具。
GitHub Issues 作为笔记应用
GitHub Issues 几乎是世界上最好的笔记本。它免费且无限量,可用于公共和私有笔记,支持全面的 Markdown,包括几乎所有语言的语法高亮显示,还允许直接拖放图像或视频。它具有强大的互联功能,可以轻松链接到其他 GitHub Issues,并具有出色的搜索功能和 API。唯一的缺点是缺乏同步离线支持。
为什么 Cline 不索引您的代码库(以及为什么这是一件好事)
Cline 团队解释了为什么他们不使用 RAG(检索增强生成)来索引用户的代码库。他们认为,对于代码来说,RAG 存在三个主要问题:代码不以块的形式思考、索引在代码不断发展过程中会衰减以及安全问题。Cline 采取了一种不同的方法,通过智能探索和理解代码结构来构建上下文,从而提供更高质量的代码建议,并避免了 RAG 的缺点。
ollama/ollama
Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models.
mark3labs/mcp-filesystem-server
Go server implementing Model Context Protocol (MCP) for filesystem operations.
gohugoio/hugo
The world’s fastest framework for building websites.
Project-HAMi/HAMi
Heterogeneous AI Computing Virtualization Middleware
gofiber/fiber
⚡️ Express inspired web framework written in Go
hashicorp/vault
A tool for secrets management, encryption as a service, and privileged access management
bytedance/sonic
A blazingly fast JSON serializing & deserializing library
aws/karpenter-provider-aws
Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.
open-telemetry/opentelemetry-collector-contrib
Contrib repository for the OpenTelemetry Collector
ehang-io/nps
一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
minio/minio-go
MinIO Go client SDK for S3 compatible object storage
kubernetes/minikube
Run Kubernetes locally
GoogleCloudPlatform/kubectl-ai
AI powered Kubernetes Assistant
manusa/kubernetes-mcp-server
Model Context Protocol (MCP) server for Kubernetes and OpenShift
prometheus-operator/prometheus-operator
Prometheus Operator creates/configures/manages Prometheus clusters atop Kubernetes
microsoft/typescript-go
Staging repo for development of native port of TypeScript
go-gorm/gorm
The fantastic ORM library for Golang, aims to be developer friendly
go-sql-driver/mysql
Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package
fluxcd/flux2
Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.
projectdiscovery/nuclei
Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
Masterminds/squirrel
Fluent SQL generation for golang
AdguardTeam/AdGuardHome
Network-wide ads & trackers blocking DNS server
gofr-dev/gofr
An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.
编辑:Tony Bai
编辑主页:tonybai.com
GopherDaily项目:github.com/bigwhite/gopherdaily
Copyright 2019-2024 GopherDaily