Overview
Audience:
Typically, a Project Manager, Aanalyst, Developer or anyone who needs:
- Explore the node.js framework and architecture
- Explore Express.js as a solution for web development
- Assess Node.js & Express.js as solutions for web development
- Advantages and disadvantages over Java
- To have a good understanding of an application’s structure and deployment mechanisms
- To carry out Installation / production environment / architecture tasks and configuration
- To be able to assess code quality, perform debugging, monitoring
- To implement advanced production like Logging
Objectives:
- Explore the advantages and characteristics of Node.js (In comparison with Java)
- Explore Express.js: Architecture, administration (In comparison with Java EE)
- Explore and apprehend all the features and functionalities of the webstorm platform for Node.js
- Explore and apprehend all the features and functionalities of the pm2 production process manager
- Explore and apprehend advanced logging with Winston.js
Description:
The course is normally 3 days (7 hours a day) and has a heavy emphasis on hands on practice. Most of the concepts are discovered through code readings, exercises and labs.
Requirements
The attendees must have some understanding of development with Node.js and Express.js
Course Outline
Node.js characteristics & Fundamentals (In comparison with Java)
- Node.js, V8 & Server side development (why use Node.js ?)
- Blocking vs. Non-Blocking
- Event-driven Programming
- Event Loop & the Callback pattern
- Node.js Architecture
- Module & Sandbox Pattern
- Npm
- Dependency mechanisms
- The package.json file
- V8 engine internals
- Memory schemes
- Garbage collection
- Memory leaks
- Monitoring memory and CPU
- Logging with Node.js
- Node.js Middleware
- SSL & TLS
- Node.js versions & migrations
Express.js characteristics & Fundamentals (In comparison with the Java EE specification (Websphere, Tomcat)))
- Application configuration & settings
- Template engines
- Routing
- HTTP
- Request and Response Objects
- SSL & TLS
- Error handling
- Multithreading
- JSON
WebStorm
- Getting started
- Smart Features
- Package Managers
- WebStrom & Node, Angular, Express
- Code inspection, quality tools, profiling
- Debugging
- Unit testing
PM2
- Application packaging and deployments
- Nodejs+pm2 runtime packaging and deployment
- Nodejs scripts package
- Checking and switching nodejs version
- Filesystem locations and standards
- Logging
- Init scripts
- SSL/TLS certificates
- Monitoring
- Stop, start, delete, resurrect applications
- Stop, start, resurrect PM2 process
Logging with Winston.js
- Logging with winston
- Transports
- Loggers
- Log levels
- Profiling
- Streaming logs
- Querying logs
- Filters, Rewriters