Getting Hip with

 

 

 

JUG Ostfalen, 24th Oct. 2019

Frederik Hahne

About me

Frederik Hahne

@atomfrede

atomfrede.gitlab.io

About me

  • JHipster Core Team Member since 2015
  • Gradle Stream Lead, Vue Maintainer
  • JUG Paderborn Organizer
  • Software Developer at wescale

Disclaimer:

I am a Noob

 

Greetings, Java Hipsters

Intro
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?

+

_

=

What is JHipster

  • Full Stack Application Development Platform
  • 100% Open Source
  • Best Practices & High Quality Code
  • Community & Knowledge

JHipster in Numbers

  • 14k+ Stars
  • 33 Core Team Member
  • 520+ Contributors
  • 2 Java Champions
  • 2 Books
  • 1000000+ 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...

https://github.com/jhipster/prettier-java

JHipster Users

Supporters

Options

Let's Code

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

jhipster --blueprints vuejs

Gettin' Started

Demo

  • Generate a basic library management application
  • Short Worktrough
  • Generate CRUD entities
  • Small adaption to the code
  • Build with Gitlab CI
  • Deploy to Heroku
  • Inspired by Matt Raible's introduction

The real java hipster

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 {
	
}

https://www.slideshare.net/agoncal/custom-and-generated-code-side-by-side-with-jhipster

https://dev.to/antonioortizpola/separating-the-jhipster-layout-from-a-custom-ui-implementation-55i8

Going to Production

  • Start with less
  • Don't touch generated code
  • Keep JDL up to date
  • Use same DB in Dev & Prod
  • Integrate testcontainers
  • Use DTO & Services
  • Most likely you will add a custom web api

https://atomfrede.gitlab.io/2019/05/jhipster-with-testcontainers/

https://github.com/intesys/generator-jhipster-testcontainers

start.jhipster.tech

create application via jdl

What else?

  • Kotlin Blueprint
  • Node Blueprint
  • .net Blueprint
  • Quarkus/Micronaut Blueprint
  • Spring Boot 2.2
  • Neo4J Support
  • Modulith
  • Micro Frontends

https://github.com/odrotbohm/moduliths

https://github.com/jhipster/generator-jhipster/issues/9967

  • jhipster.tech
  • github.com/jhipster
  • twitter.com/jhipster
  • https://stackoverflow.com/tags/jhipster/info
  • https://gitter.im/jhipster/generator-jhipster
  • jhipster-book.com
  • packtpub.com/application-development/full-stack-development-jhipster

jhipster.tech/bug-bounties

Question?

Question?

Made with Slides.com