3 ms·
Here is what we use and I'd recommend to others. The most common: - Kotlin for most of the backend code, but Java for shared libs. We still use Java 8 for some
by splix 5y ago
Here is what we use and I'd recommend to others.
The most common:
- Kotlin for most of the backend code, but Java for shared libs. We still use Java 8 for some libs which may be used in Android, that's an unfortunate reality
- Gradle for build config
- Spring for application architecture
And few things that may significantly improve your dev process, but are not so common:
- Spring Reactor (and Webflux) for processing data and requests. Takes a time to learn, but it worth it
- Thymeleaf for UI
- Spock for testing. Highly recommended for designing tests
- Testcontainers for integration tests
- Micrometer to see what's going on with your app. I.e., to export all internal metrics to use with Prometheus/Grafana/etc
For the environment
- SDKMan to manager the environment
- Gradle Application plugin or Google's Jib to pacakge your app. First prepares a Zip with all binaries, second a Docker container
- IntelliJ IDEA
- Github Actions - turns out to be the most usable CI. Though the Jetbrains TeamCity may be better for a large team
- farmerbb 5y ago> Kotlin for most of the backend code, but Java for shared libs. We still use Java 8 for some libs which may be used in Android, that's an unfortunate reality Considering Kotlin is a supported, first-class language on Android, why not write your shared libs in Kotlin as well?
- splix 5y agoI'm talking about open-source libs, i.e., I don't know who is going to use the lib, which env and target language they have, etc. So I think that Java is the best middle ground here because it guaranties the full support of JVM features and 3rd party tools. I mean just avoiding a risk that it would be incompatible with something.