CN107844422A - 一种在linux下自动统计Js语言编码缺陷率的方法 - Google Patents
一种在linux下自动统计Js语言编码缺陷率的方法 Download PDFInfo
- Publication number
- CN107844422A CN107844422A CN201711069642.7A CN201711069642A CN107844422A CN 107844422 A CN107844422 A CN 107844422A CN 201711069642 A CN201711069642 A CN 201711069642A CN 107844422 A CN107844422 A CN 107844422A
- Authority
- CN
- China
- Prior art keywords
- defects
- line number
- methods described
- ratio
- programming count
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种在linux下自动统计Js语言编码缺陷率的方法,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。本发明通过使用命令而不是使用第三方付费工具统计项目的Js代码总行数,自动计算出缺陷行数和缺陷率,并能够自动修改部分不符合编码规范的代码,节约成本和时间,有效控制代码的质量。
Description
技术领域
本发明涉及自动化代码走查技术领域,具体涉及一种在linux下自动统计Js语言编码缺陷率的方法。
背景技术
代码检查是一种静态的分析,常用于寻找有问题的模式或者代码,并且不依赖于具体的编码风格。对大多数编程语言来说都会有代码检查,一般来说编译程序会内置检查工具。
静态代码走查是开发过程中非常重要的一步,程序化的过程人是看不到的。即使最后运行没有大问题,但可能存在一些问题,例如缩进不一致、调用无参构造函数时没有圆括号、没有声明等。
JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调适。
一般的缺陷率统计方法都是购买第三方工具统计Js语言的代码总行数,之后利用走查工具走查有缺陷的代码行数,最后通过缺陷行/总行数得出缺陷率。
ESLint 是一个开源的 JavaScript 代码检查工具。可扩展,每条规则都是独立的,不内置编码风格的工具。
现在一般的代码走查是通过使用Eslint统计处缺陷行数,再通过第三方付费工具统计出项目中Js代码的所有行数,通过缺陷行/总行数 的到缺陷率。
发明内容
本发明要解决的技术问题是:针对上述问题,本发明提供一种在linux下自动统计Js语言编码缺陷率的方法。
本发明所采用的技术方案为:
一种在linux下自动统计Js语言编码缺陷率的方法,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。
所述方法通过使用awk命令得到要走查的项目里面的缺陷行数。
所述方法通过修改Eslint配置文件生成自己的编码规则,并使用fix命令按照自己的编码规则修改不符合编码规范的代码。
所述方法实现流程包括内容如下:
修改Eslint配置文件生成自己的编码规则;
使用正则表达式得到要走查的项目里的所有JS代码行数;
根据生成的编码规则,使用awk命令得到要走查的项目里面的缺陷行数;
自动生成缺陷率;
使用fix命令自动修改不符合编码规范的代码。
所述方法通过调用命令 $(find project dir -name "*.js" |xargs cat|wc -l)得到Js所有行。
所述方法通过调用eslint命令$(eslint project dir | grep 'problems' |awk '{print $2}')得到缺陷行。
所述方法通过脚本实现自动统计,只需用运行相应的脚本就直接得出缺陷率,中间的安装、走查过程都是自动进行的,脚本能够自动计算出缺陷行和总行数缺陷率,以及能够按照指定的规则修改部分的代码。
本发明的有益效果为:
本发明通过使用命令而不是使用第三方付费工具统计项目的Js代码总行数,自动计算出缺陷行数和缺陷率,并能够自动修改部分不符合编码规范的代码,节约成本和时间,有效控制代码的质量。
具体实施方式
根据具体实施方式对本发明进一步说明:
实施例1
一种在linux下自动统计Js语言编码缺陷率的方法,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。
所述方法通过修改Eslint配置文件生成自己的编码规则,并使用awk命令得到要走查的项目里面的缺陷行数。
所述方法通过fix命令自动修改不符合编码规范的代码。
实施例2
所述方法实现流程如下:
1)使用命令wget从官网自动下载Eslint到指定目录;
2)进行解压安装,成功安装Eslint后配置生成基本的规则;
3)修改Eslint配置文件生成自己的编码规则;
4)使用正则表达式得到要走查的项目里的所有JS代码行数;
5)根据生成的编码规则,使用awk命令得到要走查的项目里面的缺陷行数;
6)自动生成缺陷率;
7)使用fix命令自动修改不符合编码规范的代码。
实施例3
所述方法通过调用命令 $(find project dir -name "*.js" |xargs cat|wc -l)得到Js所有行。
所述方法通过调用eslint命令$(eslint project dir | grep 'problems' |awk '{print $2}')得到缺陷行。
实施例4:
所述方法通过脚本实现自动统计,脚本内容如下:
#!bin/bash
totalnum=$(find /home/Code/CSDS-web/WebContent –name "*.js" |xargs cat\wc–l)
faultnum=$(eslint Code/CSDS-web/WebContent/ | grep 'problems' | awk '{print $2}')
echo faultunm $faultnum
echo totalnum $totalnum
per=$(echo "scale=4;${faultnum}/${totalnum}"|bc)
echo per $per
只需用运行相应的脚本就直接得出缺陷率,中间的安装、走查过程都是自动进行的,脚本能够自动计算出缺陷行和总行数缺陷率,以及能够按照指定的规则修改部分的代码。
实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (7)
1.一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过ESLint统计出Js语言编码的缺陷行数,并使用正则表达式得到要走查的项目里的所有JS代码行数,通过缺陷行/总行数得到缺陷率。
2.根据权利要求1所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过使用awk命令得到要走查的项目里面的缺陷行数。
3.根据权利要求2所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过修改Eslint配置文件生成自己的编码规则,并使用fix命令按照自己的编码规则修改不符合编码规范的代码。
4.根据权利要求3所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法实现流程包括内容如下:
修改Eslint配置文件生成自己的编码规则;
使用正则表达式得到要走查的项目里的所有JS代码行数;
根据生成的编码规则,使用awk命令得到要走查的项目里面的缺陷行数;
自动生成缺陷率;
使用fix命令自动修改不符合编码规范的代码。
5.根据权利要求1-4任一所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过调用命令 $(find project dir -name "*.js" |xargs cat|wc -l)得到Js所有行。
6.根据权利要求5所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过调用eslint命令 $(eslint project dir | grep 'problems' | awk '{print $2}')得到缺陷行。
7.根据权利要求6所述的一种在linux下自动统计Js语言编码缺陷率的方法,其特征在于,所述方法通过脚本实现自动统计。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711069642.7A CN107844422A (zh) | 2017-11-03 | 2017-11-03 | 一种在linux下自动统计Js语言编码缺陷率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711069642.7A CN107844422A (zh) | 2017-11-03 | 2017-11-03 | 一种在linux下自动统计Js语言编码缺陷率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107844422A true CN107844422A (zh) | 2018-03-27 |
Family
ID=61682230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711069642.7A Pending CN107844422A (zh) | 2017-11-03 | 2017-11-03 | 一种在linux下自动统计Js语言编码缺陷率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107844422A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086217A (zh) * | 2018-11-01 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种统计c语言编码缺陷率的实现方法,设备及存储介质 |
CN109240925A (zh) * | 2018-09-06 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种Java语言编码缺陷率走查方法 |
CN109460238A (zh) * | 2018-11-01 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种统计编码缺陷的处理方法,研发终端及存储介质 |
CN112286532A (zh) * | 2020-10-31 | 2021-01-29 | 中环曼普科技(南京)有限公司 | 一种基于ESLint和Prettier实现前端代码格式化的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055980A (zh) * | 2016-05-30 | 2016-10-26 | 南京邮电大学 | 一种基于规则的JavaScript安全性检测方法 |
CN106598844A (zh) * | 2016-11-17 | 2017-04-26 | 努比亚技术有限公司 | 移动终端及基于移动终端代码缺陷率的计算方法 |
-
2017
- 2017-11-03 CN CN201711069642.7A patent/CN107844422A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055980A (zh) * | 2016-05-30 | 2016-10-26 | 南京邮电大学 | 一种基于规则的JavaScript安全性检测方法 |
CN106598844A (zh) * | 2016-11-17 | 2017-04-26 | 努比亚技术有限公司 | 移动终端及基于移动终端代码缺陷率的计算方法 |
Non-Patent Citations (1)
Title |
---|
ZCJ风飞: "利用正则表达式统计代码数量--简易版", 《HTTPS://BLOG.CSDN.NET/CHANSONZUO/ARTICLE/DETAILS/52738267》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240925A (zh) * | 2018-09-06 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种Java语言编码缺陷率走查方法 |
CN109086217A (zh) * | 2018-11-01 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种统计c语言编码缺陷率的实现方法,设备及存储介质 |
CN109460238A (zh) * | 2018-11-01 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种统计编码缺陷的处理方法,研发终端及存储介质 |
CN112286532A (zh) * | 2020-10-31 | 2021-01-29 | 中环曼普科技(南京)有限公司 | 一种基于ESLint和Prettier实现前端代码格式化的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844422A (zh) | 一种在linux下自动统计Js语言编码缺陷率的方法 | |
US10346282B2 (en) | Multi-data analysis based proactive defect detection and resolution | |
KR101051600B1 (ko) | 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템 | |
US9940581B2 (en) | Ontology-aided business rule extraction using machine learning | |
US6092187A (en) | Instruction prediction based on filtering | |
CN110928718A (zh) | 一种基于关联分析的异常处理方法、系统、终端及介质 | |
CN105656699B (zh) | 内容分发网络的告警管理方法及系统 | |
US20090241096A1 (en) | Dynamic Software Tracing | |
US10055329B2 (en) | Detection of antipatterns through statistical analysis | |
CN102073588A (zh) | 一种基于代码静态分析的多线程死锁检测方法及系统 | |
CN108804326A (zh) | 一种软件代码自动检测方法 | |
AU711818B2 (en) | Fraud monitoring in a telecommunications network | |
CN106021220B (zh) | 表格检测方法及装置 | |
CN112559569A (zh) | 一种复合条件的告警规则处理方法 | |
CN106126721A (zh) | 一种实时计算平台的数据处理方法和装置 | |
JP2017068293A (ja) | テストdbデータ生成方法及び装置 | |
CN102214141A (zh) | 基于实时堆栈的程序切片方法 | |
CN107291749A (zh) | 一种数据指标关联关系的确定方法及装置 | |
CN106648799A (zh) | 一种基于Ambari快速为第三方组件添加微件的方法 | |
CN105739993B (zh) | 一种架构静态成熟度度量方法 | |
CN114996107A (zh) | 一种日志文件更新方法、装置、设备、介质及产品 | |
CN115292448A (zh) | 语言转义方法、装置、设备及存储介质 | |
CN115576831A (zh) | 一种测试案例推荐方法、装置、设备及存储介质 | |
CN110659200A (zh) | 航空机载软件的源码和目标码对比分析方法及系统 | |
CN110781647B (zh) | 一种基于Flink实现数据格式校验的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180327 |