使用重写操作向注释添加参数
在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。
Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
预定一个演示Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。


在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。

在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。

点击下面的链接,下载本资料的 PDF 文件。
Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
查看报告预定一个演示Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。
在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。
目录
Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
预定一个演示下载资源
安全技能基准测试:简化企业安全设计
寻找有关 "按设计确保安全 "计划成功与否的有意义的数据是众所周知的难题。首席信息安全官(CISO)在试图证明投资回报率(ROI)和安全计划活动在人员和公司层面上的商业价值时,往往会面临挑战。更不用说,企业要深入了解自己的组织是如何以当前的行业标准为基准的,更是难上加难。美国总统的《国家网络安全战略》向利益相关者提出了 "通过设计实现安全和弹性 "的挑战。让 "按设计保证安全 "计划发挥作用的关键不仅在于为开发人员提供确保代码安全的技能,还在于向监管机构保证这些技能已经到位。在本演讲中,我们将分享大量定性和定量数据,这些数据来自多个主要来源,包括从超过 25 万名开发人员那里收集的内部数据点、数据驱动的客户洞察力以及公共研究。利用这些数据点的汇总,我们旨在传达一个跨多个垂直领域的 "按设计保证安全 "计划的现状。报告详细阐述了这一领域目前未得到充分利用的原因、成功的技能提升计划对降低网络安全风险的重大影响,以及消除代码库中各类漏洞的潜力。