A few years ago, it was very common to find several IT professionals specialized in just one kind of technology, code language or platform. People dedicated to reviewing all the backend stuff thought that they do not have anything to do with the frontend layer, after all one is developed in Java and C# and the other in HTML and JavaScript. This approach was not good. As times change, we need to start understanding that one application involves not only one part of the business, such as logistic or sales. Your application should involve the entire business and represent it on a binary world with same features, restrictions, and rules. As only a backend developer, your understanding of how data is displayed to the final user is very limited. As just a frontend developer, your knowledge of how many distributed applications interact and retrieve data to be interpreted on the screen is very limited too. As a first consequence, the development time increases and the product quality is not the desired one. Many IT professionals are now leaving their comfort zone and exploring the other side. A full stack developer is not only a developer with knowledge of backend and frontend languages. A full stack developer is a professional capable of understanding and translating each business requirement into application features, knowing the general impact and the changes it could include. Their diagnostic and time duration required to deliver will be always shorter to reality because they know exactly how the current product works, with external dependencies and different platforms.
The microservice revolution came with many changes for the industry. Nowadays, it is not enough to have a good knowledge of just one code language. NoSQL databases changed the relational paradigm, and strict object-oriented languages are now exploring the functional paradigm. These things enforces you to start understanding different programming paradigms, code languages, and frameworks. But there is one language that from its beginning, the only thing it did is grow: JavaScript.
Throughout this book, you will be introduced to the main JavaScript concepts and start understanding how this code language works and why it is so adopted by the community. JavaScript could be used as an object-oriented language or function too. Its flexibility is one of its most awesome features, and the development speed is faster compared with other traditional programming languages. Not only this, JavaScript was empowered with their own runtime platform outside the browser, NodeJS. In this book, you will find that Node is our main partner to develop JavaScript applications, and its simplicity to include external libraries and reuse code is simply awesome.
Tools such as CSS preprocessors, task automation, and testing coverage will be also explained and will give you the knowledge to participate in any development team, understand and propose new features. Our horse battle, Aurelia, will be present in this stage. You must have heard about popular frontend frameworks, such as Angular, or libraries, such as React. Aurelia comes with a very different approach, solving most of the common problems you would find and, of course, making your development process very easy. Forget about configuring the framework and your worries about data binding, AJAX calls, integration with third-party libraries, and so on, Aurelia comes with a big variety of plugins that are ready to help you in any situation, in a very simple way, and allows you to focus only on business code. Aurelia is not just another frontend framework, it is the future of frontend development.
Over the years, JavaScript was used just in frontend layer; with NodeJS, this approach has changed too. The fact that we can execute our JavaScript code in its own runtime environment allows us to start writing backend functionalities to be consumed for the frontend layer. ExpressJS is the backend framework based on NodeJS that will allow us to write our business processing data functionalities in a very simple way, high understandable and just with a few lines of code. To complete your travel through the backend layer, we will show you how to store data in one of the most famous NoSQL databases: MongoDB. Its simplicity and speed to insert and extract data are just amazing.
The IT world changes quickly, and you need to be updated on any change. You will also learn how to secure, test, and prepare your application for the real world and use cloud platforms to deploy your projects that are available worldwide, highly scalable, and secured. Are you ready to start your journey to become a great full stack developer?
Then, we welcome you to the new M.E.A.N. approach (MongoDB, ExpressJS, Aurelia, NodeJS).