Skip to content

Latest commit

 

History

History
143 lines (142 loc) · 3.06 KB

NodeJS.md

File metadata and controls

143 lines (142 loc) · 3.06 KB

Node.js and backend

  • Internals and concepts
    • Strong and weak sides of node.js
    • Stateful and stateless servers
    • Nonblocking I/O and blocking code
    • Event loop phases
    • Event loop microtasks and macrotasks
    • Garbage collection
    • Node.js LTS schedule
    • I/O-bound, CPU-bound, memory-bound tasks
    • Interactive applications (close to real-time)
  • Modularity, layers and dependencies
    • CommonJS modules
    • ECMAScript modules
    • Module node:module
    • Caching in CJS and ESM
    • Modules as singletons
    • Contexts and scripts module node:vm
    • Dependencies: npm, node_modules
    • Files package.json, package-lock.json
    • Module-based permissions model
    • Isolation with modularity
    • Dependency injection
    • DI containers
    • Coupling and cohesion
    • Framework agnostic approach
  • Environment
    • Command line arguments
    • Node.js CLI
    • Process-based permissions
    • Graceful shutdown
    • Clustering
    • Watch filesystem changes with --watch
  • Internal API
    • Streams API
    • Web Streams API
    • Crypto API
    • Password hashing with crypto.scrypt
    • Web Crypto API
    • File system API (sync and async)
    • Copy folder recursively
    • Worker threads
    • Performance hooks
    • Native fetch and nodejs/undici
    • async_hooks
    • AsyncLocalStorage
    • AsyncResource
    • Deprecated domain API
    • Node.js single executable
    • SharedArrayBuffer
    • Module node:worker_threads
    • Module node:child_process
    • MessageChannel, MessagePort
    • BroadcastChannel
    • Generating crypto random UUID
    • Module node:url vs new URL
    • Module node:assert
    • Internationalization
    • Blob, File, Buffer, module node:buffer
    • Module node:zlib
  • Network
    • Endpoint throttling
    • ALPN
    • SNI callback
    • SSL certificates
    • Protocol agnostic approach
    • Fetch API
    • IncomingMessage
    • HTTP(S)
    • TCP/SSL
    • UDP
    • TLS
    • Websocket
    • SSE
    • HTTP/3 (QUIC)
    • Long polling
    • REST
    • RPC
    • Routing
    • DoS
    • DDoS
    • XSS
    • Path traversal
    • CSRF
    • DNS
    • SQL injection
    • noDelay
    • keep-alive
    • IP sticky sessions
  • Technique and tools
    • Native test runner
    • Logging
    • Application configuring
    • Testing
    • CI/CD
    • Readable
    • Writable
    • Transform
    • Back pressure
    • Buffer
    • Console
    • Inspector
  • Data access
    • Data access layer
    • Repository
    • Active record
    • Query builder
    • Object-Relational Mapping
    • CRUD
    • DTO
  • Error handling and debugging
    • Error
    • error.cause
    • error.code
    • error.message
    • error.stack
    • Error.captureStackTrace
    • How to avoid mixins
    • Uncaught exceptions
    • Heap dump
    • Debugging tools
    • Flame graph
    • Memory leaks
    • Resource leaks
    • Data race
  • Integrations and bindings
    • Native addons
    • C and C++ addons
    • Rust addons
    • Zig addons
    • NAN (Native Abstractions for Node.js)
    • Node-API (formerly N-API)
    • NAPI C and C++
    • NAPI Rust
    • NAPI Zig
    • Webassembly WAT
    • Webassembly C and C++
    • Webassembly Rust
    • Webassembly Zig
    • Webassembly AssemblyScript
    • Shared memory
    • V8 binary serialization