Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Measure the churn/complexity ratio. Higher values mean hotspots where refactorings should happen.

License

NotificationsYou must be signed in to change notification settings

simonrenoult/code-complexity

Repository files navigation

Measure the churn/complexity score. Higher scores reveal hotspots whererefactorings should happen.

Build StatusCoverage StatusStyle StatusNPM Version

Quoting Michael Feathers (sourcehere):

Often when we refactor, we look at local areas of code. If we take a widerview, using information from our version control systems, we can get a bettersense of the effects of our refactoring efforts.

Note:code-complexity currently measures complexity using either:

  • lines of code count (all languages)
  • cyclomatic complexity (JavaScript/TypeScript)
  • halstead complexity (JavaScript/TypeScript)

Usage

$ npx code-complexity<path-to-git-directory or URL> [options]

Help

    Usage: code-complexity <target> [options]    Measure the churn/complexity score. Higher values mean hotspots where refactorings should happen.    Options:      -V, --version                         output the version number      --filter <strings>                    list of globs (comma separated) to filter      -cs, --complexity-strategy [strategy] choose the complexity strategy to analyze your codebase with (allowed values: sloc, cyclomatic, halstead).      -f, --format [format]                 format results using table, json or csv      -l, --limit [limit]                   limit the number of files to output      -i, --since [since]                   limit analysis to commits more recent in age than date      -u, --until [until]                   limit analysis to commits older in age than date      -s, --sort [sort]                     sort results (allowed valued: score, churn, complexity or file)      -d, --directories                     display values for directories instead of files      -h, --help                            display help for command    Examples:    $ code-complexity .    $ code-complexity https://github.com/simonrenoult/code-complexity    $ code-complexity foo --limit 3    $ code-complexity ../foo --sort score    $ code-complexity /foo/bar --filter 'src/**,!src/front/**'    $ code-complexity . --limit 10 --sort score    $ code-complexity . --limit 10 --directories     $ code-complexity . --limit 10 --sort score -cs halstead    $ code-complexity . --since=2021-06-01 --limit 100    $ code-complexity . --since=2021-04-01 --until=2021-07-01

Output

$ npx code-complexity https://github.com/simonrenoult/code-complexity --sort=score --limit=3┌──────────────────────────────┬────────────┬───────┬───────┐│ file                         │ complexity │ churn │ score │├──────────────────────────────┼────────────┼───────┼───────┤│ src/cli.ts                   │ 103        │ 8     │ 824   │├──────────────────────────────┼────────────┼───────┼───────┤│ test/code-complexity.test.ts │ 107        │ 7     │ 749   │├──────────────────────────────┼────────────┼───────┼───────┤│ .idea/workspace.xml          │ 123        │ 6     │ 738   │└──────────────────────────────┴────────────┴───────┴───────┘

Special thanks

A special thanks to a few contributors that helped me makecode-complexity better.

  • Alexander Dormann (alexdo) for fixing theENOBUFS (and apologies for stealing your code).
  • Scott Brooks (scottamplitude) for initiating the work on complexity strategies

About

Measure the churn/complexity ratio. Higher values mean hotspots where refactorings should happen.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors9


[8]ページ先頭

©2009-2025 Movatter.jp