代码静态检查为什么需要对规则去做运营?

举报
gentle_zhou 发表于 2023/12/23 22:34:08 2023/12/23
【摘要】 规则运营的目的是保证当前在线状态被使用的规则的有效性,可维护性和跟业务的适应性,以此来评估和提升规则的执行效果,达到增加用户粘性,促进用户活跃的效果。

代码检查SAST技术支持指对代码的风格,质量和安全进行静态的检查,以发现代码中的缺陷和漏洞,提高代码的可读性,可靠性和可维护性。而在代码检查服务内,规则作为重要的一部分,指的是检查工具使用的标准和准则,用来判断代码是否编写的符合预期要求;通常规则会包含描述信息,正确的以及错误的代码示例,修复建议,参考的规范等信息。看过我上一篇文章《代码静态检查为什么需要对告警去做运营?》的小伙伴一定觉得这些内容似曾眼熟,这是因为告警其实就是代码检查工具发现代码违反了相关规则之后产生的消息。它们两之间的关系类似于现实生活中的法律法条和实际罚单,规则就是代码检查世界里的法律法条,规定了哪些行为是合法的,哪些行为是违法的;而告警就是当某些代码违反了这些法律法条之后发出的罚单。因此这两者之间包含的内容确实会有一些共同的部分:因为什么法律法条被告警的,法条/罚单的名称、类型、级别、描述等等。

至于为什么要对规则去做运营呢?因为规则并非是一成不变的,规则已经演进到哪个版本,规则名称是否符合各式,规则的来源(是自研,吸纳开源,还是采购的商用),规则的类别是否合适(安全类,风格类,还是质量类),规则适用的范围(IDE插件就可以使用,还是要在代码仓门禁里,或则流水线版本级扫描时候使用合适),这些都是规则的使用者所关心的。再加上如果规则多了之后,部门及公司层面的质量管理部门可能想了解不同语言,不同引擎工具下当前还有多少有效规则,这些规则分别都是哪些部门和主体在负责。

什么是规则运营?

代码检查的规则运营是指对检查服务内的规则体系进行全面评估、运营的过程,包括规则的内容、被引用情况、维护状况的评估、优化和管理。规则运营的目的是保证当前在线状态被使用的规则的有效性,可维护性和跟业务的适应性,以此来评估和提升规则的执行效果,达到增加用户粘性,促进用户活跃的效果。

规则运营里,用户一般关注什么?

在规则运营里,用户一般会关注以下几个方面:

  • 规则的数量,以此来明确当前在线状态可以被使用的规则有多少条
  • 规则的语言、引擎工具种类、告警类别,以此来明确哪些规则适合应用于当前的业务场景(比如在Java项目中,想对某个模块进行编程风格类的扫描,选用JAVA语言,编程风格类的引擎、告警类别就是比较好的选择)
  • 规则的内容,如前面所说的,规则一般会包含描述信息,正确的以及错误的代码示例,修复建议,参考的规范等信息,我们可以通过确认这些信息是否缺失,关注规则内容是否合理,以此来明确规则的有效性
  • 规则的层级,比如是否属于公司或则产品线,部门推荐规则集内,以此来明确规则在集体使用场景的重要程度
  • 规则的维护层级和部门,以此来明确规则当前的主体是谁,遇到解决不了的问题或则明显的BUG时,可以向谁去求助
  • 规则的引用情况,被哪些部门、产品、工程引用了,以此来明确规则在实际运用过程中,都被哪些部门、工程所偏好,以此来明确规则的适用范围

关注规则运营的用户一般是包括哪几类?

一般关注告警运营的用户包括如下几种类型:

  • 规则的使用方,无论是个人开发者还是使用了这条规则的部门/产品线,都可以说是直接受规则影响的用户。作为使用方,他们需要遵守规则,在享受到规则引入所带来好处(可以提前识别到软件方面风险)的同时,也会承担使用这些规则的风险和责任。因此他们会很关注规则的有效性、合理性和其业务使用场景中的适应性。
  • 规则的责任主体,作为规则的制定者或则说是当前的维护主体,这部分人群对规则是负直接责任的。规则是否设计的合理,在被执行时是否被高频有效使用等,这都会关系到责任主体对规则的评估、优化和管理。
  • 代码检查服务的管理者或监督者,规则作为整体服务内关键的一部分,他们需要监督规则的使用情况。站在用户的角度,去评估规则,并做好用户问题反馈收集的工作;同时,作为规则和服务的OWNER或则主管,需要维护规则的合理性与透明性,让用户能用、会用并用好规则。

关注这些指标对于用户来说都有什么好处?

关注好规则各类指标信息,可以帮助用户及时识别和修复规则相关的问题。

比如规则的数量,可以帮助用户了解代码检查服务的覆盖面和覆盖深度。规则数量,并不是单纯的说越多就约好,或则越少就效率越高,而是需要根据项目的实际情况,选择合适的规则数量,避免过多的告警噪音或则告警漏报。

而其他的指标也一样有用:比如规则的种类,可以让用户根据检查的目的和范围,选择相对应分类的规则,以满足检查目标和标准。规则的维护层级,可以让用户明确相关的责任和权限。规则的引用情况则可以帮助用户评估规则使用范围,进而分析出其偏向的业务领域和场景。

综上所述,规则运营可以帮助用户评估规则的有效性,一致性,合理性,可维护性和适应性。

用户怎么分别去获取到各自关注的数据呢?

类似于告警运营维度,关注规则运营的用户会根据自身角色和关注侧重点的不同,选择相应的工具来分析和监控。

对于规则使用方,因为他们直面规则,日常经常和规则打交道,对于规则的内容、数量、有效性其实是非常关注的。在其使用的代码检查服务里,如果有一个明确的规则界面,让他可以看到当前规则详情和规则内容,再结合告警详情界面可以看到这些规则产生的告警详情,就非常有必要。

而对于规则责任主体和监督者,因为他们关注更高层面规则在公司,产品线,部门的整体使用情况。高level层面的指标,比如规则信息是否都齐全,规则的维护层级,规则引用情况,就是他们关注的重点,那么如果有一个专门的规则运营看板可以承载起这块的内容就是锦上添花了。

让我们来看一看华为云CodeArts Check代码检查本身自带的规则信息都有哪些?
1、规则界面
image.png

2、丰富的过滤指标
image.png

3、规则详情展示
image.png

4、规则集界面 及 告警界面和规则的联动
image.png

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。