Snyk 开发者体验的 5 条原则
Source: Dev.to
请提供您想要翻译的完整文本(除代码块和 URL 之外),我将为您翻译成简体中文并保留原有的格式。
对卓越开发者体验(DX)的需求
在 AI 驱动的开发时代,速度已成为新的基准。
随着 AI 代理加速编码速度,它们也会放大安全瓶颈的风险。
在 Snyk,我们相信卓越的 开发者体验(DX) 是确保这一新前沿安全的唯一途径。DX 不仅仅是产品之上的一层——它是让开发者能够安全释放 AI 创新的基础。
“DX 是一套随时间累积的决策系统。每一次交互、每一个默认设置以及开发者遇到的每一条信息,都会影响他们使用我们平台的效率。”
我们的五大指导原则
从我们不断发展和完善 Snyk 平台的旅程中形成的五项原则,现在成为提供卓越开发者体验(DX)的基础。这些原则持续指引我们在整个产品范围内做出的成千上万的小决策,彰显我们对这一持续过程的承诺。
(原则本身未在原文中列出;它们仍是底层框架的一部分。)
理解真实的开发者工作流
开发者工具中最常见的挑战是把“漂亮的仪表盘”当作首要目标。实践表明,开发者更看重他们多年来已经优化的现有工作流:
- IDE
- 终端
- Git 流程
- Pull‑request(PR)流程
上下文切换 会带来巨大的成本。
我们在 Snyk 的观察
- 我们构建了一个详细的发现界面,包含优先级漏洞列表、修复指南以及完整的数据流追踪。
- 开发者并没有访问它。
- 即使是最有价值的数据,如果需要进行上下文切换,也常常被绕过。
我们的响应
我们不再要求开发者来到 Snyk,而是 把 Snyk 带到他们身边:
- 安全发现成为 PR 对话的一部分。
- 发现直接在代码审查已经进行的 SCM 线程中呈现。
- 相同的信息。零上下文切换。
- 采用率显著提升。
从 IDE 到代理式开发环境
一个更广泛的转变正在从传统 IDE 向 代理式开发环境 进行。随着 AI 编码助手的高速推进,上下文切换成为更大的瓶颈,因为更高的代理生产力放大了中断工作流的成本。
- 随着代理平台成为开发者工作流的核心,Snyk 已经在这些环境中集成,以 在起始阶段确保 AI 生成代码的安全。
为开发者的思维模型设计安全发现
当我们在 PR 中设计安全发现时,我们针对开发者的思维模型进行了优化:
- CVSS 分数 或 CWE 分类 对安全专业人士有意义,但对开发者来说是需要翻译的行话。
我们的解决方案
我们展示了一个由 Snyk 自己的数据流分析生成的 上下文自然语言描述。
示例(SQL 注入):
“未经过消毒的用户输入来自 HTTP 请求体,直接插入到 SQL 查询字符串中,指出了来源、汇点以及在开发者代码中的机制。”
我们要回答的核心问题
“考虑到他们已经了解的内容,这位开发者此时需要理解什么?”
避免信息过载
安全工具往往会展示所有内容,虽然看起来很全面,却可能让人不堪重负。当我们审视自己的 PR 体验时,重新定义了问题:
到底哪些信息真正应该出现在开发者的视图中?
我们的审慎方法
- 预防: 开发者需要快速、可操作的指导。
- 修复: 开发者在降低风险时需要更深入的内容和多条路径。
- PR 背景: 每一条信息要么直接回答眼前的问题,要么提供明确的下一步操作。
在 PR 中,开发者的重点是交付功能;漏洞修复是次要的。这与待办事项(backlog)情境不同,后者的主要任务是解决问题。
渐进式展示
- 主要视图: 问题、严重程度以及下一步。
- 更深层次: 需要时提供额外上下文(例如数据流)。
这样可以保持体验 聚焦且无噪音。
重新思考成功指标
长期以来,安全工具通过它们发现了什么来衡量成功——发现的漏洞越多,工具就显得越完整。这个指标忽略了真正重要的东西:这些漏洞是否被修复。
- 大多数开发者不想仅仅得到警示;他们想知道接下来该怎么做。
- 没有明确后续步骤的漏洞报告只是一堆带有严重性评分的噪音,开发者出于理性会把它们当成噪声来对待。
关闭循环:在 PR 中直接提供修复建议
将修复建议直接嵌入 PR 体验的动机是为了 关闭循环:
- 识别漏洞。
- 以差异形式(红线删除,绿线新增)在 PR 中作为审查评论提出具体的 AI 生成修复。
- 通过一次操作(提交)应用修复。
优秀的开发者体验会告诉他们如何修复问题;卓越的开发者体验则让修复成为默认路径。
添加高信号解释
当我们推出建议修复时,反复听到:
“问题不在于 修复是否有效? 而在于 为什么这个修复有效?”
开发者在应用建议时,往往难以向同事解释其原理。修复解决了眼前的问题,却有时会引入其他问题。
我们的回应: 添加 纯英文解释,准确说明建议的更改为何能够消除漏洞——不是文档链接或 CVE 引用,而是基于代码细节的解释。
示例(SQL 注入):
解释将描述替换动态字符串的方式 … (原文在此处截断,保留原片段不变)。
Summary
- DX 是安全 AI 驱动开发的基础。
- 上下文很重要:将安全性融入开发者已有的工作流,尤其是 PR。
- 使用开发者的语言,提供自然语言、上下文相关的描述。
- 只展示当前所需的内容,并在需要时披露更深入的细节。
- 通过已修复的漏洞来衡量成功,而不仅仅是报告的发现。
- 让修复成为默认行为,提供 AI 生成的修复方案和明确、针对代码的解释。
interpolation with parameterized queries 确保用户输入被视为数据而非可执行代码,这一区分消除了漏洞。
这两个特性——建议的修复和其解释——相当于资深安全工程师与同事一起审查代码的方式:先确保他们理解问题,然后展示正确的做法。
信任来源于推理。每当 Snyk 解释其思路时,都会为开发者提供培养自身安全直觉的工具,这最终是最持久的成果。
这五条原则是在观察到问题、理解原因并调整方法后形成的。
出色的开发者体验需要这些能够指导产品、工程和设计中成千上万小决策的原则。随着 AI 与人类开发者合作日益紧密,这些原则确保安全成为顺风,而非阻力。在 Snyk,我们不断努力改进;每一次决策、每一次修复、每一次成功部署,都是前进的一步。
了解 Snyk 所构建的开发者体验如何加速您的项目。立即预约演示。