Skip to content

Latest commit

Β 

History

History
143 lines (142 loc) Β· 4.18 KB

File metadata and controls

143 lines (142 loc) Β· 4.18 KB

Node.js and backend

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