developer-experience

标签

Cards List
#developer-experience

汤姆的命名空间:一篇 Odin 同人小说

Lobsters Hottest ↗ · 2026-05-11 缓存

一篇叙事风格的技术文章,探讨 Odin 编程语言中的代码组织方式,着重指出其包系统特点、缺乏包级局部命名空间的现状,以及由此引发的开发者工作流挑战。

0 人收藏 0 人点赞
#developer-experience

你的 AI Agent 没坏,是你的控制框架没配好。来看看我是如何搭建这套系统,让它从“累赘”转变为能交付生产级代码的。

Reddit r/AI_Agents ↗ · 2026-05-11

本文指出,AI 编程智能体的失败源于系统设计不佳,而非模型能力限制。文章提出了一套包含知识、护栏和反馈循环的三层“控制框架”,以可靠地交付生产级代码。

0 人收藏 0 人点赞
#developer-experience

代理程序与开发者在控制盈利性推广内容方面应拥有多大权限?

Reddit r/AI_Agents ↗ · 2026-05-11

本文探讨了人工智能代理在推荐付费服务时面临的设计挑战与治理边界,质疑开发者与用户应拥有多大程度的控制权,以在兼容性与透明度之间取得平衡。

0 人收藏 0 人点赞
#developer-experience

只有我开始对“氛围编码”感到疲惫了吗?

Reddit r/AI_Agents ↗ · 2026-05-11

一位开发者分享了对“氛围编码”的倦怠感,指出虽然 AI 代理能加快初期开发速度,但在复杂的代码库中会引入显著的架构调试挑战和技术债务。

0 人收藏 0 人点赞
#developer-experience

过拟合 Harness 的代价(2 分钟阅读)

TLDR AI ↗ · 2026-05-11 缓存

本文分析了 OpenAI 可能逐步缩减微调服务的影响,警告称前沿模型可能会过拟合于专有的 Harness。文章指出,尽管这一转变能提升可靠性,但也可能加剧厂商绑定,并降低第三方开发者使用模型的灵活性。

0 人收藏 0 人点赞
#developer-experience

任务瘫痪与人工智能

Hacker News Top ↗ · 2026-05-10 缓存

作者分享了使用 Claude 克服“任务瘫痪”的个人观点,强调了生产力提升与人工智能依赖风险及过度消费之间的紧张关系。

0 人收藏 0 人点赞
#developer-experience

为变更优化,而非应用性能

Hacker News Top ↗ · 2026-05-09 缓存

本文指出,软件团队常常过度优化微性能基准测试,却牺牲了开发者体验和工程吞吐量,而这两者才是长期交付速度与可维护性的真正瓶颈。

0 人收藏 0 人点赞
#developer-experience

@petergyang: 有时候我给 Claude Code 发消息时,它会卡住 3 分钟,我根本不知道它是否还在运行。……

X AI KOLs Following ↗ · 2026-05-09 缓存

有用户反映,Claude Code 有时会卡住三分钟,且不提供任何状态更新或反馈,让人无法判断它是否仍在处理。

0 人收藏 0 人点赞
#developer-experience

对于同时公开 MCP 和 CLI 的情况,这两种工具/命令是否应该暴露完全相同的功能?

Reddit r/AI_Agents ↗ · 2026-05-09

作者讨论了同时设计 MCP 和 CLI 接口时的架构挑战,权衡了功能镜像化与利用各自独特优势(CLI 的可组合性,MCP 的安全性和可审计性)之间的利弊。

0 人收藏 0 人点赞
#developer-experience

苹果让我压力飙升

Hacker News Top ↗ · 2026-05-09 缓存

一位开发者讨论了分发 macOS 软件所面临的挫败感及高昂成本,特别提到了苹果的隔离机制以及用于代码签名的昂贵 Apple Developer Program。

0 人收藏 0 人点赞
#developer-experience

