5种阿里常用代码检测推荐 | 阿里巴巴DevOps实践指南_阿里 代码评分-程序员宅基地

技术标签: 云原生  阿里云  代码检测  阿里巴巴DevOps实践指南  devops  Codeup  

简介: 随着业务演进和团队扩张,软件规模和调用链路越来越复杂。如若没有良好的代码检测机制,只依靠功能性验证,团队技术债会越累越高,开发团队往往要花费大量的时间和精力发现并修改代码缺陷,最终拖垮迭代进度、协作效率,甚至引发严重的安全问题。

本文作者: 喻阳,阿里云云效算法专家

文章出处:阿里巴巴DevOps实践指南(指南下载:https://developer.aliyun.com/topic/devops

在日常研发过程中,我们通常面临的代码资产问题主要分为两大类:代码质量问题和代码安全漏洞。

代码质量问题

代码质量其实是一个老生常谈的话题,但问题是大家都知道它很重要,却又不知道如何去提升和维护这一团队的共同财产。一方面开发人员可能为了功能及时上线,疏忽了对质量的把控,另一方面开发人员编码习惯和程序理解风格各异。长期下来代码质量下降通常会自成因果,因为业务压力大而趋于下降,又因此开发效率下降,进一步加大业务压力,导致恶性循环。

代码安全问题

安全类问题往往隐藏在缺乏安全意识的编码逻辑和未经检测或维护的开源依赖组件中,难以在日常开发和代码评审中被及时察觉。

代码安全问题也可以分两个方面进行分析:

  1. 编码安全问题,即:安全规范类问题,通过避免不符合规范的代码进入企业代码库,减少隐私数据泄露、注入类风险、安全策略漏洞的出现。

  2. 依赖安全问题,即:开源依赖三方组件引入的安全漏洞。根据 Synopsys 2020 开源安全报告显示,99%以上的组织使用了开源技术。使用开源组件本身带来的技术交流和站在巨人肩膀上协作、降低开发成本、加快迭代周期、提高软件质量等优势已经不必赘述,但是,开源软件带来一系列便利的同时,也暗藏大量安全风险,据审计,75%的代码库存在安全漏洞,其中 49%包含高危问题,另外 82%的代码库仍在使用超过 4 年的 outdated 组件。

因此,代码安全类问题,一方面也需要进行准入性检查,根据业务场景和规范配置安全编码规范检测和卡点。另一方面需要定期维护,对于新爆发出的安全漏洞进行及时察觉并修复。

解决方案

代码质量检测

工具1:Java 代码规约检测

阿里巴巴在实践过程中,各个组织由于历史隔阂和业务风格差异,工程结构差别很大,代码风格迥异,规范不一,沟通成本大,合作效率低,维护成本高。集团发展到现在的规模,需要专业化的技术集团军迭代式、集约式发展,而不是动辄重复造轮,而真正专业化的团队一定会有统一的开发规约,这代表效率、共鸣、情怀、可持续。

基于上述背景,阿里制定了《阿里巴巴 Java 开发手册》,作为阿里内部 Java 工程师所

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/BYvonne/article/details/122585199

智能推荐

创建一个conda环境及将其用于复现别人代码的全过程以及遇到的问题_如何创建别人论文的代码依赖项的conda环境-程序员宅基地

文章浏览阅读3k次,点赞12次,收藏59次。用于小白复现别人论文的代码condawin+r,输入cmd进入命令行,输入conda的情况下出现'conda' 不是内部或外部命令,也不是可运行的程序 或批处理文件。如何用conda查看,创建,切换,管理环境1.查看环境2.创建环境3.切换环境4.管理环境5.删除环境6.环境克隆使用我们搭建的环境来复现别人的代码复现别人代码7.如何安装不同位的Pythonanaconda的安装我就不说了,有很多的教程。主要是第一次跑代码时发现,有时候复现别人的代码会出现一会去安装环境,一会儿去安装环境,conda一个很_如何创建别人论文的代码依赖项的conda环境

Stars POJ - 2352 二维偏序问题CDQ分治_树状数组二维偏序-程序员宅基地

文章浏览阅读246次。Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that are not higher and ..._树状数组二维偏序

CS229 吴恩达机器学习 习题大作业答案 problem sets 04 PS04(第6题,欢迎指教)强化学习 Reinforcement Learning MDP 马尔可夫决策_cs229 吴恩达机器学习 习题答案-程序员宅基地

文章浏览阅读1.1k次。6. Reinforcement Learning: The inverted pendulum首先写出simulator(作业中已提供,直接复制过来):import matplotlib.pyplot as pltimport matplotlib.patches as patchesfrom math import sin, cos, piclass CartPole: def __init__(self, physics): self.physics = physi_cs229 吴恩达机器学习 习题答案

在FPGA中实施PCI Express桥接解决方案-程序员宅基地

文章浏览阅读378次。关注、星标公众号,精彩内容每日送达来源:网络素材点击上方蓝字关注我们! 使用 FPGA 的优势之一是能够实施经过验证的知识产权,以快速、自信地完成桥接功能。看看一个常见但复杂的接口PCI Express,就可以证明这些好处。 与其前身外围组件互连 (PCI) 一样,PCI Express (PCIe) 正在成为一种无处不在的系统接口。与 PCI 不同,PCIe 采用 SERDES 接..._pcie桥接芯片模块

【Java面试题】unity和java就业前景_java unity 就业-程序员宅基地

文章浏览阅读253次。分布式锁的坑高并发场景下的问题以下问题不是说在并发不高的场景下不容易出现,只是在高并发场景下出现的概率更高些而已。性能问题来自于以下两方面:**①获取锁的时间上。**如果 Redlock 运用在高并发的场景下,存在 N 个 Master 节点,一个一个去请求,耗时会比较长,从而影响性能。这个好解决,通过上面描述不难发现,从多个节点获取锁的操作并不是一个同步操作,可以是异步操作,这样可以多个节点同时获取。即使是并行处理的,还是得预估好获取锁的时间,保证锁的 TTL>获取锁的时间+任务处理时间_java unity 就业

GBase 8s V8.8 SQL 指南:教程-9.5.1_gbase prepare from-程序员宅基地

文章浏览阅读185次。9.5.1 准备语句在形式上,动态 SQL 语句像任何其他写入程序的 SQL 语句一样,除了它不可包含任何主变量的名称之外。准备好的 SQL 语句有两个限制。首先,如果它是 SELECT 语句,则它不可包括INTO variable 子句。INTO variable 子句指定将列数据放入其内的主变量,而不允许在准备好的对象的文本中使用主变量。其次,不论主变量的名称通常出现在表达式中的任何位置,都将问号(?)写作 PREPARE 语句中的占位符。仅 PREPARE 语句可指定问号(?)占位符。._gbase prepare from

随便推点

基于贝塞尔曲线的变道轨迹规划_贝塞尔曲线 自动紧急换道-程序员宅基地

文章浏览阅读9k次,点赞14次,收藏118次。基于贝塞尔曲线的变道轨迹规划车辆的换道与超车是驾驶员常见的驾驶操作之一,无人驾驶车辆在行驶过程中也会频繁的面临此工况,车辆行驶过程中必须根据行驶环境中车车之间的相对速度与距离,以及车辆周边其他环境的变化信息,相应做出调整进而完成驾驶要求。在这个过程中,车辆必须对安全换道和超车的通过性做出准确评估,从而使车辆安全的运行。因此,无人车的轨迹规划是保证车辆安全行驶的重要组成部分。..._贝塞尔曲线 自动紧急换道

fedora14 15 16 apache mysql php yum安装_fedora 15如何安装zlib-程序员宅基地

文章浏览阅读714次。fedora14 15 16 apache mysql php yum安装2010年06月26日 星期六 10:14LAMP是Linux, Apache, MySQL, PHP的缩写.这篇教程将教你如何在一台Fedora 服务器上安装Apache2web服务器+PHP(mod_php) +MySQL .我已经测试无误,你可以放心使用。1. 前言_fedora 15如何安装zlib

推荐10个AI人工智能技术网站_ai网站-程序员宅基地

文章浏览阅读1.4w次。AI World的主题包括AI技术、AI应用、AI实践和AI商业。AI Trends (https://www.aitrends.com/) 是一个专注于人工智能领域的网站,它提供了最新的AI技术和应用趋势的报道和分析。AI News(https://www.ainewsletter.com/)是一家专注于人工智能领域的新闻平台,它提供了最新的人工智能技术和应用方面的新闻报道、分析和评论。这些作者和专家对于人工智能技术的发展和应用有着深入的了解和研究,他们的文章和分析通常能够提供非常有价值的洞察和思考。_ai网站

探索Windows驱动程序开发:一个实践导向的学习资源-程序员宅基地

文章浏览阅读806次,点赞21次,收藏20次。探索Windows驱动程序开发:一个实践导向的学习资源项目地址:https://gitcode.com/nmgwddj/learn-windows-drivers在软件世界中,编写操作系统级别的驱动程序是一项高级且复杂的任务,但对于想要深入底层系统工作的开发者来说,这是一个至关重要的领域。Learn-Windows-Drivers 是一个专为学习和理解Windows驱动程序开发而设计的开源项目...

有关数组面试题解析_面试题 数组 震荡解决-程序员宅基地

文章浏览阅读126次。如何判断一个数组是数组arr instanceOf Arrayarr.constructor === ArrayObject.prototype.toString(arr) === “[object Array]”Array.isArray(arr)数组有那些方法之前总结过:JavaScript数组的有关方法截取数组arr.slice(ac,en)arr.split() /..._面试题 数组 震荡解决

命令行手动上传Jar包到Maven私服_命令行 执行jar包发布maven-程序员宅基地

文章浏览阅读1.8k次。做Java的同学经常会用到一些第三方Jar包,而有一些Jar包在Maven中央仓库中找不到。为了团队协作开发的方便,我们需要将这类Jar上传到公司的maven nexus私服上。除了下载源代码打包上传的方式以外,我们还可以通过maven命令将jar上传到maven私服。这种的好处是可以利用作者打好的包,在时间紧急甚至没有源代码的情况下,将Jar上传到Maven。只需要下面的命令就可以上传Jar..._命令行 执行jar包发布maven