Getting Hip with JHipster

jhipster logo

Code Days 2020

About me

Frederik Hahne

About me

wescale jug

Disclaimer

I am a Noob

Greeetings, Hipsters

hipsters

Agenda

  • Introduction

  • Overview

  • Demo

How long does it take to setup a modern web application?

How long does it take to configure databases, security, api?

How long does it take to go to production?

What is JHipster?

what is jhipster 1

What is JHipster?

what is jhipster 2

What is JHipster?

  • Full Stack Application Development Platform

  • 100% Open Source

  • Best Practice & High Quality Code

  • Community & Knowledge

JHipster in Numbers

  • 15k+ Stars

  • 35 Core Team Member

  • 536+ Contributors

  • 2 Books

  • 100000+ Installations

  • 2 Conferences

Goals

A high-performance and robust Java stack on the server side with Spring Boot
A sleek, modern, mobile-first front-end with Angular, React and Bootstrap
A powerful workflow to build your application with Yeoman, Webpack and Maven/Gradle

Policies

technologies used by JHipster have their default configuration used as much as possible
only add options when there is sufficient added-value in the generated code
for the Java code, follow the default Intellij IDEA coding style*
use strict versions for third-party libraries

Formatting …​

prettier

Options

server side
client side
deployment ci cd

Let’s Code

Gettin' Started

//Install node, java and git (optional)
npm install -g generator-jhipster
npm install -g generator-jhipster-vuejs

jhipster --blueprints vuejs

Demo

  • Generate a basic library application

  • Short Walkthrough

  • Generate CRUD capabilities

  • Small changes to the code

  • Build with Gitlab CI, deploy to Heroku

jhipster jdl

Side-by-Side Approach

@SuppressWarnings("unused")
@Repository
public interface BorrowRepository extends JpaRepository<Borrow, Long> {

}

@SuppressWarnings("unused")
@Repository
public interface BorrowRepositoryCustom extends BorrowRepository {

}

Side-by-Side Approach

import BookCopyService from "@/entities/book-copy/book-copy.service";

export default class BookCopyServiceCustom extends BookCopyService {

}

Going to Production

  • Start with less

  • Don’t touch the generated code

  • Keep JDL up to date

  • Use same DB in Dev & Prod

  • Use DTO & Services

  • Most likely you will add custom web api

start.jhipster.tech

Future Plans

  • Polyglot

    • Kotlin

    • Node.js, .net

    • Micronaut, Quarkus

  • Spring Boot 2.2.x

  • Neo4j Support

  • Modulith, Microfrontends, Fully Reactive

More

Bug Bounties

bounties

Questions?

questions

Join Us

wescale logo

Use the force Luke

rate