# 引导 Zig Fmt 在过去的几个月里,我一直在研究 Zig 格式化工具(`zig fmt`)的演变方向,最终形成了[这份提案](https://github.com/ziglang/zig/issues/20078)。由于这是一个颇具争议的话题,我想在这篇文章中详细阐述其中的权衡考量。 ## 现状 `zig fmt` 是一个固执己见的格式化工具:它会将 Zig 代码格式化为单一的规范形式,且不受用户配置的影响。这类工具(如 `gofmt`、`prettier`)有一个显著优势:当整个生态系统都使用同一格式化工具时,就能消除围绕风格的无谓争论,并确保所有代码的外观一致。 然而,现有的 `zig fmt` 存在一个问题:它实际上并不是完全固执己见的——格式化结果会根据用户的输入而变化。 以下面这个例子为例: ```zig const x = foo(1, 2, 3); ``` 如果你在最后一个参数后面加上一个逗号: ```zig const x = foo(1, 2, 3,); ``` `zig fmt` 会将其格式化为: ```zig const x = foo( 1, 2, 3, ); ``` 这意味着代码的格式化方式(单行还是多行)取决于用户是否添加了尾随逗号。此外,`zig fmt` 对于其他一些构造也并非完全固执己见,例如注释的位置。 ## 问题所在 为什么这是个问题呢?毕竟,根据尾随逗号来决定格式化方式,这是一种广为人知且合理的约定。 问题在于,这种方案实际上给了用户两种选择:单行格式和多行格式。这意味着用户必须做出决定,而这恰恰是格式化工具本应消除的那类决策。 更糟糕的是,这个决定并没有一个客观正确的答案,因为适合单行还是多行,往往取决于行的长度——而行的长度会随着变量名、参数等的变化而改变。 举个例子,假设你有: ```zig const x = foo(1, 2, 3); ``` 这段代码很短,放在一行完全没问题。但如果函数名变长了呢? ```zig const x = a_longer_function_name(1, 2, 3); ``` 还是挺短的。那如果更长呢? ```zig const x = a_much_much_longer_function_name(argument_one, argument_two, argument_three); ``` 这行已经相当长了,或许应该换成多行格式: ```zig const x = a_much_much_longer_function_name( argument_one, argument_two, argument_three, ); ``` 但在当前的 `zig fmt` 机制下,你需要手动添加尾随逗号来触发这个格式化。如果你重构代码,将函数名改短,或者把参数替换为更短的名称,那么多行格式可能就不再必要了——但 `zig fmt` 不会自动帮你切换回单行格式,因为它会把尾随逗号视为"保持多行"的明确指令。 ## 解决方案 解决方案是让 `zig fmt` 基于行长度自动决定使用单行还是多行格式。具体来说:如果一个表达式能放在一行内(不超过某个长度限制,比如 100 个字符),就使用单行格式;否则,使用多行格式。 这正是 `prettier` 的工作方式,也是大多数现代格式化工具所采用的方案。 这意味着尾随逗号将不再具有语义上的格式化含义。你可以写: ```zig const x = foo(1, 2, 3,); ``` `zig fmt` 会根据行长度自动决定使用哪种格式,而不是盲目地遵循尾随逗号的指示。 ## 争议点 这项改动之所以有争议,主要有以下几个原因: **1. 人们习惯了现有的行为** 很多 Zig 开发者已经习惯于用尾随逗号来控制格式化。改变这一行为会打破他们的工作流程。 **2. 基于行长度的格式化可能产生令人惊讶的结果** 当你重命名一个变量,导致某行超过了长度限制,整个表达式的格式可能会突然从单行变成多行。这种"蝴蝶效应"可能让人感到困惑。 **3. 需要确定合适的行长度限制** 100 个字符?80 个字符?这本身也是一个需要决策的问题,尽管它只是一次性的决策,而不是每次写代码都要面对的决策。 ## 结论 尽管存在争议,我认为基于行长度的自动格式化是正确的方向。它让 `zig fmt` 真正成为一个固执己见的格式化工具,消除了用户需要做出的格式化决策,并确保代码在重构后始终保持最优的格式。 这与 Zig 语言的整体设计哲学是一致的:减少不必要的复杂性,让工具为开发者做出明智的决策,从而让开发者能够专注于真正重要的事情。

Lobsters Hottest ↗ · 2026-05-09 缓存

