From 795a2a1786cefc3244ebd395505e7a4efbd59d45 Mon Sep 17 00:00:00 2001 From: Valentin Brandl Date: Fri, 3 May 2019 16:06:25 +0200 Subject: [PATCH] Add new post --- content/post/2019-05-03_hits-of-code.md | 78 ++++++++++++++++++++++++ static/static/images/wtfm.jpg | Bin 0 -> 45533 bytes 2 files changed, 78 insertions(+) create mode 100644 content/post/2019-05-03_hits-of-code.md create mode 100644 static/static/images/wtfm.jpg diff --git a/content/post/2019-05-03_hits-of-code.md b/content/post/2019-05-03_hits-of-code.md new file mode 100644 index 0000000..2657fd5 --- /dev/null +++ b/content/post/2019-05-03_hits-of-code.md @@ -0,0 +1,78 @@ ++++ +title = "Hits-of-Code Badges" +description = "Building a web service for readme badges" +date = "2019-05-03T16:00:00+02:00" +publishdate = "2019-05-03T16:00:00+02:00" +draft = false +categories = ["rust", "programming"] +tags = ["rust", "actic-web", "hits-of-code", "code metric"] ++++ + +There are few metrics that try to evaluate a codebase. Some give a +glimpse about the code quality like cyclomatic complexity, code +duplication, dependency graphs and the most accurate of all, [WTFs per +minute (WTFs/min)](https://www.osnews.com/story/19266/wtfsm/). Others +are less well fit to actually evaluate the quality of a code base such +as [souce lines of code +(SLoC)](https://en.wikipedia.org/wiki/Source_lines_of_code). Counting +SLoC might seem like a good metric for the amount of work invested in +a piece of software at first, but when you think about it, things like +refactorings and removal of duplicate code through new abstractions +might reduce the SLoC even if work was invested. + +[![WTFs/m](/static/images/wtfm.jpg)](https://www.osnews.com/story/19266/wtfsm/) + + +## Hits-of-Code + +A few years ago, [Yegor Bugayenko](https://www.yegor256.com) proposed +[Hits-of-Code](https://www.yegor256.com/2014/11/14/hits-of-code.html) +as an alternative to SLoC. The idea is to count the changes made to +the codebase over time instead of simply counting the current amount +of lines. By looking at the commit history, you can calculate the +metric and it gives a better overview about the amount of work, that +was invested to implement some project. The score grows with every +commit you make and can never shrink. + +While this has nothing to say about the code quality, I think this is +a useful metric, so I decided to implement a small web service to +generate badges for everyone to include in their readme files: +[hitsofcode.com](https://hitsofcode.com). + +[![Hits-of-Code](https://hitsofcode.com/github/vbrandl/hoc)](https://hitsofcode.com/view/github/vbrandl/hoc) + +Currently only repositories hosted on [GitHub](https://github.com), +[Gitlab](https://gitlab.com) and [BitBucket](https://bitbucket.org) +are supported. The service is implemented in Rust using the +[actix-web](https://actix.rs) framework and deployed as a Docker +container. It is possible to self-host everything using the [Docker +image](https://hub.docker.com/r/vbrandl/hits-of-code) or by building +the [source code](https://github.com/vbrandl/hoc) yourself. + +The service simply creates a bare clone of the referenced repository +and parses the output of `git log`. I also implemented a simple +caching mechanism by storing the commit ref of `HEAD` and the HoC +score. Consecutive requests will pull the repository, compare the old +`HEAD` against the new one, if the `HEAD` changed, the HoC between the +old and the new one is calculated and the old score gets added. If +`HEAD` stayed the same, the old score is returned. + +I have some ideas for the future, e.g. calculating the metric using a +git library instead of invoking a git binary like in the [reference +implementation](https://github.com/yegor256/hoc/blob/master/lib/hoc/git.rb#L41) +and implement nicer overview pages. But for now the service works +fine and is already used by some repositories. If you got any feature +requests or bugs to report, just open a [issue on +GitHub](https://github.com/vbrandl/hoc/issues) or [contact me +directly](/contact). + + +## Final Words + +I think HoC is a cool metric and it is a fun project to work on and +improve further but always keep in mind: + +> Responsible use of the metrics is just as important as collecting +> them in the first place. +> +> [Jeff Atwood](https://blog.codinghorror.com/a-visit-from-the-metrics-maid/) diff --git a/static/static/images/wtfm.jpg b/static/static/images/wtfm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2ab67800c515fffe7a3f0fb573919f35ec8d90b GIT binary patch literal 45533 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 MV>WQYbiXJ5A0RO#=Kufz literal 0 HcmV?d00001