Skip to content

Latest commit

 

History

History
170 lines (169 loc) · 4.09 KB

NodeJS.md

File metadata and controls

170 lines (169 loc) · 4.09 KB

Node.js and backend

  • Internals and concepts
    • Strong and weak sides of node.js: 🎓 known
    • Stateful and stateless servers: 👂 heard
    • Nonblocking I/O and slocking code: 👂 heard
    • Event loop: phases: 👂 heard
    • Event loop: microtasks and macrotasks: 👂 heard
    • Garbage collection: 👂 heard
    • Node.js LTS schedule
    • I/O-bound, CPU-bound, memory-bound tasks
    • Interactive applications (close to real-time): 👂 heard
  • Modularity, layers and dependencies
    • CommonJS modules: 👂 heard
    • ECMAScript modules: 🎓 known
    • node:module : 🎓 known
    • Caching in CJS and ESM
    • Modules as singletons
    • Contexts and scripts node:vm : 👂 heard
    • Dependencies: npm, node_modules: 🎓 known
    • Dependencies: package.json and package lock: 🎓 known
    • Module-based permissions model
    • Isolation with modularity
    • Dependency injection: 👂 heard
    • DI containers
    • Coupling and cohesion
    • Framework agnostic approach
  • Environment
    • Command line arguments: 👂 heard
    • Node.js CLI: 👂 heard
    • Process-based permissions: 👂 heard
    • Graceful shutdown
    • Clustering
    • Watch filesystem changes with --watch: 👂 heard
  • Internal API
    • Streams API
    • Web Streams API
    • Crypto API: 👂 heard
    • Password hashing with node:crypto.scrypt: 👂 heard
    • Web Crypto API: 👂 heard
    • File system API: sync and async
    • Copy folder recursively
    • Worker threads
    • Performance hooks
    • Native fetch and nodejs/undici
    • node:async_hooks
    • AsyncLocalStorage
    • AsyncResource
    • Deprecated domain API
    • Node.js single executable
    • Stream back pressure
    • SharedArrayBuffer
    • node:worker_threads
    • node:child_process
    • MessageChannel, MessagePort
    • BroadcastChannel
    • Generating crypto random UUID
    • node:url vs new URL
    • node:assert
    • Internationalization
    • Blob, File, Buffer, node:buffer
    • Module node:zlib
  • Application structure and architecture
    • Isolation between layer
    • Multilayer approach
    • Separation of concerns
    • Inversion of control
    • Dependency injection: 👂 heard
    • GRASP: 👂 heard
    • SOLID: 👂 heard
    • GoF patterns: 👂 heard
    • Distributed systems
    • Highload applications
    • Clean architecture: 👂 heard
    • DDD
    • Message Queue
    • CQS
    • CQRS
    • Event sourcing
    • Load balancing
    • Serverless clouds
    • FaaS clouds
    • Fat controller: 👂 heard
    • GoF for Node.js
    • Leaking abstractions
  • Network
    • IP sticky sessions
    • Endpoint throttling
    • HTTP(S): 🎓 known
    • TCP/SSL: 👂 heard
    • UDP: 👂 heard
    • TLS: 👂 heard
    • Websocket: 👂 heard
    • SSE
    • HTTP/3 (QUIC)
    • Long polling
    • REST: 👂 heard
    • RPC
    • Routing: 👂 heard
    • DoS
    • DDoS
    • XSS
    • Path traversal
    • CSRF
    • DNS: 👂 heard
    • Fetch API
    • IncomingMessage
    • SQL injection: 👂 heard
    • noDelay
    • keep-alive
    • ALPN
    • SNI callback
    • SSL certificates
    • Protocol agnostic approach
  • Technique and tools
    • Native test runner
    • Logging: 👂 heard
    • Application configuring
    • Testing: 🎓 known
    • CI/CD
    • Readable: 👂 heard
    • Writable: 👂 heard
    • Transform
    • back pressure
    • Buffer
    • Console: 🎓 known
    • Inspector
    • Reliability
    • Quality
    • Availability
    • Flexibility
  • Data access
    • Data access layer
    • Repository: 👂 heard
    • Active record
    • Query builder
    • Object-Relational Mapping
  • Error handling and debugging
    • Error: 🎓 known
    • error.cause: 👂 heard
    • error.code: 👂 heard
    • error.message: 👂 heard
    • error.stack: 👂 heard
    • How to avoid mixins
    • Error.captureStackTrace: 👂 heard
    • Uncaught exceptions
    • Heap dump
    • Debugging tools: 👂 heard
    • Flame graph
    • Memory leaks: 👂 heard
    • 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
    • SharedArrayBuffer
    • V8 binary serialization