JS 코드의 품질 검사를 해주는 grunt-plato에 대해 소개하겠습니다.
grunt-plato란?
plato라고 하는 툴로부터, JavaScript 코드의 소프트웨어 메트릭스를 계측해, HTML로 리포트를 생성해 주는 Grunt 플러그인입니다.
htps : // pmjs. 오 rg / pa c 게이지 / g run tp
htps : // 기주 b. 코 m / j 소 ゔ r 쏘 / g 룬 t p ぁ
plato란?
위에서 거의 썼습니다만, plato는 JavaScript 코드의 소프트웨어 메트릭스를 계측해, HTML로 리포트를 생성해 주는 Node제의 툴입니다.
htps : // 기주 b. 코 m / 에 s 아나 ly s / p ぁ
plato에서는 jQuery, Grunt, marionette의 리포트를 샘플로서 공개해 주고 있으므로, 우선은 이것들을 보고, 어떤 것인지 알게 됩니다.
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / j 쿠에 ry /
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / g 룬 t /
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / 마리오네와 /
소프트웨어 메트릭이란?
소스 코드의 품질을 다양한 관점에서 수치화하여 정량적으로 평가하는 측정법입니다.
LoC나 Cyclomatic Number라는 표현은 잘 눈에 띈다고 생각합니다만, 전형적인 메트릭스로서 아래와 같은 것을 들 수 있습니다. (Wikipedia에서 인용)
ㅡtp://그럼.ぃきぺぢ아. 오 rg / 우키 / % 3 % 82 % BD % 3 % 83 % 95 % 3 % 83 % 88 % 3 % 82 % 6 % 3 % 82 % 7 % 3 % 82 % A 2 % 6 % B8 % A C % E 5 % A % 9 A % E 6 % B3 % 95
* 성장 주문(알고리즘 해석, O기법 등 참조)
* 소스 코드의 행 수 (LoC)
* 순환 복잡도(Cyclomatic Number)
* 기능 포인트법
* 소스 코드 행당 버그 수
* 코드 망라율
* 고객 요구 사양의 행 수
* 클래스 및 인터페이스 수
* Robert Cecil Martin의 소프트웨어 패키지 측정 방법
* 응집도
* 결합도
소프트웨어 메트릭에 대해서는 2005년과 오래되었지만 이 기사는 읽기 쉽습니다.
첫 소프트웨어 메트릭
h tp // w w. 아니. 이. jp / m / rc c / s / 0507/22 / 네 ws101. HTML
plato로 측정할 수 있는 지표
위에서 거의 썼습니다만, plato는 JavaScript 코드의 소프트웨어 메트릭스를 계측해, HTML로 리포트를 생성해 주는 Node제의 툴입니다.
htps : // 기주 b. 코 m / 에 s 아나 ly s / p ぁ
plato에서는 jQuery, Grunt, marionette의 리포트를 샘플로서 공개해 주고 있으므로, 우선은 이것들을 보고, 어떤 것인지 알게 됩니다.
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / j 쿠에 ry /
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / g 룬 t /
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / 마리오네와 /
소프트웨어 메트릭이란?
소스 코드의 품질을 다양한 관점에서 수치화하여 정량적으로 평가하는 측정법입니다.
LoC나 Cyclomatic Number라는 표현은 잘 눈에 띈다고 생각합니다만, 전형적인 메트릭스로서 아래와 같은 것을 들 수 있습니다. (Wikipedia에서 인용)
ㅡtp://그럼.ぃきぺぢ아. 오 rg / 우키 / % 3 % 82 % BD % 3 % 83 % 95 % 3 % 83 % 88 % 3 % 82 % 6 % 3 % 82 % 7 % 3 % 82 % A 2 % 6 % B8 % A C % E 5 % A % 9 A % E 6 % B3 % 95
* 성장 주문(알고리즘 해석, O기법 등 참조)
* 소스 코드의 행 수 (LoC)
* 순환 복잡도(Cyclomatic Number)
* 기능 포인트법
* 소스 코드 행당 버그 수
* 코드 망라율
* 고객 요구 사양의 행 수
* 클래스 및 인터페이스 수
* Robert Cecil Martin의 소프트웨어 패키지 측정 방법
* 응집도
* 결합도
소프트웨어 메트릭에 대해서는 2005년과 오래되었지만 이 기사는 읽기 쉽습니다.
첫 소프트웨어 메트릭
h tp // w w. 아니. 이. jp / m / rc c / s / 0507/22 / 네 ws101. HTML
plato로 측정할 수 있는 지표
info 마크에 hover하면 간략한 설명을 볼 수 있고, 클릭하면 각 메트릭의 해설 페이지를 볼 수 있습니다.
소개
설치
npm install에서 grunt-plato를 설치합니다. package.json의 devDependencies에 추가되도록 --save-dev 옵션을 잊지 마십시오.
% npm install grunt-plato --save-dev
Gruntfile.js
grunt-plato
작업을 로드하도록 추가하고 plato 작업을 정의합니다.
여기서는 docs/report/plato
디렉토리에 plato 보고서를 생성하려고합니다.
실제로는, 그 밖에도 여러가지 문서나 리포트를 생성하기 때문에 계층을 나누고 있습니다.
module.exports = function(grunt) {
grunt.initConfig({
plato: {
options: {
jshint: grunt.file.readJSON('.jshintrc'),
complexity: {
logicalor: true,
switchcase: true,
forin: true,
trycatch: true
}
},
dist: {
files: {
'docs/report/plato': [’src/**/*.js', 'test/**/*.js']
}
}
}
});
grunt.loadNpmTasks(‘grunt-plato');
};
.jshintrc
JSHint에 의한 Lint 체크를 하기 때문에, .jshintrc
파일을 정의합니다.
선택하지 않으면 jshint: false
로 설정하십시오.
JSHint의 코딩 규칙 설정은 여기를 참조하십시오.
h tp // w w. j 신 t. 코 m/도 cs/오 p치온 s/
{
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
node: true,
es5: true
}
실행
% grunt plato
프로젝트의 자바스크립트 코드에 대해 아래 예제와 같은 보고서가 생성됩니다.
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / g 룬 t /
요약
자바스크립트 코드의 메트릭스를 계측함으로써 「불길한 냄새」가 보이게 되어 리팩토링하는 포인트를 명확하게 할 수 있습니다.
지금까지 '어쩐지' 리팩토링하지 않았습니까?
h tp // w w. 오, cctc b. jp / te ch 또는 l c / Rep c와 Rin g / Rep c cts
과거의 계측 결과도 그래프에 표시되어, 시간의 경과와 함께 개선해 왔는지 악화해 왔는지가 보이고, 코드의 품질에 지금까지 이상에 주의할 수 있다고 생각합니다.
Tips
Jenkins의 작업에 통합 할 때 HTML Publisher Plugin을 설치하고 grunt-plato가 생성하는 보고서의 HTML 파일을 Publish HTML reports
로 지정하면 멤버간에 보고서를 함께 볼 수 있다고 생각합니다.
htps : // 우우키. 지킨 킨 s. 오 rg / ぢ sp ぁ y / 지 킨킨 S / HTML + 푸 b ぃしぇ r + P ㎅
Appendix
Grunt Plugins
htp : // g run tjs. 코 m / p ㅅ 긴 s
Reference
이 문제에 관하여(JS 코드의 품질 검사를 해주는 grunt-plato에 대해 소개하겠습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shoito/items/cca3ae1cc6b0895c9455
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
% npm install grunt-plato --save-dev
module.exports = function(grunt) {
grunt.initConfig({
plato: {
options: {
jshint: grunt.file.readJSON('.jshintrc'),
complexity: {
logicalor: true,
switchcase: true,
forin: true,
trycatch: true
}
},
dist: {
files: {
'docs/report/plato': [’src/**/*.js', 'test/**/*.js']
}
}
}
});
grunt.loadNpmTasks(‘grunt-plato');
};
{
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
node: true,
es5: true
}
% grunt plato
프로젝트의 자바스크립트 코드에 대해 아래 예제와 같은 보고서가 생성됩니다.
htp : // 에 s 아나 ly s. 기주 b. 이오 / p ぁ와 / 에 mp ぇ s / g 룬 t /
요약
자바스크립트 코드의 메트릭스를 계측함으로써 「불길한 냄새」가 보이게 되어 리팩토링하는 포인트를 명확하게 할 수 있습니다.
지금까지 '어쩐지' 리팩토링하지 않았습니까?
h tp // w w. 오, cctc b. jp / te ch 또는 l c / Rep c와 Rin g / Rep c cts
과거의 계측 결과도 그래프에 표시되어, 시간의 경과와 함께 개선해 왔는지 악화해 왔는지가 보이고, 코드의 품질에 지금까지 이상에 주의할 수 있다고 생각합니다.
Tips
Jenkins의 작업에 통합 할 때 HTML Publisher Plugin을 설치하고 grunt-plato가 생성하는 보고서의 HTML 파일을 Publish HTML reports
로 지정하면 멤버간에 보고서를 함께 볼 수 있다고 생각합니다.
htps : // 우우키. 지킨 킨 s. 오 rg / ぢ sp ぁ y / 지 킨킨 S / HTML + 푸 b ぃしぇ r + P ㎅
Appendix
Grunt Plugins
htp : // g run tjs. 코 m / p ㅅ 긴 s
Reference
이 문제에 관하여(JS 코드의 품질 검사를 해주는 grunt-plato에 대해 소개하겠습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shoito/items/cca3ae1cc6b0895c9455
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Jenkins의 작업에 통합 할 때 HTML Publisher Plugin을 설치하고 grunt-plato가 생성하는 보고서의 HTML 파일을
Publish HTML reports
로 지정하면 멤버간에 보고서를 함께 볼 수 있다고 생각합니다.htps : // 우우키. 지킨 킨 s. 오 rg / ぢ sp ぁ y / 지 킨킨 S / HTML + 푸 b ぃしぇ r + P ㎅
Appendix
Grunt Plugins
htp : // g run tjs. 코 m / p ㅅ 긴 s
Reference
이 문제에 관하여(JS 코드의 품질 검사를 해주는 grunt-plato에 대해 소개하겠습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shoito/items/cca3ae1cc6b0895c9455
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(JS 코드의 품질 검사를 해주는 grunt-plato에 대해 소개하겠습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shoito/items/cca3ae1cc6b0895c9455텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)