In general, these are some best practices you should consider:
- If you start creating entities using the entity sub-generator, then use export-jdl and switch to JDL once you have more than a handful of entities.
- Generate your application without any modules first and add required modules only when the need arises.
- Evaluate a module carefully before adding it. Make sure it supports the stack you have chosen.
- Follow each underlying technology's best practices. Angular best practices, Spring best practices, and so on. Change something only if there is a good reason to do so.
- Use the provided library versions on the client side and server side. It's hard work to have them all working together, so stick to them. Update them when JHipster updates them or only if you really need to fix a bug or a security issue.
- Follow the workflows provided by JHipster. They are here to help you. There is usually a very good reason to use them in the recommended way. Read the JHipster documentation before looking for help outside.
- You have a great working environment out of the box; don't break it.
- Frontend and backend updates are automatic and fast using live reload. Make use of them.
- Production deployment is easy using the provided sub-generators.
- Use the provided sub-generators for the cloud platform you are deploying to.
- Git is your friend. Commit each time you add a module or an entity, or when using a sub-generator. Every mistake (including in the database) should be easy to rollback with Git.