effectivejava
effectivejava copied to clipboard
Run queries on your Java code to check if it meets the criteria suggested by the book Effective Java. And some others.
Probably `app` is a very bad name for the namespace. We should rename all of them and then we could use import-vars from https://github.com/ztellman/potemkin to import and re-export the symbols...
Clone should return the same class of the defining class and do not declare to throw CloneNotSUpportedException. They should also not call not-final methods.
In the `equals` method float and double fields should be compared using Float.compare and Double.compare because of the existence of NaN and -0.0f (see Float documentation). We could write a...
I get this warning while executing the program: WARNING: Named already refers to: interface clojure.lang.Named in namespace: app.model.javaparser, being replaced by: #'app.model.protocols/Named
As suggested here (http://tomassetti.me/effective-java-a-tool-to-explore-and-measure-your-java-code-written-in-clojure/#comment-3321) we could assign a score to classes to help find out which classes should be examined first in an unknown codebase
Are there acceptable exceptions?
Running `lein cloverage` I get this: ``` Produced output in /home/federico/repos/effectivejava/target/coverage . HTML: file:///home/federico/repos/effectivejava/target/coverage/index.html | :name | :forms_percent | :lines_percent | |-------------------------------+----------------+----------------| | app.cli | 63.27 % | 33.33 %...
I think names should be separated by hyphens instead of using camel-case, so: ``` foo-bar ; good fooBar ; bad ```