什么是Sensei ?

发表于2020年10月8日
作者:Alan Richardson
案例研究

什么是Sensei ?

发表于2020年10月8日
作者:Alan Richardson
查看资源
查看资源

Sensei 插件提供了一种简单的方法,可以在你的源代码中找到特定的代码模式,然后应用重写规则来修正匹配的代码。所有这些都是在Intellij IDE中进行的,并且是实时的。

例如,你可以创建一个规则,对没有理由的JUnit `@Disabled`注释进行匹配,然后Sensei ,通过在IDE中突出显示代码来告诉你这个问题。

此外,当你 "alt+enter "时,你可以选择 "添加一个todo注释参数"。

选择后,这将修改代码,添加一个模板原因,然后你可以修改,如果你不修改,它将显示在你的TODO面板上。

例如,`@Disabled`会变成`@Disabled("TODO: add a description here")`。

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

IntelliJ的意图行动

根据上述描述,明显的替代方法(如果你没有使用Sensei )是使用IntelliJ的Intention Actions功能。

Sensei 与 IntelliJ Intention Actions 不同,因为Sensei 的目的是提供一种创建匹配器和改写器的方法,这些匹配器和改写器是针对项目的,甚至是针对个别开发者的。

我们已经试图把一个GUI放在一起,使匹配和重写规则都易于编写和实验。

它如何能帮助我个人提高?

当我在学习一个新的图书馆时,我需要时间来建立围绕方法和格式的肌肉记忆。因此,我可能会选择创建个人食谱,其中包括

  • 链接到官方文档或教程页面
  • 有最有效的模板
  • 修复不良的编码实践
  • 添加模板代码以帮助使用一个库

我可以使用Sensei ,建立临时食谱,提示我当前选择的做法,帮助我建立有效的习惯。而这些食谱是临时性的,因为当我超越它们时,我可以将它们删除。

它如何能帮助我的团队提高?

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

创建食谱,当我们在拉动请求审查中发现相同的评论时,我们会应用这些食谱。由于这些食谱与项目一起存储在版本控制中,因此项目中的每个人都可以使用它们。而且当我们不再需要提示时,我们可以关闭它们。

Sensei 帮助早期提供反馈

我们试图通过Sensei 建立的是一种帮助我们改进的反馈方式,并尽可能早地在编码过程中提醒纠正措施。

与其等待

  • 静态分析器的结果
  • 代码审查的评论

我们反而可以看到反馈,对于我们想要执行的自定义标准,在我们编码的时候。

我们有一些提醒,或者实际的重写规则,来帮助我们写出符合标准的代码。

Sensei 是灵活的

从这个角度来看,Sensei ,因为它是一个混合体。

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

Sensei 足够灵活,使说 "什么是Sensei ?"的工作变得有点困难。

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

我们试图让Sensei ,成为程序员工作流程中缺失的部分,帮助你改善你和你的团队目前正在进行的编码风格,或库使用中的特定元素。

这种灵活性意味着,与静态分析工具或内置的IntelliJ Intentions相比,掌握Sensei ,需要更多的时间。尽管如此,通过花时间进行实验,你将获得一种新的方法来加速你在个人开发过程中的学习。

如何进行实验?

一旦你从[Intellij Marketplace]下载并安装了Sensei 。

让Sensei ,最简单的方法是看看你的编码过程并考虑。

  • 你一直在查找什么文件?
    -- 你可以添加一些链接到该文件的Sensei 食谱。
  • 你一直在犯什么简单的错误?
    -- 你可以暂时把这种糟糕的编码模式编成一个匹配器,然后写一个快速修复重写,把代码修改成你真正想写的样子。
  • 你写什么模板代码来使用一个库?
    -- 你可以创建一个快速修复规则来为你写代码。

由于Sensei 被设计为与你正在使用的任何静态分析工具一起工作,如果你发现静态分析报告了同样的违规行为,那么你可以在Sensei 配方中复制该条件。然后,你可以添加一个快速修复,以帮助训练你,不仅仅是识别错误,而且还可以快速编写正确的代码

