gwizard
SDKMan
gwizard | SDKMan | |
---|---|---|
2 | 160 | |
110 | 5,873 | |
0.0% | 1.2% | |
6.2 | 4.3 | |
6 days ago | 19 days ago | |
Java | Gherkin | |
- | Apache License 2.0 |
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.
gwizard
-
The Reason Java Is Still Popular
Here's what I generally use when doing greenfield development in Java:
https://github.com/gwizard/gwizard
I wrote it, so feel free to consider me biased. That said, "wrote" is a strong word, it just glues some other projects together with Guice. Not much actual code there. Which may be the answer to your question - if you asked me what's wrong with other frameworks, "too much code" is a decent answer.
-
Ask HN: What is a modern Java environment?
I have been thinking of writing up a series of articles on this. Without going into too much detail:
* IDEA
* Deploy on Google App Engine, Digital Ocean App Platform, Heroku, Elastic Beanstalk, etc - get out of the ops business entirely.
* Guice as the backbone, no Spring/Boot. I wrote a tiny dropwiard-like "framework" to make this easier: https://github.com/gwizard/gwizard but there's a laughable amount of code here, you could build it all from scratch with minimal effort. This is about as lightweight as "frameworks" get because Guice does the heavy lifting.
* JAX-RS (Resteasy) for the web API. IMO this is the best part of Java web development. HTTP endpoints are simple synchronous Java methods (with a few annotations) and you can test them like simple Java methods.
* Lombok. Use @Value heavily. Cuts most of the boilerplate out of Java.
* Junit5 + AssertJ. (Or Google Truth, which is almost identical to AssertJ).
* Use functional patterns. Try to make all variables and fields final. Use collections streams heavily. Consider vavr.io (I'll admit I haven't it in anger yet, but I would in a new codebase).
* StreamEx. Adds a ton of useful stream behavior; I don't even use basic streams anymore.
* Guava. There's just a lot of useful stuff here.
* For the database, it really depends on what you're building. Most generic business apps, postgres/hibernate/guice-persist/flyway. Yeah, folks complain about hibernate a lot but it's a decent way to map to objects. Use SQL/native queries, don't bother with JPQL, criteria queries, etc.
* Hattery for making http requests (https://github.com/stickfigure/hattery). This is another one of mine. I make zillions of http requests, functional/immutable ergonomics really matter to me.
* Github actions for CI.
* Maven for the build. Yes, it's terrible, except for every other build system is worse. Gradle seems like it should be better but isn't. I'd really love some innovation here. Sigh.
SDKMan
-
Install Asdf: One Runtime Manager to Rule All Dev Environments
I would suggest learning how to use SDKMAN: https://sdkman.io/
It will manage the JDK for you. Usage is basically this:
# Install a JDK, that version is now default
-
Groovy 🎷 Cheat Sheet - 01 Say "Hello" from Groovy
Alternatively, you can use sdkman. A great tool to install your Software Development Kit. The downside is that it only works on *nix systems. So for Widnows users, you will have to use WSL or Cygwin as the official page suggests. It is really simple to use sdkman. after a successful installation, just type those commands into your *nix shell:
-
Java Microservices with Spring Boot and Spring Cloud
To run the example, you must install the Auth0 CLI and create an Auth0 account. If you don't have an Auth0 account, sign up for free. I recommend using SDKMAN! to install Java 17+ and HTTPie for making HTTP requests.
- Criando ambiente de desenvolvimento Java no Windows - sem wsl
-
Installing and managing Java on macOS
Another option for installing Java is SDKMAN!, a versatile tool that’s easy to install and helps you manage multiple versions of Java.
-
Build a Beautiful CRUD App with Spring Boot and Angular
Java 17
-
Authentication for Spring Boot App with Authgear and OAuth2
Java 17 or higher. You can use SDKMAN! to install Java if you don't have it already.
-
Creating a Ktor Server with Gradle and SDKMAN!: A Step-by-Step Guide
Ktor, a powerful web framework built with Kotlin, offers a lightweight and flexible solution for building web applications. In this article, we will guide you through the process of creating a Ktor project manually using Gradle and SDKMAN!. By following the steps below, you'll have a basic Ktor project up and running in no time.
-
First time Linux user
If you have any tips/advice then I'm all ears. I've already modified the dnf.conf with fastmirror and max_parallel_downloads I'm currently not using sdkman because this is my personal machine, so I don't mind always using the latest version OpenJDK. If I ever do need to switch between versions then I'll switch over to sdkman instead.
-
MOOC.fi question - Is there a way to automatically default to JDK 17 to where I don't have to set up an SDK every single time?
For handling your JDK: I highly recommend purging your system of all JDKs/JRMs - get rid of it all - and download SDK (if you're using Windows, you'll need to do this through WSL). This tool manages software development kits very well; switching between JDKs is super straightforward: sdk use .
What are some alternatives?
prime-mvc - Prime MVC is a high performance Model View Controller framework built in Java.
jenv - Manage your Java environment
kotlinx-kover
asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
NullAway - A tool to help eliminate NullPointerExceptions (NPEs) in your Java code with low build-time overhead
jabba - (cross-platform) Java Version Manager
orm16 - Code generation-based approach to ORM for Java 17, focusing on records as persistent data model
Homebrew-cask - 🍻 A CLI workflow for the administration of macOS applications distributed as binaries
JHipster - JHipster, much like Spring initializr, is a generator to create a boilerplate backend application, but also with an integrated front end implementation in React, Vue or Angular. In their own words, it "Is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures."
nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
reactor-core - Non-Blocking Reactive Foundation for the JVM
asdf-nodejs - Node.js plugin for asdf version manager