Java Best Practices
“Java Best Practices” is a comprehensive guide that delves into the optimal strategies and techniques for proficient Java programming. The document explores essential practices to enhance code quality, performance, and maintainability in Java development. It covers topics such as efficient data structures, error handling, design patterns, and optimization methods. By drawing insights from various sources, the guide offers valuable recommendations to Java developers on how to write robust, scalable, and efficient code. It serves as a valuable resource for individuals looking to elevate their Java programming skills and adhere to industry best practices.
Beware of boxing
Boxing / Unboxing is when Java converts primitives to and from reference types, for example, converting between int and Integer types. This is often done automatically through the process known as aut...
📚 Read more at Java Best Practices🔎 Find similar documents
Characteristics of good API
As software engineers we write code every day, and it is inconceivable that this code would ever exist in a vacuum, isolated from all other software ever written. Never has the 'standing on the should...
📚 Read more at Java Best Practices🔎 Find similar documents
The importance of consistency
Very rarely these days does software get developed by a single person, and even if it did, the human condition is so fickle that what they deem is great one day may be considered dead wrong the next (...
📚 Read more at Java Best Practices🔎 Find similar documents
Use the latest Java Long-Term Support release
Java releases are made every six months in a 'feature-release-train' model, rather than having a major release planned for every two to four years as historically was the case. This rapid release cade...
📚 Read more at Java Best Practices🔎 Find similar documents
A little copying is better than a new dependency
Libraries typically take an evolutionary path and grow in functionality over time, and it is often the case that if the library we depend on were decomposed into separate smaller libraries, we might b...
📚 Read more at Java Best Practices🔎 Find similar documents
Avoid shading dependencies
Shading is the term given to the process of including dependencies within our JAR at build time, by copying an entire library out of its separate JAR file, renaming packages, and updating code in our ...
📚 Read more at Java Best Practices🔎 Find similar documents
Make use of logging APIs
Having a good logging story in all Java applications can be a real lifesaver when something goes wrong. The challenge is learning what to log and how to use the logging frameworks to their full potent...
📚 Read more at Java Best Practices🔎 Find similar documents
Use semantic versioning
Semantic versioning is a well-specified convention used by many software projects, although admittedly the extent to which the convention is followed can vary considerably between projects. In essence...
📚 Read more at Java Best Practices🔎 Find similar documents
Minimize API
In the previous best practice, we covered the importance of minimizing API visibilty . This spoke to the importance of not leaking our implementation out into public API, and being very conscious of h...
📚 Read more at Java Best Practices🔎 Find similar documents
Release to Maven Central
Maven Central is the place where developers go to get Java libraries, and it is where any library that a user is expected to use should be uploaded. Requiring users to retrieve a dependency from a dif...
📚 Read more at Java Best Practices🔎 Find similar documents
Publish BOMs for multi-module projects
When we build libraries for others to use, we are often in the fortunate position where our work is entirely encapsulated within a single library. This makes communicating to users of our library abou...
📚 Read more at Java Best Practices🔎 Find similar documents
Don't float dependency versions
Libraries are developed by people who work with different philosophies to our own when it comes to breaking changes, release schedules, and so on. Build tooling almost universally has support for spec...
📚 Read more at Java Best Practices🔎 Find similar documents