The Complete Node.js: Erfahrungsbericht Udemy Developer Course
- von Autor
Marc Bissinger, Junior Softwareentwickler bei sidion
Beschreibung und Evaluierung des Online Kurses: The Complete Node.js Developer Course (3rd Edition) by Andrew Mead
Im Kurs werden grundlegende Kenntnisse vermittelt, um mit professioneller Node.js-Entwicklung zu beginnen. Dabei besteht der Kurs nicht nur aus reinem Nachmachen ("Monkey see, Monkey do"), sondern beinhaltet vielerlei kleinere Challenges, die dabei helfen, das Erlernte durch eigene Übung zu festigen.
Im Kurs werden vier Anwendungen entwickelt und mit Heroku bereitgestellt:
- eine "Notes-App", die über die Kommandozeile bedient wird
- eine "Weather-App" u.a. mit dem Express-Framework
- eine "Task-App" u.a. mit Express, Mongo-DB (Mongoose), Jest Testing Framework
- eine "Chat-App" mit Socket.io
Außerdem werden im Rahmen der Entwicklung grundlegende Konzepte erklärt wie: ES6 Arrow Functions, Callbacks, Promises, Promise-Chaining und Async/Await. Der Dozent ist ein erfahrener Node-Entwickler, hat sehr viel Mühe in den Kurs gesteckt und hält diesen laufend auf dem aktuellsten Stand bzgl. APIs, NPM-Libraries, etc.
Der Kurs ist auf Englisch gehalten und aus meiner Sicht für alle Einsteiger in die Welt von Node.js. sehr empfehlenswert, dabei werden nur geringe JavaScript-Kenntnisse vorausgesetzt.
Im Folgenden werde ich grob auf die wichtigsten Themen des Kurses eingehen.
Node.js
- a JavaScript Runtime
- build on Chromes V8 JavaScript-Engine
- "eventdriven, non-blocking, i/o model, lightweight and efficient" (https://nodejs.org/en/)
- the node.js package-ecosystem npm is the largest ecosystem of open source libraries in the world
- npm contains pre-written packages that solve typical problems in a lightweight and efficient way
"Notes-App"
CRUD operations via command line using the npm "yargs"-library and style the output with chalk
npm libraries:
- chalk: https://www.npmjs.com/package/chalk
- validator: https://www.npmjs.com/package/validator
- yargs : https://www.npmjs.com/package/yargs
"Weather-App"
Using the Express-Framework (https://expressjs.com/) that provides an easy way to develop web-applications with Node.js. The application uses the weatherstack-api (https://weatherstack.com/) to get the current weather data and the mapbox geocoding-api (https://docs.mapbox.com/api/) to determine latitude and longitude of a given location.
Other libraries that are used:
- hbs: Express.js view engine for handlebars.js (https://www.npmjs.com/package/hbs)
- request: deprecated but widely used
- nodemon: makes development much more comfortable by automatically restarting after saving a file (https://www.npmjs.com/package/nodemon)
Heroku (platform as a service) is used to build, run, and operate our weather-application in the cloud.
"Task-App"
Using Express.js to provide a backend-service for task-management with mongodb that contains the following libraries:
- bycrypt (https://www.npmjs.com/package/bcryptjs) for user password-encryption
- jsonwebtoken (https://www.npmjs.com/package/jsonwebtoken) for authorization
- mongoose (https://mongoosejs.com/) as an object document mapper (ODM) provides a straight-forward, schema-based solution to model our application data. The library makes working against a mongo db more comfortable.
- multer (https://www.npmjs.com/package/multer) is used as a middleware for file-upload and validation.
The course-project contains an example how to write an authentication middleware and deals intensively with the specification of automated tests via jest and supertest:
- jest (https://www.npmjs.com/package/jest)
- supertest (https://www.npmjs.com/package/supertest)
"Chat-App"
Using express and socket.io to develop a chat-app to enable real-time communication between different clients in the web.
Socket.IO enables real-time, bidirectional and event-based communication.
It works on every platform, browser or device, focusing equally on reliability and speed. (https://socket.io/)
The app uses the npm library "bad-words" (https://www.npmjs.com/package/bad-words) to filter swear-words.
To display an user-interface we use client side JavaScript, HTML5 and CSS3. Besides socket.io there are other popular libraries used and presented in the class: Mustache, Moment (https://momentjs.com/) and QS.
Fazit
Meiner Meinung nach ist der Kurs sehr empfehlenswert und bietet einen optimalen Einstieg in Node.js. Zu jedem Kapitel gibt es ein Kurs-Projekt, das als Beispiel und Dokumentation für eigene Entwicklungen dienen kann. Sowohl Wetter-App, Task-Manager als auch die Chat-App werden im Kurs Schritt für Schritt bis zum Deployment entwickelt. Die Kombination aus Theorie, "Vorprogrammieren und Nachmachen" und eigener Challenges macht Spaß, genau wie der Technologie-Stack an sich. Im Kurs-Ordner ist zusätzlich ein Skript mit allen wichtigen Informationen zum Nachschlagen enthalten.