JHipster: Kickstart Your Full-Stack Career

Sherief Shahin
Blue Harvest Tech Blog
5 min readFeb 18, 2019

Fresh out of college

We have all been there before. Picture this scenario with me. You just graduated from college, and you are still unsure of what you want to do. Do you want to specialize in back-end development? Are you more of a front-ender? Maybe it’s the case where you don’t even know the technologies that lie under one of them. You find yourself in a place where you want to explore but do not know where to start. Or maybe I am just making all this up to project my own experiences. So, let me tell you about it.

Who even am I?

My name is Sherief Shahin, I just graduated from Denison University and I currently work as a software engineer consultant for Blue Harvest. I graduated with more experience and tendencies in back-end development but I always wanted to learn more about front-end. But, I did not know where to start, did not know what technologies to use, and overall, I was more-or-less still searching for answers. I wanted to know how to start front-end and ultimately converge to full-stack development. That is when I found JHipster.

What is JHipster?

JHipster is listed under the umbrella of frameworks. However, it is more of a generator. What JHipster does when you run it, is that it generates a full-stack application using SpringBoot and dealers choice between React or AngularJS. JHipster not only generates the skeleton code for you, but it also sets up your databases, from a choice of several databases. Below is an example of what it looks like during setup:

JHipster Application Setup

As you can see, it asks you for very detailed questions in order to make it as customized as possible for your preferences. You cannot see the step where it asked for React or Angular, because I had already set it up in the previous project. After everything is set up, JHipster spins up a user management web application. But the question still remains. Is it worth it? Is the time investment put in, in order to customize the application, worth it? Is the juice worth the squeeze? Well, let us jump into some analysis.

What is there to look forward to?

There are several pros that I experienced working with JHipster, here are some:

  • Covers your bases: JHipster covers most of the bases you need in a full-stack application. From the photo above, you can see that with the several questions they ask, they make sure to have everything implemented in the generated app so the developer does not have to set up much more.
  • Learning Experiences: As I was going through the questions the first time, I saw some technologies that I was not familiar with. This made me go out of my way in order to check these technologies, and I even chose to work with some that I did not know of, which gave me a broader spectrum of knowledge.
  • Comfort Zone: JHipster puts you outside of your comfort zone, into the challenge zone. Linked with the last point, when you choose a technology and you are forced to work with, you get out of the usual loop of the technologies that you work with and develop more skills on these alien technologies you know very little about.
  • Metrics: Inside the application that is generated, you are given metrics about the performance of your application as well as the usage of your computer. This is a cool added feature that gives you some insight on things that you usually might not bother thinking about. But since the functionality is already implemented for you, you get to focus on more peripheral stuff you would not usually bother with.
  • Proof of Concepts (PoC): For small projects, also know as PoC’s, JHipster really shines. If you do not need to do many changes and your PoC is similar to the sample project, it could save you a lot of time.
  • Experimental: If you ever wanted to try anything out, this is the place to do it. You can play with an already existing codebase, move it around, and see what it does! Instead of struggling with writing syntax-correct code and worry about other time-consuming tasks, getting ready-to-run code, only to modify, is always an efficient way to learn.
  • Containerization and Testing: Not only does JHipster provide you with a codebase and a framework, but it also makes the application almost production ready. All you need to do is tweak some stuff around and you can already containerize and deploy! Not only that, but it also has several testing technologies such as JUnit, JTest, Cucumber, etc.

What is there to look out for?

The same with any platform/technology/framework, there will always be things that you need to watch for. Here are some of the cons:

  • Unnecessary Additions: Not unnecessary in the conventional sense. When I say unnecessary, I mean that sometimes there are features that could be used to do interesting functionalities, but not completely required for the core application to run.
  • Complexity: Sometimes, the code might get too complex and might require you to dive deeper in order to fully understand the logic. At the end of the day, this is a learning experience and you do not want to just get a hold of the code and run with it. You want to investigate properly, and it can get complex sometimes.
  • Large Projects: With large projects that require a lot of customization, it starts to get complex. You would have to do many changes in order to get to the result you would like. Also, if your project is completely different than the template offered, then maybe it is better to start from scratch, time-investment-wise.
  • Technical Background: This is not necessarily a con. It actually isn’t a negative point at all. It is more of a heads up. If you do not have any programming background, this is not for you. I repeat, not for you! If you have no technical background, you will end up hating software development from the overwhelming information you will receive.

So, what now?

Having said all that, even with these negative points that might be consequential, I think JHipster is a great tool! It was the reason that I went out of my way in order to try new things. It forced me to do some research, learn, and eventually, increase my knowledge. JHipster also gave me a nice mellow introduction to the React framework, which is perfect because I wanted to know more about front-end frameworks and technologies. JHipster also improved my existing knowledge on SpringBoot and I was able to have that link between front-end and back-end that I was too overwhelmed to discover at first. It gave me the room to play around with technologies and also to learn combinations of how certain technologies interact. As a junior software engineer, straight out of college, I believe that it is very helpful! I would definitely recommend, but be aware: With great power, comes great responsibility.

Do you like the article? Want in-depth technical analysis? Let me know and I might post another article with purely technical dissection of JHipster!

--

--