博客

Sensei 是什么?

October 8, 2020
Alan Richardson
文字叠加显示“使用 Sensei 精通安全编码”,背景为双手在笔记本电脑上打字,屏幕显示代码。

Sensei 插件提供了一种简便的方法,可在源代码中查找特定的代码模式,并应用重写规则来修改匹配的代码。所有操作均在 IntelliJ IDE 中实时完成。

‍

‍

例如,您可以创建一个规则来匹配没有原因说明的 JUnit `@Disabled` 注解,Sensei 会通过在 IDE 中高亮显示代码来提醒您注意该问题。

此外,当您按下 `alt+enter` 时,可以选择 `Add a todo comment parameter`(添加待办事项注释参数)。

选中后,代码将被修改并添加一个样板原因说明,您可以对其进行编辑;如果不编辑,它将显示在您的 TODO 面板中。

例如,`@Disabled` 将变为 `@Disabled("TODO: add a description here")`

Sensei 将静态分析代码扫描器的功能与代码重写引擎相结合。

IntelliJ 意图操作 (Intention Actions)

根据上述描述,显而易见的替代方案(如果您不使用 Sensei)是使用 IntelliJ 的意图操作功能。

Sensei 与 IntelliJ 意图操作的不同之处在于,Sensei 旨在提供一种创建项目特定甚至是个体开发者本地专用的匹配器和重写器的方法。

我们尝试构建了一个图形用户界面 (GUI),使匹配和重写规则的编写与实验变得简单易行。

User interface showing recipe settings with annotation search and Java code snippet using @Disabled.

它如何帮助我个人提升?

在学习新库时,我需要时间来建立对方法和格式的肌肉记忆。因此,我可能会选择创建个人方案,用于

  • 链接到官方文档或教程页面
  • 提供最有效的样板模板
  • 修复不良编码习惯
  • 添加样板代码以辅助库的使用

我可以使用 Sensei 构建临时方案,提示我采用当前选择的实践,并帮助我养成有效的习惯。这些方案是临时的,因为当我不再需要它们时,可以将它们移除。

它如何帮助我的团队提升?

同样,我们可以帮助团队围绕商定的编码标准建立肌肉记忆。

通过创建方案手册,当我们发现拉取请求 (PR) 评审中出现重复的注释时,即可应用这些方案。由于方案手册与项目一起存储在版本控制中,项目中的每个人都可以使用它们。当我们不再需要提示时,还可以将其关闭。

Sensei 有助于尽早提供反馈

我们开发 Sensei 的初衷,是希望在编码过程中尽早获取改进建议和纠错提醒。

与其等待

  • 静态分析结果
  • 代码审查意见

我们可以在编码时直接看到针对自定义标准的反馈。

通过提醒或自动重写规则,帮助我们编写符合标准的代码。

Sensei 非常灵活

正因如此,Sensei 兼具多种特性:

  • 部分静态分析器
  • 编码导师
  • 重写引擎

Sensei 的灵活性让“Sensei 是什么”这个问题变得有些难以定义。

Sensei 填补了编程工作流中的空白

我们致力于让 Sensei 成为程序员工作流中缺失的一环,帮助你改进团队当前使用的编码风格或库的特定用法。

这种灵活性意味着上手 Sensei 比使用静态分析工具或 IntelliJ 内置的 Intentions 需要更多时间。但通过实践,你将找到一种加速个人成长的新方法。

如何进行实践?

下载并安装 Sensei 后,请访问 [Intellij Marketplace]

让 Sensei 发挥作用的最简单方法是审视你的编码过程,并思考:

  • 你经常查阅哪些文档?
    -- 你可以添加一些指向这些文档的 Sensei 配方。
  • 你总是犯哪些简单错误?
    -- 你可以将这些不良模式定义为匹配器,并编写快速修复规则来自动修正代码。
  • 使用库时,你编写了哪些样板代码?
    -- 你可以创建快速修复规则来自动生成这些代码。

Sensei 可与任何静态分析工具配合使用。如果静态分析频繁报告相同违规,你可以将其条件复制到 Sensei 配方中,并添加快速修复功能,不仅能识别错误,还能助你快速写出正确的代码。

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。