20250617
每日一谚:A little copying is better than a little dependency
“骑手与大象”架构:超越微服务与单体之争的务实之道?
在软件架构的江湖里,关于“微服务”与“单体”的论战,几乎从未停歇。一方推崇微服务的灵活性、可扩展性和独立部署,另一方则坚守单体的简洁性、低通信开销和易于本地调试。近年来,我们甚至看到像亚马逊 Prime Video 这样重量级的玩家,也公开分享了其从微服务“回归”到某种形式的单体(或者说更粗粒度的服务)的实践,引发了业界新一轮的思考。
Go语言type set的乐趣
泛型为Go引入了全新的接口类型:它不是基于方法,而是基于类型集。让我们探索其可能性。本文摘自《深入浅出Go语言泛型》一书,探讨了Go泛型中类型集、联合、交集以及一些限制,并解释了约束不是类。
Go要点:竞争条件
本文节选自我的Go并发编程书籍,通过交互式示例从基础知识逐步讲解该主题。文章探讨了如何处理竞争条件,包括使用互斥锁防止数据竞争、比较并设置操作、幂等性和原子性、Locker接口以及TryLock方法的使用,以及避免共享状态的策略。文章以一个关于用户账户和乐高积木购买的示例说明了竞争条件问题,并提供了多种解决方案,包括使用互斥锁保护整个购买过程以及使用原子比较并设置操作。
Dolt Stash 现在可在任何地方使用
我们添加了一个 `dolt_stash()` 过程,允许你在 Dolt 的任何位置存储你的更改。这篇文章解释了为什么需要 stash 功能,以及在 Dolt 中实现它的挑战,最后介绍了新的命名 stash 功能,并通过示例演示了它的使用方法。
内部管理用户名和密码已过时
Tailscale 帮助团队构建安全、私密的网络,但安全性并不止于网络层。身份验证同样重要。然而,在 2025 年,许多 SaaS 公司仍在构建和维护自己的登录系统。在这篇文章中,Tailscale 首席执行官 Avery Pennarun 回顾了最近与 Stratechery 的 Ben Thompson 的对话,并论证了为什么现代应用程序应该将身份验证外包——以及我们的开源 OIDC 服务器 tsidp 如何帮助您在不放弃控制权的情况下实现这一点。
2025 年工程领导力现状
这篇新闻文章分享了 600 多位工程领导者对他们角色如何演变的见解,其中包括:工程组织的变化、2025 年工程领导者的现状以及人工智能对工程领导力的影响。文章还揭示了一些有趣的统计数据,例如 60% 的工程领导者认为人工智能尚未显著提高团队的生产力,50% 的人担心就业机会减少,40% 的人认为团队的积极性下降,65% 的人担心经济衰退。文章探讨了人工智能对工程组织的积极和消极影响,以及工程领导者面临的挑战,例如在有限的预算下寻找合适的候选人,以及保持团队士气等。
开发者必知的环境变量使用知识
本文介绍了环境变量的工作原理、主要用途、常见陷阱以及在 Expo React Native 应用中使用环境变量的最佳方法。学习如何配置环境变量,以及如何在开发和生产环境中安全地使用它们,包括使用 .env 文件和 eas.json 文件。
新一代渗透测试:AI赋能“好人”
传统的渗透测试的假设开始动摇,新一代的AI驱动方法正在兴起。本文探讨了AI如何改变渗透测试,使其能够以机器的速度应对现代软件开发的规模和速度。文章还讨论了新一代渗透测试工具的局限性和挑战,例如数据限制、责任不明确以及范围狭窄等问题。
AI不会培养出优秀的工程师——除非我们正确地使用它
人工智能已经融入工程师的工作流程、IDE甚至决策过程,它提高了生产力,加快了原型设计,并使我们能够立即获得以前需要数小时深入思考才能找到的解决方案。但是,这种方法存在权衡——这是我们无法忽视的。过度依赖AI会导致工程师缺乏批判性思维、彻底调试或刻意设计的能力,最终可能降低工程思维、质量和团队长期能力。正确的AI集成方法是:自动化重复性任务;情境化学习;加速原型设计,随后进行有意的同行评审和架构验证;专注于文档编制和总结;验证想法;识别解决方案中的不足之处。团队应遵循一条简单的规则:AI可以帮助你入门,但你必须理解并拥有最终结果。这样才能在保持速度的同时保证质量,避免形成依赖性文化。
open-telemetry/opentelemetry-collector
OpenTelemetry Collector
influxdata/telegraf
Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
googleapis/google-cloud-go
Google Cloud Client Libraries for Go.
kubernetes-sigs/karpenter
Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.
lejianwen/rustdesk-api
Custom Rustdesk Api Server, include web admin ,web client, web client v2 preview and oidc login
go-playground/validator
💯Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
Musixal/Backhaul
Lightning-fast reverse tunneling solution for NAT traversal, optimized for handling massive concurrent connections with tcp, tcpmux, udp, udp over tcp, ws, wsmux, wss and wssmux support.
m1k1o/neko
A self hosted virtual browser that runs in docker and uses WebRTC.
etcd-io/etcd
Distributed reliable key-value store for the most critical data of a distributed system
uber-go/zap
Blazing fast, structured, leveled logging in Go.
akuity/kargo
Application lifecycle orchestration
mark3labs/mcp-go
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.
grafana/tempo
Grafana Tempo is a high volume, minimal dependency distributed tracing backend.
go-sql-driver/mysql
Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package
hibiken/asynq
Simple, reliable, and efficient distributed task queue in Go
asdf-vm/asdf
Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
labstack/echo
High performance, minimalist Go web framework
SagerNet/sing-box
The universal proxy platform
kubernetes/client-go
Go client for Kubernetes.
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.
coredns/coredns
CoreDNS is a DNS server that chains plugins
stretchr/testify
A toolkit with common assertions and mocks that plays nicely with the standard library
编辑:Tony Bai
编辑主页:tonybai.com
GopherDaily项目:github.com/bigwhite/gopherdaily
Copyright 2019-2024 GopherDaily