https://malucocrazy.com/best-practices-for-java-application-development/