Free. No signup or credit card required. The information is deleted after your request.
Clicking "Run report" with no input will show example results.
If it's a moderately sized repo it might take more than 30 seconds. You'll see the spinner in your browser tab. I'm working on making it faster.
Java is a programming language. A Java field is a variable used to store a piece of data with others in a class.
Fields have a type. Text strings, integers and boolean true/false are example types. Types can also be classes or interfaces. An interface describes what a class can do. A class implements the functionality of an interface.
A dirty field is a field whose type is a class that could be replaced with an interface.
The "dirty" part of the name comes from books and presentations by "Uncle Bob".
A software developer changes the type declaration of the field from a class to an appropriate interface that the class implements.
Importantly, the interface must have all the methods called on the field within the containing class.
Interfaces allow swapping out different implementations. For example, if a class accepts a database interface, any class with connection and querying method can be used. This means different kinds of databases are supported.
They make it easier to update code.
Interfaces can also only capture a slice of the necessary functionality. So if a field is only used for one thing, the interface makes that clear.
Github is a website where developers can share code repositories.
If you have a Github repository, you can login and click the green [Code] button. Then click the "Copy url to clipboard". Paste it into the input above and hit [Run report].
Right now this is a very small specific tool. I might try to add some more functionality as part of what I'm working on to make my own code better:
The source code for the tool itself is available. It's sort of it's own testbed for the improvements below.