jspecify
PMD
jspecify | PMD | |
---|---|---|
11 | 21 | |
411 | 4,663 | |
2.4% | 0.8% | |
8.1 | 9.9 | |
7 days ago | 7 days ago | |
Java | Java | |
Apache License 2.0 | 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.
jspecify
-
Java, null, and JSpecify [video link]
There's also a fair amount of content to explore starting at jspecify.org.
-
I'm not a Java dev but I'm using it in AoC this year
With some projects like https://github.com/jspecify/jspecify you can say your code is @NullMarked, meaning all nullable fields are explicitly marked with @Nullable. That being ubiquitous is...some point in the future.
-
Design document on nullability and value types (Brian Goetz)
Issue about Void
-
Java might eventually get null-restricted types
Details are being worked out in JSpecify [issue 79](https://github.com/jspecify/jspecify/issues/79). At present it is thought that we can have a 1.0 without it; that could still change. Please feel free to join the conversation.
- How to go about writing a library?
-
Java records make Google's AutoValue mostly obsolete
Coincidentally that's my current project -- sort of. We need to stay with an annotation-based approach for a bit longer but we think there's a path. http://jspecify.org
-
JSpecify: Express specifications (initially, just nullness properties) in a machine-readable way
Well, within a @NullMarked context you already don't have to annotate non-nullable types. You probably want a warning when someone forms a @Nullable type from that class, and I've just filed #228 about that.
PMD
- PMD 7 Is Here
-
Amazon CodeGuru Reviewer: already time for retirement?
While the security findings can be pretty elaborate and helpful, the code quality and performance focused findings are not that impressive and can often be detected by more basic or powerful tools like SonarQube (paying) or PMD (free). To see what I mean you can have a look at the list of Java code quality detectors, which is pretty short and contains a lot of simple findings like:
-
Code Review for Flows
Also saw this convo has a couple years worth of ideas going on … https://github.com/pmd/pmd/issues/3413
-
Custom Gradle Plugin for Unified Static Code Analysis
PMD and Checkstyle are static analysis tools that check your code on each project build. Gradle allows to apply them easily.
-
Spring Boot – Black Box Testing
The generated classes should be put into .gitignore. Otherwise, if you have Checkstyle, PMD, or SonarQube in your project, then generated classes can violate some rules. Besides, if you don't put them into .gitignore, then each pull request might become huge due to the fact that even a slightest fix can lead to lots of changes in the generated classes.
-
After Java tutorials, now what???
- PMD Static Code Analysis tool: https://pmd.github.io/
-
Ask HN: What is a modern Java environment?
PMD, Spotbugs, Nullaway: Java linting/static analysis (https://pmd.github.io, https://spotbugs.github.io, https://github.com/uber/NullAway)
-
Code smell plugin
PMD, and checkstyle as well.
-
Writing Clean and Consistent Code with Static Analysis using PMD and Apex
Open up the config/ruleset.xml file, and you’ll find an XML document that lists several rules. These rules map to the issues which PMD will report on. Believe it or not, there are hundreds of Apex rules, and you can find the full set at the PMD repo. You have complete control over which rules to enable. Typically, you’d determine which ones are important by agreeing with your teammates on the ones that matter most. After all, their code will be statically analyzed, too!
-
Is there a tool to track CVEs for the software that we use?
While at it you could also point them to static code analyzers such as error_prone, spotbugs and pmd (use all 3 at once - they complement each other in detecting different issues).
What are some alternatives?
Checker Framework - Pluggable type-checking for Java
Spotbugs - SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.
KEEP - Kotlin Evolution and Enhancement Process
SonarQube - Continuous Inspection
jOOQ - jOOQ is the best way to write SQL in Java
Error Prone - Catch common Java mistakes as compile-time errors
Lombok - Very spicy additions to the Java programming language.
Checkstyle - Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.
infer - A static analyzer for Java, C, C++, and Objective-C
Auto - A collection of source code generators for Java.
SonarJava - :coffee: SonarSource Static Analyzer for Java Code Quality and Security