ACM Queue 技术杂志

ACM Queue — ACM 面向资深工程师的软件工程实践期刊。

软件工程与生成式AI的八大迷思

微软研究团队基于大规模数据,系统拆解了生成式AI在软件工程中的八个常见迷思。开发者实际编码时间仅占14%,AI提升编码速度对整体生产力影响有限;代码行数不是有效指标,反而可能激励刷量行为;AI对不同任务和工程师效果差异显著,有经验开发者使用AI反而平均增加18%实现时间;企业受合规、遗留系统和可靠性约束,无法像初创公司那样快速创新。研究认为,AI生产力提升需要组织层面重新设计工作流程,而非仅给工程师发放工具许可。
评论点赞收藏11 天前

根基从何而来?AI 时代的工程能力培养路径

AI 能提升效率,但不能替代工程师的判断力根基。波士顿大学教授 Ed Solovey 在 Digits 公司的实习项目中发现,直接让新人使用 AI 工具会导致产出泛滥但理解缺失。他提出三阶段渐进式上手:先手动编码建立词汇表,再用 AI 作为导师构建心智模型,最后才进入 AI 协同阶段。文章强调评估体系必须考核“输出无法证明”的能力——如问题拆解、系统解释和设计辩护,而非仅看最终成果。这对高校课程改革和企业新人培训都有实操参考价值。
评论点赞收藏18 天前

不要“赢”,要解决冲突

ACM Queue 专栏作者 Kate Matsudaira 分享职场冲突处理经验。核心观点是放弃“赢”的心态,转而寻求共识与推进项目。建议包括:寻找共同目标、控制情绪避免爆发、聚焦事实而非主观臆断、复述对方观点以确认理解,以及坚持到底直到达成结论。文章强调在技术决策中,对齐和妥协比证明谁对谁错更重要,这是成熟工程师和管理者的关键软技能。
评论点赞收藏23 天前

学会放手:何时该切断对工作的过度情感依恋

资深技术领袖 Kate Matsudaira 结合自身及微软、亚马逊等大厂管理经验,探讨工程师如何克服对代码和项目的“情感依恋”。文章指出过度投入会导致沉没成本谬误和非理性决策,并给出六条管理策略:对齐目标、保持开放、询问故事而非方案、认可经验并提出新解读、寻求第三方帮助以及练习同理心。内容偏向软技能与团队管理,适合处于技术管理岗位或面临跨团队协作冲突的读者。
评论点赞收藏23 天前

再见,感谢所有的“ bikeshed ”(闲谈)

FreeBSD 核心开发者 Poul-Henning Kamp 宣布告别 ACM Queue 专栏,并抛出关于 FOSS 未来的激进预测:他认为在年龄验证和数字主权压力下,FOSS 将走向终结。文章指出,LLM 代码审查只是短暂泡沫,但强制合规将迫使软件转向“可信计算平台”和签名机制,导致开源维护者从个人转向公司委员会,最终形成类似 App Store 的围墙花园模式。
评论点赞收藏28 天前

手动操作就是Bug:迈向全自动化的四步法

Sysadmin专家Thomas Limoncelli提出“手动操作即Bug”理念,主张将每次手动执行视为自动化迭代的机会。文章详细拆解了从文档记录、命令行片段到脚本及自助系统的四阶段演进路径,强调通过持续改进降低团队认知负荷与单点故障风险。对于长期被重复性工作困扰的运维和后端工程师,提供了极具实操性的工程化思维框架。
评论点赞收藏31 天前

网关外的野蛮人:高频交易与交易所技术内幕

前高频交易员详解HFT底层技术栈,从微秒级延迟优化、FPGA硬件加速到交易所网络架构。文中包含大量工程细节,如实时内核绕过、交换机定制代码及排队论在撮合中的应用,揭示了自动化交易如何逼近物理极限。
评论点赞收藏35 天前

你对形式化验证一无所知

文章以权限系统漏洞为例,说明传统测试无法覆盖所有边界情况,而形式化验证能确保代码逻辑绝对正确。 作者认为随着大模型能自动生成证明,形式化验证的成本大幅降低,正从航空芯片领域走向主流软件开发。
评论点赞收藏47 天前

跨语言互操作性面临的挑战

本文深入分析了不同编程语言之间进行互操作时面临的核心技术挑战。 作者从对象模型差异、内存管理模型冲突、异常处理机制的不兼容以及函数式与命令式语言的副作用问题等多个维度, 详细阐述了跨语言调用的复杂性。 文章特别指出了现代硬件异构化和软件复杂度提升背景下,单一语言难以覆盖所有场景的现状。通过对比C++、Java、Smalltalk、Objective-C等语言的具体实现案例,揭示了在对象继承、垃圾回收确定性、异常传播及并行模型等方面存在的深层矛盾与工程难题。
评论点赞收藏81 天前

