Forget about Archetypes – Yeoman Generators

Szeario 1:

Ein Projekt startet, die Infrastruktur muss aufgesetzt werden. Dependencies müssen definiert und geladen werden. Die Maven-POMs werden definiert und alle Entwickler überlegen, was tatsächlich gebraucht wird um möglichst schnell mit dem Projekt durchzustarten.

Szenario 2:

Ein Entwickler hat einige Stunden Zeit und möchte sich weiterbilden. Er möchte jedoch nicht einen großteil seiner zur Verfügung stehenden Zeit mit dem Aufsetzen des Projektes verbringen, sondern er möchte direkt anfangen und Coden. Natürlich gibt es viele Demo-Projekte, die man sich beispielsweise auf GitHub klonen oder Maven-Archetypes die man verwenden kann. So richtig gut ist aber keines von beiden.

Szenrio 3:

Ein Entwickler möchte eine neue Technologie kennenlernen, nimmt sich einen der unzähligen Yeoman-Generator, generiert das Skeleton und legt direkt los.

Ich empfehle Szenario 3 – da es oft gar nicht so einfach ist, die richtigen Generatoren zu finden werde ich hier (nicht zuletzt für mich selbst) eine Liste sammeln von Generatoren, die ich gerne und oft verwende (oder zukünftig unbedingt verwenden möchte).

 

Beispiel JHipster

#install yo
npm install -g yo

#install generator
npm install -g generator-jhipster 

#create application
yo jhipster

Welcome to the Jhipster Generator

#ATTENTION, dont use a '.' in your name... I realized that 30minutes later.. see below
[?] (1/8) What is the base name of your application? (jhipster) effectivetrainings.de

[?] (2/8) What is your default Java package name? (com.mycompany.myapp) de.effectivetrainings

#hazelcast? sure!
?] (3/8) Do you want to use Hibernate 2nd level cache? (Use arrow keys)
  No 
❯ Yes, with ehcache (local cache, for a single node) 
  Yes, with HazelCast (distributed cache, for multiple nodes) 

#not sure why I would need that?
[?] (4/8) Do you want to use clustered HTTP sessions? (Use arrow keys)
❯ No 
  Yes, with HazelCast 

#websockets, absolutely!
[?] (5/8) Do you want to use WebSockets? 
  No 
❯ Yes, with Atmosphere 

#mysql, postgres?? what about some embedded database?
[?] (6/8) Which *production* database would you like to use? 
  MySQL 
❯ PostgreSQL 

#ah, here we go!
[?] (7/8) Which *development* database would you like to use? (Use arrow keys)
❯ HSQLDB in-memory 
  MySQL 
  PostgreSQL 

#compass.. hm, I prefer LESS but why not, lets try
[?] (8/8) Would you like to use the Compass CSS Authoring Framework? (y/N) y

#lets see
ls
Gruntfile.js    README.md    bower.json    node_modules    
package.json    pom.xml        spring_loaded    src

#try a build
mvn clean install

#Download a whole lot of dependencies...

#GO!

[...]

[...]

[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5:10.573s
[INFO] Finished at: Thu Feb 20 21:03:08 CET 2014
[INFO] Final Memory: 29M/67M
[INFO] ------------------------------------------------------------------------

#5 Minutes.. wow

#now ensure, all css, scripts and stuff is correctly generated and minified...
grunt
#run it
mvn spring-boot:run

#get another 400 jars of deps

[...]

[...]

#got it!

Und endlich sind da!,

JHipster

 

Spring Boot Generator

Die Mutter aller Generatoren – JHipster

JHipster-Docker Generator

Bau deinen eigenen Generator

 

Effective Trainings & Consulting - Martin Dilger



Hat Ihnen dieser Blog-Eintrag gefallen? Ich stelle in diesem Blog Informationen über Tools, Frameworks und Werkzeuge zur Verfügung, die mich produktiver machen. Vielleicht kann ich auch Ihnen helfen, produktiver zu werden.


Ich unterstütze Sie als freier Mitarbeiter bei der Entwicklung von Software-Projekten, Agiler Arbeit sowie Schulungen / Fortbildungen.


Jeden Tag ein bisschen produktiver - ab heute