# 两个让 `zig fmt` 更好用的技巧 Zig 配备了一个内置的代码格式化工具 `zig fmt`。与其他语言的格式化工具不同,`zig fmt` 是"可操控的"——某些语法结构会影响格式化的输出结果。本文将介绍两个实用技巧。 ## 技巧一:尾随逗号控制布局 `zig fmt` 会根据是否存在尾随逗号来决定参数的排列方式。 **没有尾随逗号**时,格式化工具会尝试将所有参数放在同一行: ```zig const result = myFunction(argument1, argument2, argument3); ``` **有尾随逗号**时,格式化工具会将每个参数单独放在一行: ```zig const result = myFunction( argument1, argument2, argument3, ); ``` 这个规则同样适用于函数定义的参数列表、结构体字段、枚举变体等场景。 ```zig // 单行:无尾随逗号 const Point = struct { x: f32, y: f32 }; // 多行:有尾随逗号 const Point = struct { x: f32, y: f32, }; ``` 这意味着你可以通过添加或删除尾随逗号来主动控制格式化的输出,而不必与格式化工具"博弈"。想要多行展示?加上尾随逗号。想要单行展示?去掉它。 同样的逻辑也适用于换行符。如果你在参数之间手动添加了换行符,`zig fmt` 会尊重这个选择并保留多行格式——前提是同时带有尾随逗号。 ## 技巧二:数组的列式格式化 对于数值数组,`zig fmt` 支持一种特殊的列式格式化方式,非常适合用来表示矩阵或表格数据。 只需在数组元素之间手动插入换行符,`zig fmt` 就会将数据对齐成整洁的列式布局: ```zig // 格式化前(你写的) const matrix = [_]f32{ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, }; ``` ```zig // 格式化后(zig fmt 输出) const matrix = [_]f32{ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, }; ``` `zig fmt` 会识别出你在每行放置了相同数量的元素,并将各列对齐,使代码更具可读性。这对于表示变换矩阵、查找表或任何具有内在行列结构的数据来说极为方便。 ```zig // 一个更直观的例子:查找表 const sine_table = [_]f32{ 0.000, 0.174, 0.342, 0.500, 0.643, 0.766, 0.866, 0.940, 0.985, 1.000, 0.985, 0.940, 0.866, 0.766, 0.643, 0.500, }; ``` ## 小结 `zig fmt` 的"可操控"设计哲学让格式化工具成为你的合作伙伴,而不是独裁者: - **尾随逗号** → 强制多行展开 - **无尾随逗号** → 允许单行折叠 - **手动换行 + 统一列数** → 触发列式对齐 掌握这两个技巧,你就能在享受自动格式化便利的同时,保留对代码视觉呈现的精确控制。

0 人收藏 0 人点赞
#developer-experience

从 Supabase 到 Clerk 再到 Better Auth

Lobsters Hottest ↗ · 2026-05-08 缓存

Val Town 分享了其从 Supabase 迁移到 Clerk 最终迁移至 Better Auth 的身份验证基础设施经历。文章重点指出了 Clerk 在速率限制和架构方面的技术挑战,并反对将复杂应用的用户管理交给第三方服务。

0 人收藏 0 人点赞
#developer-experience

还有人觉得AI基准测试在预测实际性能方面越来越没用了吗?

Reddit r/ArtificialInteligence ↗ · 2026-05-07

本文讨论了AI基准测试高分与实际真实表现之间日益扩大的差距,重点强调了诸如一致性、延迟和上下文处理等问题。

0 人收藏 0 人点赞
#developer-experience

感觉AI正在进入其“基础设施问题”阶段

Reddit r/artificial ↗ · 2026-05-07

文章强调了AI行业的一个转变,焦点正从单纯的模型基准性能转向延迟、编排和成本效率等基础设施挑战。这表明AI正成熟为一个系统问题,实际体验变得比原始模型能力更重要。

0 人收藏 0 人点赞
#developer-experience

我们是否在浪费时间基于开源模型构建企业代理?(我对Ling 1T 2.6的经验)

Reddit r/AI_Agents ↗ · 2026-05-07

一位企业代理开发者讨论了使用像Ling 1T 2.6这样的开源模型的权衡,强调了相比于专有API,优化和基准测试的高昂开销。

0 人收藏 0 人点赞
#developer-experience

Ghostty 即将离开 GitHub

Mitchell Hashimoto ↗ · 2026-04-28 缓存

Mitchell Hashimoto 宣布,由于持续的中断和挫败感,Ghostty 终端模拟器项目将离开 GitHub,此前他已有18年日常使用经历。

0 人收藏 0 人点赞
#developer-experience

我对Prolog的不满

Hillel Wayne — Computer Things ↗ · 2026-01-14 缓存

Hillel Wayne的一篇博文,详细讲述了他对Prolog编程语言的不满,包括字符串问题、缺乏函数、数据类型有限以及cut操作等。

0 人收藏 0 人点赞
← Previous
← 返回首页

提交意见反馈