Over the past 5 years, Node.js has changed a lot, but the knowledge in the platform community has remained at the level of 2013-2015, all the same approaches, all the same problems. The community is not watching for new features, and if somebody finds out something new, it doesn't affect everyday code style and techniques. Fundamental CS knowledge, software engineering, and architecture, parallel programming, GRASP, SOLID, GoF are weakly penetrating into Node.js and even in JavaScript. Even if they do, they don't undergo adaptation and rethinking. Therefore, among other programming languages, JavaScript is perceived as frivolous, and Node.js as a platform for uneducated people.
How to overcome this trend and how to change Node.js development approaches in 2020 using all modern capabilities and knowledge, as well as what needs to be changed in daily code writing practices, these and other issues will be covered in this talk: Node.js в 2020: Get out and come back again".
Node.js Starter Kit is being prepared, a review of the status of Node.js for April 2020, code isolation using threads, sandboxes, containers and software abstractions, what is the meaning of deno, v8 Serialization API, sandbox vm and vm.Script, ES.Next support, parallel and asynchronous programming, answers to questions.
Overview of common problems: memory and resource leaks, ignoring errors and potential places of their occurrence, violation of the GRASP and SOLID principles in Node.js, concepts of connectivity and engagement of software components, the use of GoF patterns and other design patterns, an overview of antipatterns in Node.js and how this should influence the writing of daily code.
We’ll finish the review of the new features of Node.js and put it all together in the Node.js Starter Kit (project template) from the Metarhia community to build reliable and scalable cloud and cluster applications and quickly develop APIs for highly loaded and interactive systems. The Metaserverless manifest will be published. We will analyze the code, discuss the use of the latest features of the Node.js platform and the fundamental knowledge of CS to build a competent structure and architecture of the project.