Skip to content

Latest commit

 

History

History
143 lines (142 loc) · 3.3 KB

NodeJS.md

File metadata and controls

143 lines (142 loc) · 3.3 KB

Node.js and backend

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