前端工程化-多维度检测重复代码

news2024/12/23 23:38:36

更多文章可关注我的个人博客:https://seven777777.github.io/myblog/

1. 检测项目重复代码

1.1 检测方案:jscpd

方法一:

  • 全局安装jscpd依赖npm i -g jscpd
  • 项目根路径执行:jscpd -p "src/**/*.js" -k 15 -l 5

方法二:Node Api

项目中安装jscpd依赖

可视化报告

安装:@jscpd/html-reporter

1.2 危害性

  1. 可读性差
  2. 难维护

1.3 解决方案

  1. 封装组件
  2. 提炼函数
  3. 方法提升(创建类)

2. 圈复杂度检测

衡量代码质量的指标

定义:代码开始执行到结束的可走路径

2.1 如何检测

ESLint——complexity

2.2 主要思想

将复杂的逻辑进行分离,能抽象的逻辑尽量抽象到一个纯函数中,在主流程中进行调用

3. 代码覆盖率

如何分析?

  • Istanbul 工具
    单元测试:Jest+Chai自动统计代码覆盖率

  • assets-retry
    容灾方案

搴芳拾梦
欢迎关注的我的个人公众号【搴芳拾梦】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【黑马SpringCloud(3)】Docker

Docker初识DockerDocker与虚拟机的区别Docker架构DockerHubDocker镜像操作Docker容器操作数据卷自定义镜像镜像结构Dockerfile构建Java项目基于java:8-alpine镜像,构建java项目集群部署微服务Docker-Compose镜像仓库搭建私有镜像仓库Docker安装:https://…

Go第 14 章 :文件操作

Go第 14 章 :文件操作 14.1 文件的基本介绍  文件的概念 文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的 word文档,txt文 件,excel 文件…都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声 音… …

排序分页多表查询

