checkupjs / checkup

A health checkup for your project.
https://checkupjs.github.io/
MIT License
77 stars 23 forks source link

A nice feature would be some analysis of the available git information #377

Open jackson-dean opened 4 years ago

jackson-dean commented 4 years ago

None of these are my ideas, they all come directly from the book Software Design X Rays: Fix Technical Debt with Behavioral Code Analysis by Adam Tornhill :)

But it would be super cool to have analysis of what are the “hot” files, or where do we have lots of different people touching the same files which can be broken down to more granular modules, where do we have related changes always happening in tandem indicating tight coupling, among other things.

scalvert commented 4 years ago

Thanks, @jackson-dean. Great idea. We'll add it to our list for exploration.

scalvert commented 4 years ago

I could imagine us doing something like git effort from git-extras:

❯ git effort --above 10

  path                                                                                                                       commits    active days

  CHANGELOG.md.............................................................................................................. 16          8
  package.json.............................................................................................................. 90          41
  packages/cli/__tests__/commands/run-test.ts............................................................................... 11          10
  packages/cli/__tests__/task-list-test.ts.................................................................................. 13          13
  packages/cli/package.json................................................................................................. 100         44
  packages/cli/src/commands/run.ts.......................................................................................... 12          11
  packages/cli/src/index.ts................................................................................................. 16          14
  packages/cli/src/reporters.ts............................................................................................. 11          9
  packages/cli/src/task-list.ts............................................................................................. 15          14
  packages/cli/tsconfig.json................................................................................................ 12          11
  packages/core/package.json................................................................................................ 61          32
  packages/core/src/index.ts................................................................................................ 20          18
  packages/core/src/types/tasks.ts.......................................................................................... 12          9
  packages/test-helpers/package.json........................................................................................ 46          23
  yarn.lock................................................................................................................. 225         58

  path                                                                                                                       commits    active days

  yarn.lock................................................................................................................. 225         58
  packages/cli/package.json................................................................................................. 100         44
  package.json.............................................................................................................. 90          41
  packages/core/package.json................................................................................................ 61          32
  packages/test-helpers/package.json........................................................................................ 46          23
  packages/core/src/index.ts................................................................................................ 20          18
  packages/cli/src/index.ts................................................................................................. 16          14
  CHANGELOG.md.............................................................................................................. 16          8
  packages/cli/src/task-list.ts............................................................................................. 15          14
  packages/cli/__tests__/task-list-test.ts.................................................................................. 13          13
  packages/core/src/types/tasks.ts.......................................................................................... 12          9
  packages/cli/tsconfig.json................................................................................................ 12          11
  packages/cli/src/commands/run.ts.......................................................................................... 12          11
  packages/cli/src/reporters.ts............................................................................................. 11          9
  packages/cli/__tests__/commands/run-test.ts............................................................................... 11          10
jackson-dean commented 4 years ago

👍 there is a cli tool that does a lot of this analysis. Note that I have not vetted it for how well it works or anything else https://github.com/adamtornhill/code-maat but it was created to accompany the exercises in the aforementioned book. I imagine it has some nice tricks that could be used for inspiration though.