20250703
每日一谚:Document the why, not just the how
Go考古:创始人亲述Go语言的“创世纪”
2012 年,Google I/O 大会的舞台上,一个刚刚发布 1.0 版本的编程语言团队,正襟危坐。他们面对着全球开发者的审视和提问,这其中,就有三位图灵奖得主级别的传奇人物:Ken Thompson、Rob Pike 和 Robert Griesemer。今天,就让我们扮演一次“Go 语言考古学家”,拂去时间的尘埃,回到那个被称为“创世纪”的时刻,重温 Go Team 核心成员们的亲口讲述,探寻这门语言最纯粹的初心和设计哲学。
Go 缓存库的演变
本文探讨了 Go 语言中缓存库的演变历程,从早期的简单缓存到如今功能强大的库,例如 Ristretto、Theine 和 Otter。文章比较了不同库的优缺点,包括它们在内存管理(堆内和堆外)、性能(吞吐量和命中率)、以及功能(例如驱逐策略、过期策略、批量加载和刷新)方面的差异。作者详细分析了每个库的设计决策及其影响,并最终推荐了 Otter v2 作为当前最优秀的 Go 缓存库。
The evasive evitability of enshittification
Securing GraphQL in Golang using Directives for Authentication and Authorization
Max的故事:一位真正的程序员
本文讲述了作者维护时间最长的软件项目Imagebin的故事,以及其编写者Max的编程风格。Imagebin最初由作者的学校朋友Max编写,是一个简单的PHP脚本,具有极高的简洁性。作者近期尝试使用Go语言重写Imagebin,却发现代码量反而增加了一倍多,且复杂度更高。这促使作者反思了Max的编程风格,以及简洁性在软件长期维护中的重要性。作者最终决定保留Max的原始代码,并继续使用PHP运行Imagebin。
Using Gordon to Containerize Your Apps and Work with Containers
Driving Content Delivery Efficiency Through Classifying Cache Misses
Kmesh v1.1.0 Officially Released!
Navigating Failures in Pods With Devices
如何撰写引人入胜的软件发布公告
一篇优秀的软件发布公告应该重点突出用户体验的改进,而不是仅仅列举新功能。文章通过对比好的和坏的例子,讲解了如何撰写更有效的发布公告,包括如何选择要介绍的功能、如何用更积极的语言描述改进、如何利用截图和动画演示更清晰地展示新功能,以及如何用图表代替枯燥的数字等。
软件工程中的持续 AI
本文探讨了在软件工程中持续集成 AI 工具的理念,即“持续 AI”。作者认为,与按需使用 AI 工具不同,持续 AI 应像单元测试和类型检查一样,通过自动化持续运行和检查。文章列举了持续 AI 的一些示例,例如自动化的 AI 驱动的 PR 审查、AI 驱动的 issue 或 PR 标签,以及日常或每周的汇总报告。作者认为,持续 AI 可以带来一系列小的、但有价值的改进,例如及早发现错误,并可以自动化一些繁琐的协调工作。最后,作者提到了 GitHub Actions 和 GitHub Models 的结合,这为持续 AI 提供了一个理想的组合。
使用大型语言模型 (LLM) 作为编译器
这是一篇关于使用大型语言模型 (LLM) 作为编译器的博客文章。作者认为,未来 LLM 可以作为一种新型编译器,将上下文转化为功能,从而使软件工程更加民主化,并加快功能开发速度。文章探讨了这种方法的优势和挑战,并提出了一个基于 LLM 编译器的软件工程师工作流程。文章还提供了相关的参考资源。
evanw/esbuild
An extremely fast bundler for the web
binwiederhier/ntfy
Send push notifications to your phone or desktop using PUT/POST
argoproj/argo-rollouts
Progressive Delivery for Kubernetes
open-telemetry/opentelemetry-collector-contrib
Contrib repository for the OpenTelemetry Collector
go-dev-frame/sponge
A powerful and easy-to-use Go development framework that enables you to effortlessly build stable, reliable, and high-performance backend services with a "low-code" approach.
docker/cli
The Docker CLI
opencontainers/runc
CLI tool for spawning and running containers according to the OCI specification
open-telemetry/opentelemetry-collector
OpenTelemetry Collector
aws/aws-sdk-go-v2
AWS SDK for the Go programming language.
grafana/loki
Like Prometheus, but for logs.
navidrome/navidrome
🎧☁️ Your Personal Streaming Service
hypermodeinc/ristretto
A high performance memory-bound Go cache
prometheus/prometheus
The Prometheus monitoring system and time series database.
hashicorp/vault
A tool for secrets management, encryption as a service, and privileged access management
pocketbase/pocketbase
Open Source realtime backend in 1 file
distribution/distribution
The toolkit to pack, ship, store, and deliver container content
cli/cli
GitHub’s official command line tool
fatedier/frp
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
kubernetes-sigs/kueue
Kubernetes-native Job Queueing
gorilla/websocket
Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go.
golangci/golangci-lint
Fast linters runner for Go
kagent-dev/kagent
Cloud Native Agentic AI | Discord: https://bit.ly/kagentdiscord
uber-go/mock
GoMock is a mocking framework for the Go programming language.
hashicorp/terraform-provider-aws
The AWS Provider enables Terraform to manage AWS resources.
argoproj/argo-cd
Declarative Continuous Deployment for Kubernetes
编辑:Tony Bai
编辑主页:tonybai.com
GopherDaily项目:github.com/bigwhite/gopherdaily
Copyright 2019-2024 GopherDaily