文章目录一、排序ORDER BY排序规则单列排序多列排序二、分页LIMIT背景实现格式举例公式优点三、多表查询笛卡尔积(或交叉连接)的理解解决笛卡尔积问题多表查询分类等值连接非等值连接自连接内连接 vs 外连接SQL99实现多表查询基本语法内连接(…

测试人员怎么对待Bug

测试人员如何描述发现的Bug咱们提Bug至少要包含这个问题出现的版本,问题出现的环境,问题出现的步骤,预期结果,实际结果。但不限于标题,bug归属,bug等价等等举个栗子😁很容易发现二维码被登入页面…

深入分析三层网络交换机的原理和设计

引言 传统路由器在网络中起到隔离网络、隔离广播、路由转发以及防火墙的作业,并且随着网络的不断发展,路由器的负荷也在迅速增长。其中一个重要原因是出于安全和管理方便等方面的考虑,VLAN(虚拟局域网)技术在网络中大量应用。VLAN技术可以逻辑…

跨平台编译go(交叉编译)

以将一个简单的go http 部署到docker为例! 方法一:构建service镜像同时拉取go镜像 Dockerfile文件 # alpine Linux发行版,该发行版的大小很小并且内置了Go FROM golang:alpine# 设置linux环境变量 ENV GO111MODULEon \CGO_ENABLED0 \GOOSl…

MyBatis持久层框架详细解读:MyBatis快速入门篇

文章目录1. 前言2. JDBC 存在的缺点3. MyBatis 优化4. MyBatis 快速入门5. 总结Java编程基础教程系列1. 前言 JavaEE 企业级 Java 项目中的经典三层架构为表现层,业务层和持久层,使用Java 代码操作数据库属于持久层内容,而 MyBatis 对 JDBC …

Appmsg:APP辅助分析神器

一、前言 在进行APP渗透测试、APP病毒分析或写APP测试报告时经常会用到APP基本信息,有些工具虽然可以解析APP,但缺少想要的信息,有些解析的结果不够准确,于是只好自研一款工具来解决。 二、定位 主要适用于以APP病毒分析、APP漏…

一个数据驱动的动态 NFT 实现方案

1 背景2022 年是 Web3 行业很不如意的一年,DeFi 旧力已去,游戏和社交应用新力未发,放眼望去,似乎只有 NFT 仍然热度不减,各种应用、各种概念也是层出不穷,几乎是独力支撑熊市当中 Web3 的希望。除了围绕 NF…

【MFC】MFC应用程序流程(11)

在WIN32应用程序中使用MFC于MFC框架创建的应用程序流程基本上一致的,不同之处是对MFC框架的使用。 MFC应用程序流程 应用程序类继承CWinAppEx(类似CWinApp),编译时注入的WinMain函数利用多态机制实现应用程序初始化:…

LaoCat带你认识容器与镜像(番外一【Harbor】)

祝大家开工大吉呀,新的一年要有新的收获呀 ~ 本章内容 搭建Docker镜像私仓Harbor,并配置Docker私仓。 本文实操全部基于Ubuntu 20.04 宿主机 > linux服务器本身 Harbor > 2.5.3 Docker系列文章之仓库篇就介绍了Docker有俩种类型的镜像仓库&#x…

AppShark:一款针对Android应用程序的静态分析与漏洞扫描框架

关于AppShark AppShark是一款针对Android应用程序的安全测试框架,该工具本质上是一个静态污点分析平台,可以用于扫描Android应用程序中的漏洞。 AppShark除了实现行业普遍应用的数据流分析,还将指针分析与数据流分析融合,因而漏…

【项目精选】基于SpringBoot+Vue实现的仿掘金论坛系统(包含完整源码以及部署教程)

项目简介 本论坛基于SpringBootVue框架实现前后端分离,自适应手机端和电脑端,界面简洁美观,功能完善,性能高效。分为用户系统和管理系统两部分。 大厂微服务架构设计;代码简洁、高效无冗余;注释详细易阅读…

LabVIEW 在NI Linux实时设备上访问Shell

LabVIEW 在NI Linux实时设备上访问Shell有一台运行NI Linux实时操作系统的设备,想访问设备上的shell或终端。要使用以下任一方法与设备通信,必须在计算机上安装终端客户端。使用SSH连接:1. 打开电源并将设备连接到网络或直接连接到计算机。2.…

已解决:Linux安装Docker完整过程

① 目的 接口自动化接口需要持续集成,最终选择Jenkins来实现。通过docker来实现安装部署Jenkins ② 环境 Linux ③Docker的自动化安装 Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。 官方的一键安装方式: curl…

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介

以下文字用百度翻译,效果一般,凑合看吧。2018年12月开始上市的索尼偏光相机和偏光相机专用SDK实现了高功能、高画质、高速处理。其要点在于,开发为不在需要专业知识的偏振信号处理的安装中花费工时,能够以最小限度的成本利用的SDK…

逆战成钢!大势智慧2023新春年会暨表彰大典圆满举行

2023年1月14日,大势智慧2023新春年会暨表彰大典如期举行。暂别了疫情的阻隔,大势智慧武汉总部与各分公司成员时隔两年再次迎来“面对面拥抱”。三百多名大势成员群贺新春,共同度过了一次难忘的年会盛典。 逆战成钢 用奋战实现业绩、规模高增…

Flutter 2023 Roadmap 解析

随着 Flutter Forward 大会召开, Flutter 官方在 3.7 版本 之余为我们展示了如 3D 渲染支持、add-to-web 等未来可能出现的 Feature,但是这些都还只是处于开发中,未来可能还会有其他变动,而在大会结束后,官方也公布了更…

【GD32F427开发板试用】基于蓝牙模块的远程点灯演示

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:寒冰1988 一. 前言 感谢极术社区联合兆易创新组织的本次活动,很荣幸能够中签本次的试用机会,结合手里的外围模块&…

代码随想录算法训练营第31天 回溯算法 93.复原IP地址 78.子集 90.子集II

文章目录LeetCode 93.复原IP地址题目讲解思路LeetCode 78.子集题目讲解思路LeetCode 90.子集II题目讲解难点总结LeetCode 93.复原IP地址 题目讲解 思路 递归参数 startIndex一定是需要的,因为不能重复分割,记录下一层递归分割的起始位置。 本题我们还…