Why JHipster? AngularJS Spring-Boot Liquibase MongoDB ElasticSearch

In the last few years the face of web development has undergone some significant changes. New technologies have appeared that have added some radically different choices for building web applications. The three major pieces involved in a web app, the client, the server, and the database, have each seen widespread changes in what is available.

When web applications first became popular, clients were simply a combination of HTML and CSS. Use of JavaScript was negligible. Over the past 15 years that trend has slowly and consistently changed such that more and more client-side code is included in web applications.

Read more

Favor composition over inheritance.

Master and Student…

Master: Grasshopper, tell me what you have learned of the Object-Oriented ways.

Student: Master, I have learned that the promise of the object-oriented way is reuse.

Master: Grasshopper, continue…

Student: Master, through inheritance all good things may be reused and so we come to drastically cut development time like we swiftly cut bamboo in the woods.

Master: Grasshopper, is more time spent on code before or after development is complete?

Student: The answer is after, Master. We always spend more time maintaining and changing software than on initial development.

Master: So Grasshopper, should effort go into reuse above maintainability and extensibility?

Student: Master, I believe that there is truth in this.

Master: I can see that you still have much to learn. I would like for you to go and meditate on inheritance further. As you’ve seen, inheritance has its problems, and there are other ways of achieving reuse.

====

This quote comes from Head First Design Patterns, I personally favor composition over inheritance.

The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.