Get a glimpse of the universe of frameworks: ABOUT YOU developer Harminder introduces his self-developed framework AdonisJs
This year, Germany’s largest developer conference once again focused on the exchange of knowledge on topics — One of the 130 speakers at this year’s code.talks 2018 was Harminder from ABOUT YOU: In his exciting lecture he gave comprehensive insights into the development of his own framework AdonisJs. But read it yourself and find out more about AdonisJs — a much needed framework for Node.Js.
Please introduce yourself and tell us a little about your role at ABOUT YOU and the reasons why you decided to work there.
Hi, I am Harminder Virk, originally from India, but now living in Hamburg. I developed the framework AdonisJs and started a side project called Dimer. At ABOUT YOU, I work as a Software engineer. One of the main reasons for me to start there was my first conversation with Sebastian Betz, co-founder and CTO of ABOUT YOU. Also the close cooperation with him in the course of my work was an advantage as well.
What made you even think of writing your own framework?
Yeah, it sounds crazy sometimes. But when I look at the framework environment of Node.Js, there is no framework that is close to Rails or Laravel. Furthermore, there aren’t many frameworks that give developers experience priority over other things. If you take a look at the issues board of popular frameworks, many have been closed with a note “This will make the framework slow by x microseconds”. As a company, you value speed, but of course this should not be at the expense of the productivity of your developers. This background knowledge has been incorporated into the development of AdonisJs, it makes decisions for you and offers tons of first-party add-ons, so you need less brain power for decisions that aren’t even directly related to your product or business.
When did you release the first version of AdonisJs and what exciting news can we expect in the upcoming versions?
I built AdonisJs in the end of 2015 and released the first version in the beginning of 2016. Since then the framework has evolved a lot. We are now working on the 5th version of AdonisJs and I think this could be the best release of all time for AdonisJs. Below you can find a short overview about the major extensions of the framework:
- First class support for Typescript.
- Built-in profiler to tracking and login actions in your application. During an HTTP request, you will also see how much time it takes to find the route, execute a SQL query and render a view.
- The profiler itself will add very less overhead to your application, because it will stream data to stdout and the data aggregation takes place in a different process.
- Once the profiler becomes stable, we need to work on something similar to skylight.io for AdonisJs. This will be a big step towards the implementation of the framework, as you as a company can identify bottlenecks in your application without getting mad.
- More information about the development process are available at RFCs repo.
What is different about AdonisJs compared to other frameworks?
There are not a lot of fully developed frameworks in the ecosystem of Node.js. This makes AdonisJs something very special: Instead of finding the best modules on npm and then using their intelligence to see if they work well together, we have covered them with first-class support in many areas of AdonisJs:
- SQL ORM
- Template engine
- Social authentication with Facebook, Google and so on
- Command line commands
- Database migrations
- Integrated security to protect you from XSS attacks, CSRF protection, content sniffing and many more
- First class support for testing all of the above
All this is still possible if you use generic npm modules. However, you need to find the best packages and then spend some time combining them properly.
In which context are you using AdonisJs at ABOUT YOU?
There are plans that we will use AdonisJs to create some microservices and especially the API, which is used directly from the storefront. Currently, we are still in the planning phase, but stay tuned and learn what will happen with AdonisJs at ABOUT YOU!
What is the ABOUT YOU Resource Center?
The ABOUT YOU resource center is the documentation hub of ABOUT YOU CLOUD, our in-house developed eCommerce infrastructure for high-growth and innovative online retailers. The scope of the ABOUT YOU CLOUD is huge and documentation is the key to success of our customers. The plan is to provide customers with diverse content in form of:
- User manuals: Focused on product managers
- Developer guides: Focused on technical teams and developers
- API docs: Super technical in-depth documentation of our REST API
- ABOUT YOU Academy: Courses to master specific areas of the cloud. For example: Courses, which are focused on Checkout, Gift cards, Product management and so on.
Who would you say is AdonisJs most suitable for?
AdonisJs is a web framework mainly designed for writing REST-API web servers or server rendered applications. It is a good solution for all those, who have a building app, which fulfills the following requirements:
- Support for sending emails
- Ease to validate user data
- Using SQL as your main datastore
- Writing structured code
Why did you decided to build a huge opinionated framework, when everyone in Node.js community is creating smaller frameworks/libraries?
I think smaller frameworks and libraries are great, but what’s the point if everyone wants to build Expressjs thirty times with minor performance improvements? The history of Node.js has lot to do with the obsession for smaller frameworks. If you’re searching on Google today, ‘how is Node.js used?’ Then you will always end up with the same names as Netflix, Paypal, Linkedin, Google or Microsoft. Smaller frameworks and libraries are great for these companies, because they have their own complex authentication systems, data processing layers and company wide standards for writing code. But the glamour of these companies has hidden the small and medium-sized businesses that don’t have the time and resources to take multiple node packages and wire them.With AdonisJs, these companies can start their development and focus on solving their business problems. Similarly, Rails helped many companies, including Twitter to reach masses by building and shipping their products quickly.
AdonisJs is an open source framework — if someone would like to contribute, where would he or she have to go?
For this purpose, we have a contribution guide on the website. We are constantly developing this area further by writing more documentation and also developing tools that can help to create new packages and addons for AdonisJs. In addition, we are always looking for contributors to help improve documentation, write articles, and educate you about using AdonisJs. In addition, we are always looking for contributors that can help us improving documentation, writing articles and educating you about using AdonisJs.
Thank you for the interview, Harminder!