DEV Community

Leanid Herasimau
Leanid Herasimau

Posted on • Originally published at suddo.io on

Top 5 Quarkus Dev Tips for 2024: Boosting Performance and Productivity

Top 5 Quarkus Dev Tips for 2024: Boosting Performance and Productivity

Let's dive into the latest Quarkus tricks that'll make your code fly faster than a speeding bullet in 2024.

Maximize Efficiency with Quarkus Dev Services: Your Personal DevOps Sidekick

Remember the days when setting up a development environment felt like solving a Rubik's cube blindfolded? Quarkus Dev Services is here to make that a distant memory.

Dev Services automagically spin up the infrastructure you need, faster than you can say "docker-compose up". Here's what it can do for you:

  • Databases? Check.
  • Kafka? You got it.
  • Redis? Piece of cake.

But wait, there's more! Let's see it in action:


quarkus:
  datasource:
    db-kind: postgresql
  kafka:
    bootstrap-servers: localhost:9092

Enter fullscreen mode Exit fullscreen mode

With this simple configuration, Quarkus will automatically start a PostgreSQL database and a Kafka broker for you. No more "works on my machine" excuses!

"Dev Services isn't just a time-saver; it's a sanity-saver." - Every developer who's used it

Leverage Continuous Testing: Because Who Doesn't Love Instant Gratification?

Picture this: you're coding away, in the zone, and suddenly - BAM! - your tests are already running. Welcome to the world of Continuous Testing in Quarkus.

Here's why it's a game-changer:

  • Tests run automatically as you code
  • Near-instant feedback on your changes
  • Catch bugs faster than a cat video goes viral

Top 5 Quarkus Dev Tips for 2024: Boosting Performance and Productivity

To enable this sorcery, just add this to your application.properties:


quarkus.test.continuous-testing=enabled

Enter fullscreen mode Exit fullscreen mode

Now, every time you save, your tests will run faster than you can say "but it worked on my local machine".

Explore the Latest Quarkus Extensions: Like Plugins, But Cooler

Quarkus extensions are like Swiss Ar... wait, no. They're like LEGO blocks for your application. In 2024, we've got some shiny new ones to play with:

1. Timefold

Timefold: This lightweight, embeddable planning engine implements powerful and scalable algorithms to optimize business resource scheduling and planning.

Example Use Case:

Imagine you’re building a logistics application where delivery trucks must be routed efficiently. Timefold allows you to model constraints (e.g., delivery time windows, truck capacity) and uses optimization techniques to find the best routing plan.

@PlanningEntity
public class Delivery {
    private Location location;
    private LocalTime deliveryTime;
}

@PlanningSolution
public class RoutingSolution {
    private List<Delivery> deliveries;
    private List<Vehicle> vehicles;
    private int totalDistance;
    // Optimization logic here
}

Enter fullscreen mode Exit fullscreen mode

2. Web Bundler

The Web Bundler extension makes full-stack development simpler by bundling JavaScript, JSX, TypeScript, and CSS files without manual configuration.

Example Use Case :

You’re developing a React-based front-end within a Quarkus project. Instead of manually setting up Webpack, you add the Web Bundler extension. It automatically bundles your React components, ensuring seamless integration.

import React from "react";
import ReactDOM from "react-dom";

const App = () => <h1>Hello, Quarkus with React!</h1>;

ReactDOM.render(<App />, document.getElementById("root"));

Enter fullscreen mode Exit fullscreen mode

Add index.tsx to your src/main/webapp directory, and the Web Bundler handles the rest.

3. SmallRye Stork

This extension simplifies service discovery in microservice architectures. It helps locate and load-balance service instances dynamically.

Example Use Case :

You have a microservice architecture with several instances of a PaymentService. SmallRye Stork ensures the application dynamically discovers available instances and balances the load among them.

quarkus.stork.payment-service.service-discovery.type=static
quarkus.stork.payment-service.service-discovery.address-list=localhost:8081,localhost:8082


@ApplicationScoped
public class PaymentClient {
    @Inject
    @RestClient
    PaymentService paymentService;

    public Response processPayment(Payment payment) {
        return paymentService.pay(payment);
    }
}

Enter fullscreen mode Exit fullscreen mode

Optimize Native Image Builds with GraalVM Updates: Speed, Meet More Speed

Native image builds in Quarkus were already fast, but with the latest GraalVM updates, they've gone supersonic. Here are some tips to squeeze out every last drop of performance:

  1. Use the latest GraalVM version compatible with your Quarkus release
  2. Utilize @RegisterForReflection judiciously

Here you can read more about Quarkus native.

Monitor and Debug Smarter with Enhanced Dev UI: Your App's Personal Health Tracker

Top 5 Quarkus Dev Tips for 2024: Boosting Performance and Productivity

The Quarkus Dev UI got a facelift, and it's not just about looks. It's like giving your application a smart fitness tracker:

  • Real-time metrics visualization
  • On-the-fly configuration changes
  • Interactive API documentation

To access this goldmine of information, just hit http://localhost:8080/q/dev-ui while running in dev mode. It's like having a DevOps team in your browser.

Conclusion: The Future is Quarkus, and It's Supersonic

There you have it, folks - the latest and greatest in Quarkus for 2024. With these tools in your arsenal, you're not just coding; you're crafting the future of Java applications. Remember, with great power comes great responsibility... to write awesome, blazing-fast microservices!

Now go forth and Quarkus like there's no tomorrow! And if anyone asks why your application is so fast, just wink and say, "It's not a bug, it's a Quarkus feature."

"In the world of microservices, the Quarkus developer is king... or queen. No gender discrimination in our high-performance kingdom!" - Anonymous Quarkus Enthusiast

Happy coding, and may your builds be ever in your favor!

Top comments (0)