The Problem

Often when starting a new project, a developer can have doubt on how to implement the structure, which patterns to follow or which of the many frameworks should you choose to achieve a single goal when there are hundreds out there. Many times this reason is why the kickstart is so hard.

The Solution

Use a structure/template generator for applications where you can specify or choose every piece of software that fits your needs.

Introducing Yeoman

Yeoman is an open-source development stack to help developers build applications, it runs as a command line interface written for Node.js.

It uses “generators”

Yeoman generators are created to let you define app templates to:

* Rapidly create a new project

* Create modules or packages

* Enforcing standards, best practices and style guides

* Promote new projects by letting users get started with a sample app

Besides being an open-source project they have multiple templates to start with. So instead of creating your own template, let’s say you want a classic MVC java spring angular template. You can search for different types of generators in http://yeoman.io/generators/ and find the one that fits you.

Inside every generator, there’s a webpage or a GitHub with the description of the structure, tools and builds included.

For instance: JHipster which is a Spring Boot + Angular

 

Once you find the generator that fit your needs you can create the whole structure from it.

Make sure you have installed yeoman with:

npm install -g yo

 

Generators are npm packages named generator-nameofthegenerator

In our case to install the JHipster we need to execute

npm install -g generator-jhipster

 

And then in the desired directory we do

yo jhipster

 

Right after the generator will ask a series of questions to customize the new project as of:

And we can check that the whole structure was created as expected.

 

Besides the great use of the generators to start projects in no time, I found this tool really helpful to start playing with webapps. When building a front-end application there are thousands of options to use and if you really want to give a try a certain configuration without getting into the full details of what the framework-library-building tool does or how the structure should look like. This is a really good approach.