How do you use metric_fu? Will you be at RailsConf?

26 views
Skip to first unread message

Benjamin Fleischer

unread,
Apr 18, 2014, 3:23:25 PM4/18/14
to metr...@googlegroups.com
MetricFu has been making some good progress lately. It's not as far along as I would have hoped, but, still.

One thing I've been interested in getting a better sense of who uses metric_fu, and how.  I'm really interested in which reports you use, which you don't, what should be added/removed, etc.  It would be great if you could answer in detail here, but I'd also appreciate if you add something to the wiki https://github.com/metricfu/metric_fu/wiki#where-is-metric_fu-used-and-how

Some very basic options I'd like to add in the near-future
- Separate analyzing metrics from generating reports
- Separate generating graphs from analyzing metrics or generating reports
- Make e.g., metric_fu --flay only run flay.  Right now, it doesn't really do anything as most metrics are enabled by default.

I recently wrote some code to make sure the doc examples are valid, and also clarify which methods are part of a 'contracted' api that would need to be deprecated.  I run these with rake usage_test. It's pretty neat, but kinda slow (obviously) https://github.com/metricfu/metric_fu/blob/master/gem_tasks/usage_test.rake#L27

I've also been looking at continuing to improve the naming and organization of all the files.  I have an example I was playing around with at https://github.com/bf4/metric_fu/tree/reorganize/lib/metric_fu/reporting if your curious.

I'm particularly interested in deciding if a formatter or a template should be under report, or if templates should even be under lib.  Also, about separating out the 'hotspot' as metric from the 'hotspot' analysis.  I'm also trying to think about how to separate the notions of code that runs the metrics, code that processes/normalizes the output, and conversion protocols of that data to yaml, hash, etc.

.
├── metric_fu
│   ├── analyzing
│   │   └── hotspots
│   │       ├── analysis
│   │       │   ├── analyzed_problems.rb
│   │       │   ├── analyzer_tables.rb
│   │       │   ├── grouping.rb
│   │       │   ├── groupings.rb
│   │       │   ├── problems.rb
│   │       │   ├── ranked_problem_location.rb
│   │       │   ├── ranking.rb
│   │       │   ├── rankings.rb
│   │       │   ├── record.rb
│   │       │   ├── scoring_strategies.rb
│   │       │   └── table.rb
│   │       ├── analyzer.rb
│   │       └── hotspot.rb
│   ├── collecting
│   │   ├── cane
│   │   │   ├── grapher.rb
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   ├── runner.rb
│   │   │   └── violations.rb
│   │   ├── churn
│   │   │   ├── hotspot.rb
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   └── runner.rb
│   │   ├── flay
│   │   │   ├── grapher.rb
│   │   │   ├── hotspot.rb
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   └── runner.rb
│   │   ├── flog
│   │   │   ├── grapher.rb
│   │   │   ├── hotspot.rb
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   └── runner.rb
│   │   ├── generator.rb
│   │   ├── hotspots
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   └── runner.rb
│   │   ├── metric.rb
│   │   ├── rails_best_practices
│   │   │   ├── grapher.rb
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   └── runner.rb
│   │   ├── rcov
│   │   │   ├── external_client.rb
│   │   │   ├── grapher.rb
│   │   │   ├── hotspot.rb
│   │   │   ├── metric.rb
│   │   │   ├── rcov_format_coverage.rb
│   │   │   ├── report.html.erb
│   │   │   ├── runner.rb
│   │   │   └── simplecov_formatter.rb
│   │   ├── reek
│   │   │   ├── grapher.rb
│   │   │   ├── hotspot.rb
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   └── runner.rb
│   │   ├── roodi
│   │   │   ├── grapher.rb
│   │   │   ├── hotspot.rb
│   │   │   ├── metric.rb
│   │   │   ├── report.html.erb
│   │   │   └── runner.rb
│   │   ├── saikuro
│   │   │   ├── hotspot.rb
│   │   │   ├── metric.rb
│   │   │   ├── parsing_element.rb
│   │   │   ├── report.html.erb
│   │   │   ├── runner.rb
│   │   │   └── scratch_file.rb
│   │   └── stats
│   │       ├── grapher.rb
│   │       ├── hotspot.rb
│   │       ├── metric.rb
│   │       ├── report.html.erb
│   │       └── runner.rb
│   ├── configuration.rb
│   ├── environment.rb
│   ├── errors.rb
│   ├── loader.rb
│   ├── logger.rb
│   ├── reporting
│   │   ├── formatter
│   │   │   ├── html.rb
│   │   │   ├── syntax.rb
│   │   │   └── yaml.rb
│   │   ├── formatter.rb
│   │   ├── graphs
│   │   │   ├── graph.rb
│   │   │   └── grapher.rb
│   │   ├── loader.rb
│   │   ├── reporter.rb
│   │   ├── result.rb
│   │   └── templates
│   │       ├── configuration.rb
│   │       ├── css
│   │       │   ├── bluff.css
│   │       │   ├── buttons.css
│   │       │   ├── default.css
│   │       │   ├── integrity.css
│   │       │   ├── rcov.css
│   │       │   ├── reset.css
│   │       │   └── syntax.css
│   │       ├── index.html.erb
│   │       ├── javascripts
│   │       │   ├── bluff-min.js
│   │       │   ├── bluff_graph.js
│   │       │   ├── excanvas.js
│   │       │   ├── highcharts.js
│   │       │   ├── highcharts_graph.js
│   │       │   ├── js-class.js
│   │       │   ├── standalone-framework.js
│   │       │   └── utils.js
│   │       ├── layout.html.erb
│   │       ├── metrics_template.rb
│   │       ├── report.html.erb
│   │       ├── report.rb
│   │       └── template.rb
│   ├── running
│   │   ├── cli
│   │   │   ├── client.rb
│   │   │   ├── helper.rb
│   │   │   └── parser.rb
│   │   └── run.rb
│   ├── tasks
│   │   └── metric_fu.rake
│   ├── utils
│   │   ├── calculate.rb
│   │   ├── constantize.rb
│   │   ├── gem_run.rb
│   │   ├── gem_version.rb
│   │   ├── io.rb
│   │   ├── line_numbers.rb
│   │   ├── location.rb
│   │   ├── sexp_node.rb
│   │   └── utility.rb
│   └── version.rb
└── metric_fu.rb

Thanks for your time. I'll be at RailsConf if you want to meetup. My twitter is @hazula and you have my email here :)
-Benjamin
Reply all
Reply to author
Forward
0 new messages