Compiler
code-maat
Compiler | code-maat | |
---|---|---|
2 | 7 | |
314 | 2,320 | |
0.0% | - | |
0.0 | 3.1 | |
almost 2 years ago | 11 months ago | |
D | Clojure | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Compiler
- Code Red: The Business Impact of Code Quality
-
The Fastest, Safest PNG Decoder in the World
> I'm a big believer in technical continuity.
So am I. D is designed to be an easy transition from C and C-With-Classes. For example, here is some code in C that was translated to D (it's part of the DMD compiler):
C:
https://github.com/DigitalMars/Compiler/blob/dmc-cxx/dm/src/...
D:
https://github.com/DigitalMars/Compiler/blob/master/dm/src/d...
They look pretty much the same. The code generated is the same. In those repositories you can also see how I translated the C versions to D with plenty of examples.
The biggest impediment is the C preprocessor. You wouldn't really want to carry that forward.
After removing dependency on the C preprocessor, most of the work is global search/replacing things like `->` to `.`.
code-maat
-
Ask HN: Measurements of Code Quality?
Get a copy of "Your code as a crime scene", then check out two GitHub repos
https://github.com/adamtornhill/code-maat
https://github.com/smontanari/code-forensics
-
Code Red: The Business Impact of Code Quality
He also wrote Your Code as a Crime Scene and authored the open source tool, Code Maat. I've found both extremely useful in my current job where I took over a code base with immense technical debt.
https://github.com/adamtornhill/code-maat
-
Why I Write Dirty Code: Code Quality in Context
It's not as neat as that unfortunately. You use this to extract different data from the version control history: https://github.com/adamtornhill/code-maat
Then visualize it however. I have some d3 scripts that came with the book that I've modified and you can track down somewhere on github I'm pretty sure. I mostly use those for demoing it to devs unfamiliar with the techniques though, since it looks cool and is immediately obvious what it's for.
For serious use I dump it into sqlite and use a mix of different scripts and techniques to figure it out. It's been kind of a language playground for me over the years so is in a lot of different languages and is "learning code" in most of them. Cleaning them up and sharing is one of those "maybe some day" things though.
-
Find files which change together frequently
After searching a bit more, it seems like https://github.com/adamtornhill/code-maat is a great tool
- adamtornhill/code-maat: A command line tool to mine and analyze data from version-control systems
-
The #1 tip to familiarize with new JavaScript codebases
The tool code-complexity is closely coupled to JavaScript and TypeScript-based codebases. For other languages like Java, C#, Python, or PHP there are other tools, but one tool that is generic and works for most of the codebases is code-maat. It is a tool created by the author of the book mentioned in the chapter before.
-
Emacs as your code-compass: how stable is my code?
https://github.com/adamtornhill/code-maat#Usage
What are some alternatives?
png-decoder - A pure-Rust, no_std compatible PNG decoder
code-complexity - Measure the churn/complexity ratio. Higher values mean hotspots where refactorings should happen.
Halide - a language for fast, portable data-parallel computation
sloc - simple tool to count SLOC (source lines of code)
ivory - The Ivory EDSL
code-compass - A set of code analyses that assist you in tackling software complexity
smhasher - Hash function quality and speed tests
temporal-coupling - Explores git repositories to find files that are commonly changed together
stb - stb single-file public domain libraries for C/C++
code-forensics - A toolset for code analysis and report visualisation
LGV_MeetingSDK - A Connector for Various Regular Recovery Meetings