精华内容
下载资源
问答
  • 代码冗余检测工具
    2021-04-18 06:26:41

    冗余代码检测与处理使用工具Simian,使用方法:首先下载最新版本,并将文件解压;然后将simian所在的路径添加到windows环境变量path;接着将【simian-2.2.24.exe】文件名改成【simian.exe】,并运行即可。

    e4d46da692560fb83e6db2f301b9c809.png

    冗余代码检测与处理使用工具Simian,使用方法:

    到官方站点上下载最新的版本,下载完毕后,将文件解压,将simian所在的路径添加到windows环境变量path下,同时,将simian-2.2.24.exe的文件名改成simian.exe,这样方便我们的使用,simian是命令行工具,在cmd中运行simian即可:c:\>simian.exe [options] files

    下面介绍具体的使用方法:

    检查包括子目录下的所有的c#文件:"-includes=*.cs"

    检查当前目录下的所有c#文件 ,并且只检查代码3行以上重复的代码-threshold=3 "*.cs"

    检查所有的c#文件:"*.cs"

    使用命令行输出的话,对于代码的定位不是很方便,可以通过Visual Studio的外部工具想了解更多编程学习,敬请关注php培训栏目!

    更多相关内容
  • 冗余代码检测与分析

    2021-01-27 16:23:42
    代码冗余的原因多种多样,从未使用的变量到未完成的变更,再到废弃的代码; 冗余代码会产生一系列的影响,包括源代码臃肿、可靠性及可维护性降低。在某些情况下,死代码也会影响性能; 为了检测冗余代码,作者开发了...
  • 很好很强大的扫描工具,用于检测html代码冗余检测网页安全性。测试工程师必备之选。
  • 我们调研了市场上常用的iOS覆盖率检测工具,这些工具主要存在以下四个问题:第三方工具有时生成的检测报告文件会出错甚至会失败,开发者对覆盖率生成原理不了解,遇到这类问题容易弃用工具。第三方工具每次展示全量...
  • 好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,...

    好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目组成员快速做好 Back up。好的代码便于促进团队间交流合作提升开发效率。

    代码质量评价标准

    有编码经验的人对代码都有一定的“鉴赏力”,能够凭感觉给出代码好坏的主观评价。但是这种凭感觉的方式太过个性随意,所谓仁者见仁智者见智,很难达成共识,那有没有一种公认的标准来鉴定代码质量呢?

    答案是有的。这里简单分享当下较常用的评价标准,其中包括:编码规范、可读性、可维护性、重复度及可测试性。

    编码规范

    主要包含是否遵守了最佳实践和团队编码规范,是否包含可能出问题的代码,以及可能存在安全的漏洞。编码规范有助于提高团队内协助的效率以及代码的可维护性。

    可读性

    Code Review 是一个很好的测验代码可读性的手段。如果你的同事可以轻松地读懂你写的代码,那说明你的代码可读性很好;反之则说明你的代码可读性有待提高了。遵守编码规范也能让我们写出可读性更好的代码。

    可维护性

    代码的可维护性是由很多因素协同作用的结果。代码的可读性好、简洁、可扩展性好,就会使得代码易维护;更细化地讲,如果代码分层清晰、模块化好、高内聚低耦合、遵从基于接口而非实现编程的设计原则等等,那就可能意味着代码易维护。除此之外,代码的易维护性还跟项目代码量的多少、业务的复杂程度、利用到的技术的复杂程度、文档是否全面等诸多因素有关。

    重复度

    遵守 Don’t Repeat Yourself 原则,尽量减少重复代码的编写,复用已有的代码。对项目定期进行代码重复度检测是一个很有意义的事,可以帮助开发人员发现冗余代码,进行代码抽象和重构。重复的代码一旦出错,意味着加倍的工作量和持续的不可控。如果代码中有大量的重复代码,就要考虑将重复的代码提取出来,封装成公共的方法或者组件。

    可测试性

    代码可测试性的好坏,同样可以反应代码质量的好坏。代码的可测试性差,比较难写单元测试,那基本上就能说明代码设计得有问题。

    除此之外还有很多代码质量评价标准。我们需要一些取舍,选取部分大家有共识的规则定义团队好的代码标准。

    代码质量维度

    当前版本通过 @iceworks/doctor 从 5 个维度对代码进行评分:

    1. 最佳实践:通过 @iceworks/eslint-plugin-best-practices 分析项目,提出符合当前工程特征(对 ice 和 Rax项目友好)的最佳实践及阻塞问题发布卡口,帮助开发者优化项目性能,避免潜在 bug 。

    2. 安全实践:通过 @iceworks/eslint-plugin-security-practices 扫码代码检测工程中可能存在的安全风险,包含 url 、敏感成词、明文账密信息及 npm 包证书检测,降低项目安全风险,守卫项目安全。

    3. 阿里代码规范:这一维度主要反馈开发人员对于 eslint-config-ali 阿里开发规约的遵守程度。

    4. 可维护度:通过 typhonjs-escomplex 对文件进行扫码,得出每个文件的可维护度,可读性及复杂度评分。针对得分较差的文件可以进行深度分析帮助开发者更好的重构复杂代码。

    5. 重复度:通过 jscpd 计算重复出现的代码区块占比,计算出 clone 分数。并逐一列举重复的代码,方便开发者快速定位重复代码,将其封装成公共的方法或者组件。

    根据上述 5 个维度通过加权平均的方式计算项目质量分,并根据木桶效应,在计算得分的过程中加大了最低分的权重,得出最终项目质量评分。

    项目地址

    github地址:https://github.com/ice-lab/iceworks/tree/master/

    推荐几款代码质量检测工具:

    然后说说工具的问题。我用过的开源、商业代码质量工具没少说也有个二三十种( V 站除了同行应该没人比我多了。。。吧)。这些工具如果按照规则类型划分,可以看做两类。一类安全,也就是检查安全问题,比如 NullPointer、SQL Injection、Data Race,他们会影响程序的安全运行;一类是规约,简单来说就是 code style。不过考虑到很多规则其实两者兼具,我就简单的按语言划分好了。(都是开源的)

    c/c++:

    clang-tidy http://clang.llvm.org/extra/clang-tidy

    CSA https://clang-analyzer.llvm.org

    cppcheck https://github.com/danmar/cppcheck

    cpplint https://github.com/google/styleguide

    phasar https://github.com/secure-software-engineering/phasar

    这里面比较推荐 clang-tidy,虽然规则不多,但是规则编写简单,只要你对 C++有足够了解,可以定制出十分丰富的内容

    java:

    google-java-format https://github.com/google/google-java-format

    find-sec-bugs https://find-sec-bugs.github.io

    spotbugs https://spotbugs.github.io

    pmd https://github.com/pmd/pmd

    p3c https://github.com/alibaba/p3c

    soot https://sable.github.io/soot

    spotbugs 和 pmd 都是比较优秀的工具,前者有 find-sec-bugs 这样的插件。而后者,ali 的 p3c 规则集就是基于 pmd 实现的。此外 pmd 是一个针对多种语言的框架,内容十分丰富。这两者国际化和文档都做的非常好。而 soot 本质上一个 jvm bytecode 的优化框架,但同样可以基于此做出各种工具,不过考虑到它复杂的内容,emmmm...

    其他:

    python https://github.com/PyCQA/pylint

    kotlin https://github.com/arturbosch/detekt

    JS/TS https://github.com/eslint/eslint

    Rust https://github.com/rust-lang/rust-clippy

    shell https://github.com/koalaman/shellcheck

    Multiple languages https://github.com/facebook/infer

    Multiple languages https://github.com/github/semantic

    我列举的都是我觉得有用的并且目前处于活跃状态的项目,大家无聊的话可以看看。还有一个专门介绍静态分析工具的仓库https://github.com/mre/awesome-static-analysis

    再然后对于工具的使用。对于工具大家都知道,不用等于没用。所以一般的解决办法都是融入流程,最简单的像 Unittest 一样,编译完成后跑一遍。并入 CI 流程也是普遍做法,代码入库前扫描成功才允许合并,这样同时还可以保证 code format 的问题。除此之外,减少这类工具的 report 数量也是重点。过于繁多的报告(尤其是项目早期开发的时候)往往不利于发现真正有价值的问题,也不利于修复。所以熟悉工具的规则和配置,少报无关问题是工具使用的关键。

    简单说就这么多,如果感兴趣我有空可以开个系列,专门介绍代码静态分析的技术、使用问题

    号称中国最好的静态分析工具(将来就是世界最好)

    https://www.sourcebrella.com/

    对标国际厂商比如 Coverity、fortify、checkmax,我们一点不虚,甚至在技术上还有优势( PLDI、ICSE 最近几年都有论文) 

    展开全文
  • FOSSID(开源代码检测工具

    千次阅读 2022-02-09 09:38:51
    在Github、Gitkraken等全球知名开源社区的开源代码检测工具排行榜均位列第一。而在中国的开源社区及开源治理白皮书中多次被提名。 作为开源治理的标杆,中国赛迪检测认证中心、中国赛宝实验室,中国电子技术标准化...

    FOSSID简介:

            FOSSID总部位于瑞典首都斯德哥尔摩。由一群开源技术专家组成的研发团队,该团队拥有18年的开源研发、管理、测试经验。
            在Github、Gitkraken等全球知名开源社区的开源代码检测工具排行榜均位列第一。而在中国的开源社区及开源治理白皮书中多次被提名。
            作为开源治理的标杆,中国赛迪检测认证中心、中国赛宝实验室,中国电子技术标准化研究院塞西实验室,中国信息通信研究院,中国信息安全测评中心率先成为了该产品使用单位,其开具的检测报告就是由该产品进行检测做为依据的。
    开源相关监管要求:
            

     

    开源软件的价值及应用:

    1.降低成本

    2.提高效率

    3.提升创新力

    开源带来的风险有哪些?

    合规性风险

    1.开源许可违规(法律诉讼、产品召回等)

    2.自有代码相关知识产权泄露(被迫开源)

    安全漏洞风险

    1.引入开源软件同时,被动引入安全漏洞。

    无法满足海内/外监管部门要求

    1.软件外包合作,甲方的监管和免责要求。

    2.国家相关机构,对自主知识产权和自主可控的监管要求。

    开源许可证的分类及治理方法

    开源许可证大致分为两类

    1.开放型许可证(MIT、BSD、Apache等)

    2.传染型许可证(MPL、LGPL、GPL、AGPL等)

    用户代码中发现传染型许可证的治理方法

    1.冗余删除

    2.溯源替代

    3.隔离开源

    4.逻辑模仿

    FOSSID能为您做什么?

    开源软件合规性检测

       1.支持所有语言。

       2.能够精确到片段及片段式快速扫描。

       3.支持盲审功能。

       4.强大的开源知识库,目前超过3500万个开源项目,并且开源知识库定期更新。

    安全漏洞扫描

       1.扫描开源代码的同时,也同步扫描开源软件的安全漏洞。

       2.支持超过16万种安全漏洞,与NVD同步。

    FOSSID的应用场景

    企业内部的代码检测需求

       1.项目开源之前,查找自有代码的开源风险。

       2.针对闭源商业代码,也需要规避合规性风险。

    政府部门监管政策对开源治理的要求

       1.国家项目对自主知识产权的要求。

       2.国家对某些重要领域的风险防控要求。

    国际合作中甲方提出的代码扫描需求:代码打包出口到海外,甲方要求出具检测报告免责。

    司法鉴定过程中的代码检测需求:软件知识产权纠纷案件中,代码检测是重要的参考依据。

    企业兼并过程中的代码审计需求:邀请第三方审计,对收购标的进行软件资产评估。

    FOSSID的工作原理:

    FOSSID部署方式:

    分布式部署

       1.将知识库(KB)部署在私有云

       2.WebApp可以在多地部署,提升扫描效率

       3.开源代码扫描分布式管理

       4.对网络质量要求高

     

    本地部署

       1.将知识库(KB)和WebApp都在本地网部署

       2.可以组成便携式系统(KB+WebApp)

       3.硬件部署成本较低

       4.安全性提高

    FOSSID的优势

    技术优势

       1.算法优势-比传统扫描分析快一个数量级。

       2.数据优势-拥有目前世界上最大的开源知识库及安全漏洞库。

       3.部署优势-支持云部署和本地离线式部署。

       4.后发优势-吸取传统优点,改进缺陷,稳定可靠。

    客户反馈

       1.在全球开源治理领域,客户群体的庞大是对产品最高的认可。

       2.中国知名通信厂商和测评机构高度评价FOSSID。

    技术支持

       1.本地技术支持团队,10年以上开源检测经验。

    有兴趣关注~

    Contact us:

    Sale:李先生

    Mobile/Wechat:13552863111

    展开全文
  • 阿里开源代码质量检测工具

    千次阅读 2020-10-29 09:08:00
    好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,...

    好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目组成员快速做好 Back up。好的代码便于促进团队间交流合作提升开发效率。

    代码质量评价标准

    有编码经验的人对代码都有一定的“鉴赏力”,能够凭感觉给出代码好坏的主观评价。但是这种凭感觉的方式太过个性随意,所谓仁者见仁智者见智,很难达成共识,那有没有一种公认的标准来鉴定代码质量呢?

    答案是有的。这里简单分享当下较常用的评价标准,其中包括:编码规范、可读性、可维护性、重复度及可测试性。

    编码规范

    主要包含是否遵守了最佳实践和团队编码规范,是否包含可能出问题的代码,以及可能存在安全的漏洞。编码规范有助于提高团队内协助的效率以及代码的可维护性。

    可读性

    Code Review 是一个很好的测验代码可读性的手段。如果你的同事可以轻松地读懂你写的代码,那说明你的代码可读性很好;反之则说明你的代码可读性有待提高了。遵守编码规范也能让我们写出可读性更好的代码。

    可维护性

    代码的可维护性是由很多因素协同作用的结果。代码的可读性好、简洁、可扩展性好,就会使得代码易维护;更细化地讲,如果代码分层清晰、模块化好、高内聚低耦合、遵从基于接口而非实现编程的设计原则等等,那就可能意味着代码易维护。除此之外,代码的易维护性还跟项目代码量的多少、业务的复杂程度、利用到的技术的复杂程度、文档是否全面等诸多因素有关。

    重复度

    遵守 Don’t Repeat Yourself 原则,尽量减少重复代码的编写,复用已有的代码。对项目定期进行代码重复度检测是一个很有意义的事,可以帮助开发人员发现冗余代码,进行代码抽象和重构。重复的代码一旦出错,意味着加倍的工作量和持续的不可控。如果代码中有大量的重复代码,就要考虑将重复的代码提取出来,封装成公共的方法或者组件。

    可测试性

    代码可测试性的好坏,同样可以反应代码质量的好坏。代码的可测试性差,比较难写单元测试,那基本上就能说明代码设计得有问题。

    除此之外还有很多代码质量评价标准。我们需要一些取舍,选取部分大家有共识的规则定义团队好的代码标准。

    代码质量维度

    当前版本通过 @iceworks/doctor 从 5 个维度对代码进行评分:

    1. 最佳实践: 通过 @iceworks/eslint-plugin-best-practices 分析项目,提出符合当前工程特征(对 ice 和 Rax项目友好)的最佳实践及阻塞问题发布卡口,帮助开发者优化项目性能,避免潜在 bug 。

    2. 安全实践: 通过 @iceworks/eslint-plugin-security-practices 扫码代码检测工程中可能存在的安全风险,包含 url 、敏感成词、明文账密信息及 npm 包证书检测,降低项目安全风险,守卫项目安全。

    3. 阿里代码规范: 这一维度主要反馈开发人员对于 eslint-config-ali 阿里开发规约的遵守程度。

    4. 可维护度: 通过 typhonjs-escomplex 对文件进行扫码,得出每个文件的可维护度,可读性及复杂度评分。针对得分较差的文件可以进行深度分析帮助开发者更好的重构复杂代码。

    5. 重复度: 通过 jscpd 计算重复出现的代码区块占比,计算出 clone 分数。并逐一列举重复的代码,方便开发者快速定位重复代码,将其封装成公共的方法或者组件。

    根据上述 5 个维度通过加权平均的方式计算项目质量分,并根据木桶效应,在计算得分的过程中加大了最低分的权重,得出最终项目质量评分。

    项目地址

    github地址:https://github.com/ice-lab/iceworks/tree/master/

    关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。


    猜你喜欢

    1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结

    2、如何才能成为优秀的架构师?

    3、从零开始搭建创业公司后台技术栈

    4、程序员一般可以从什么平台接私活?

    5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

    6、滴滴业务中台构建实践,首次曝光

    7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

    8、15张图看懂瞎忙和高效的区别

    9、2T架构师学习资料干货分享

    展开全文
  • QT调试技巧-使用静态代码检测工具Cppcheck检测代码 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:12951803 环境: Qt Creator版本:4.0.3 Qt版本:5.6.2 Cppcheck版本:...
  • Coverity代码静态检测工具介绍

    千次阅读 2019-08-09 09:51:20
    Coverity代码静态检测工具介绍 ...
  • php 代码检测工具

    千次阅读 2017-07-08 00:21:30
    phpcpd 是检测代码冗余工具 PHP Copy Paste Detector phpdcd 检查从未被调用过的方法 phpcs 是代码检测规范程度的工具 phpcs 使用教程 http://overtrue.me/articles/2015/05/install-phpcs-and-phpmd.html ...
  • CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段,下面这篇文章主要给大家介绍了关于Java中循环冗余校验(CRC32)实现的相关资料,需要的朋友可以参考借鉴,下面来一起看看...
  • 《娜璋带你读论文》系列主要是...这篇文章将简单总结Powershell恶意代码检测相关研究,并结合开源工具分享抽象语法树提取过程。希望这篇文章对您有所帮助,这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!
  • 受自己阅历和工作经验,项目工期的影响,很多时候我们检查自己的代码很难发现错误(不知道大家有没有这个感觉),或者我们不觉着这块代码有问题,这时候就需要用到“静态代码检测工具”,Andro...
  • 软件容错的主要目的是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高软件可靠性,保证整个计算机系统的正常运行。 软件容错技术主要有恢复块方法和N-版本程序...
  • Unity AssetBundle 冗余检测与资源分析

    千次阅读 2017-09-30 13:10:15
    检测冗余可以在未打包前对将要打包的资源做分析,但是这无法完全保证打包之后的 AssetBundle 完全无冗余,一是分析时无法保证正确无冗余,二是引用的内置资源无法剔除冗余,所以对打包之后的 AssetBundle 包进行检测...
  • 工具Github链接地址 https://github.com/AMikeW/UnityResourceStaticAnalyzeTool 工具功能 一、分析预制体静态资源,如贴图、精灵图、图集等使用情况。 第一张图表格是预制体的使用资源情况,第二张图是分析...
  • 这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的...这篇文章将详细讲解PowerShell、Powershell恶意代码检测总结及抽象语法树(AST)提取。希望这篇文章对您有帮助,也推荐大家去阅读论文,且看且珍惜。
  • PCLint静态代码检查工具

    热门讨论 2014-12-20 11:23:37
    PC-Lint 是GIMPEL SOFTWARE 公司研发的C/C++软件代码静态分析工具,他的全称是 PC-Lint/FlexeLint for C/C++。PC-Lint 能够在Windows、MS-DOS 和OS/2 平台上使用,以二 进制可执行文档的形式发布,而FlexeLint 运行...
  • 主流代码扫描静态分析工具

    千次阅读 2022-02-11 08:48:24
    市场上静态代码扫描工具百花齐放,种类繁多,本文通过相关云厂商咨询、互联网峰会资料查阅和主流技术网站检索得出初步结论,和大家分享讨论。
  • 【C/C++】C++代码质量检核工具-cppcheck

    千次阅读 2021-09-06 14:05:02
    【C/C++】C++代码质量检核工具-cppcheck cppcheck 介绍 Cppcheck是一个用于C/C++代码的静态分析...警告未使用的或者冗余代码 检测各种潜在bugs的可疑代码等 使用 CppCheck使用方法: 命令行调用 可视化界面使用 作为
  • gitlab集成SonarQube实现代码检测

    千次阅读 2020-11-25 11:02:18
    gitlab集成SonarQube实现代码检测 环境 操作系统: Linux - Centos-7-x86_64-1810 Docker版本: Docker-CE 19.03.13 gitlab版本:13.5.4-ce.0 gitlab-runner版本:gitlab-ci-multi-runner-9.5.1-1.x86_64 SonarQube...
  • 支持AssetBundle冗余检测 支持静态代码分析 请到UPR官网下载最新版资源检测工具,下载地址:AssetChecker-Win 使用流程 注意:下载包的exe文件不是直接双击运行的,它是个命令行工具,得在cmd里使用。 按住Win
  • 【Tools】Coverity代码静态检测工具

    千次阅读 2018-01-13 16:45:18
    Coverity静态分析工具的功能很强大,超乎我的期望。主要功能如下: 列出不会被执行到的代码列出没被初始化的类成员变量列出没有被捕获的异常列出没有给出返回值的return语句某个函数虽然有返回值,但调用该函数的...
  • 冗余代码检查工具Simian

    千次阅读 2012-12-11 21:43:38
    冗余代码检查工具Simian 微软web2.0开发示例Kobe,重蹈了Oxite的覆辙。Ayende连续发表了五篇高质量的Kobe探讨贴: Kobe – In the nuts & bolts and don’t really liking itKobe – Data Access done ...
  • 代码检测简介  本文是一个静态代码分析工具的清单,但是为公司产品需要付费使用。共有37个公司,有些公司包含多个工具。其中27个公司有多语言 工具,1个公司为PHP工具、2个公司为.NET工具、1个公司为Ada工具...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,794
精华内容 13,917
关键字:

代码冗余检测工具