查看资源
查看资源

作者

艾伦-理查德森

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

什么是Sensei ?

发表于2020年10月8日
作者:Alan Richardson

Sensei 插件提供了一种简单的方法,可以在你的源代码中找到特定的代码模式,然后应用重写规则来修正匹配的代码。所有这些都是在Intellij IDE中进行的,并且是实时的。

例如,你可以创建一个规则,对没有理由的JUnit `@Disabled`注释进行匹配,然后Sensei ,通过在IDE中突出显示代码来告诉你这个问题。

此外,当你 "alt+enter "时,你可以选择 "添加一个todo注释参数"。

选择后,这将修改代码,添加一个模板原因,然后你可以修改,如果你不修改,它将显示在你的TODO面板上。

例如,`@Disabled`会变成`@Disabled("TODO: add a description here")`。

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

IntelliJ的意图行动

根据上述描述,明显的替代方法(如果你没有使用Sensei )是使用IntelliJ的Intention Actions功能。

Sensei 与 IntelliJ Intention Actions 不同,因为Sensei 的目的是提供一种创建匹配器和改写器的方法,这些匹配器和改写器是针对项目的,甚至是针对个别开发者的。

我们已经试图把一个GUI放在一起,使匹配和重写规则都易于编写和实验。

它如何能帮助我个人提高?

当我在学习一个新的图书馆时,我需要时间来建立围绕方法和格式的肌肉记忆。因此,我可能会选择创建个人食谱,其中包括

  • 链接到官方文档或教程页面
  • 有最有效的模板
  • 修复不良的编码实践
  • 添加模板代码以帮助使用一个库

我可以使用Sensei ,建立临时食谱,提示我当前选择的做法,帮助我建立有效的习惯。而这些食谱是临时性的,因为当我超越它们时,我可以将它们删除。

它如何能帮助我的团队提高?

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

创建食谱,当我们在拉动请求审查中发现相同的评论时,我们会应用这些食谱。由于这些食谱与项目一起存储在版本控制中,因此项目中的每个人都可以使用它们。而且当我们不再需要提示时,我们可以关闭它们。

Sensei 帮助早期提供反馈

我们试图通过Sensei 建立的是一种帮助我们改进的反馈方式,并尽可能早地在编码过程中提醒纠正措施。

与其等待

  • 静态分析器的结果
  • 代码审查的评论

我们反而可以看到反馈,对于我们想要执行的自定义标准,在我们编码的时候。

我们有一些提醒,或者实际的重写规则,来帮助我们写出符合标准的代码。

Sensei 是灵活的

从这个角度来看,Sensei ,因为它是一个混合体。

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

Sensei 足够灵活,使说 "什么是Sensei ?"的工作变得有点困难。

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

我们试图让Sensei ,成为程序员工作流程中缺失的部分,帮助你改善你和你的团队目前正在进行的编码风格,或库使用中的特定元素。

这种灵活性意味着,与静态分析工具或内置的IntelliJ Intentions相比,掌握Sensei ,需要更多的时间。尽管如此,通过花时间进行实验,你将获得一种新的方法来加速你在个人开发过程中的学习。

如何进行实验?

一旦你从[Intellij Marketplace]下载并安装了Sensei 。

让Sensei ,最简单的方法是看看你的编码过程并考虑。

  • 你一直在查找什么文件?
    -- 你可以添加一些链接到该文件的Sensei 食谱。
  • 你一直在犯什么简单的错误?
    -- 你可以暂时把这种糟糕的编码模式编成一个匹配器,然后写一个快速修复重写,把代码修改成你真正想写的样子。
  • 你写什么模板代码来使用一个库?
    -- 你可以创建一个快速修复规则来为你写代码。

由于Sensei 被设计为与你正在使用的任何静态分析工具一起工作,如果你发现静态分析报告了同样的违规行为,那么你可以在Sensei 配方中复制该条件。然后,你可以添加一个快速修复,以帮助训练你,不仅仅是识别错误,而且还可以快速编写正确的代码

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。