注释比代码更重要

Jef Raskin 指出代码无法自文档化,自动文档生成器也无效。他强调注释应解释“为什么”而非“是什么”,主张先写文档再编码。 这一观点挑战了“自文档化代码”和极限编程的主流理念。虽然文章发表于2005年,但其关于维护成本和工程严谨性的论述依然具有强烈的现实意义。
评论点赞收藏92 天前

AI原生开发者:重构工作、身份与技艺的未来

微软研究院基于大规模调研,揭示开发者虽使用AI却感到工作意义下降。研究发现开发者并非抗拒AI,而是保护具有身份认同的核心工作。 文章提出开发者正向“代码创意总监”转型,通过愿景、指挥和验证来管理AI代理。同时探讨了中级开发者的技能退化焦虑及初级工程师的培养难题。
评论点赞收藏92 天前

开源与冰山理论:为何“依赖管理”已不够

文章以冰山理论比喻开源依赖风险,指出企业过度依赖看不见的底层代码。通过 Log4j 等案例说明维护者倦怠和漏洞带来的系统性危机。 Bloomberg 分享了其应对策略,包括建立安全基线、评估社区健康指标,以及通过长期投入支持 pandas 等项目,强调从被动修补转向主动维持开源生态健康。
评论点赞收藏114 天前

迷失在开源集市的一代:质量源于责任

FreeBSD 核心开发者 Poul-Henning Kamp 批评开源“集市”模式导致软件质量下降。他以 FreeBSD 端口集为例,指出过度模块化造成依赖混乱和代码重复。 他认为 Unix 的衰落源于缺乏单一责任人,呼吁回归精心设计的“大教堂”模式,强调质量需要专人负责。
评论点赞收藏115 天前

KV 的叛道:信仰式计算与人工科学

Kode Vicious 专栏作家 George Neville-Niel 批评当前 AI 开发中的“信仰式”狂热。他认为编程是理解系统构建逻辑的工程科学,而非盲目依赖 LLM 生成代码。 文章强调开发者必须保持怀疑精神,深入理解代码原理,警惕因过度使用 AI 工具而产生的“认知债务”和代码质量下降风险。
评论点赞收藏120 天前

程序状态的演变:为何未定义行为是软件安全的终极噩梦

Paul Vixie 从程序状态定义的角度重新审视软件安全,认为未定义状态是许多漏洞的根源。文章详细分析了 C 语言指针、内存管理及 POSIX 命令执行中的隐患。 他主张在无法彻底重写旧代码的现实下,应利用现代静态分析工具来检测并阻断程序进入未定义状态,以此作为提升整体软件安全性的务实路径。
评论点赞收藏132 天前

太空相机飞行软件的极简设计

作者基于三十多年控制航天相机飞行软件的经验,主张在嵌入式系统中采用极简主义设计。 文章指出,通过减少中断、使用单线程轮询和固定内存分配,可以显著降低复杂度和故障率。 文中详细分析了火星观察者号因动态内存导致崩溃的反面案例,以及火星科学实验室和月球勘测轨道飞行器上极简代码成功运行十余年的正面案例。
评论点赞收藏178 天前

与Alan Kay的对话:编程语言兴衰与软件工程的反思

图灵奖得主Alan Kay回顾编程语言发展史,批评现代软件像埃及金字塔般缺乏结构完整性。 他认为Java等主流语言仅是短期填补需求的产物,缺乏真正的元系统和可扩展性。 Kay指出计算机科学教育已退化为职业培训,并强调早期绑定语言限制了重构能力。他主张软件应有半衰期,过时的代码应自动淘汰,以解决技术债务问题。
评论点赞收藏181 天前

“网络是可靠的”?一份关于现实通信故障的非正式调查

本文通过微软、谷歌、亚马逊等大厂的实际案例,调查了分布式系统中网络故障的真实发生频率和影响。文章指出网络分区并非理论假设,而是频繁发生的现实问题。 这些案例揭示了冗余设计也可能失效,以及配置错误和固件缺陷带来的严重后果。
评论点赞收藏188 天前

SRE 的本质是反事务性

本文阐述了 SRE 的核心理念:反对事务性工作(Toil),主张通过自动化消除重复劳动。 文章定义了手动、自动和自主系统的区别,并指出 SRE 的目标是将工作从人工执行转变为系统自主运行。 作者以集群构建和鼠标分发为例,说明如何通过 API 接口替代工单流程,实现跨部门协作的自动化。文章建议非 SRE 团队应提供 API 而非人工请求,以减少摩擦并提升效率。
评论点赞收藏202 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。