>[!note] What's important about the guide is that it shows the complete picture of how web development concepts directly map to computer science principles, making it easier for a CS bro to leverage their existing knowledge while learning web development. # Enhanced Computer Science to Web Development Terminology Guide ## Core Design Patterns & Programming Paradigms | Web Development Term | Computer Science Equivalent | Explanation | | ------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Factory Pattern (Component Factories) | Creational Design Pattern | Factories abstract the creation process of objects, allowing creation without specifying exact class. In React, createElement is a factory function that creates components. In Angular, services use factories for dependency injection. In CS, factories implement polymorphism by returning different concrete classes through a common interface. | | Singleton Pattern (Store, Service) | Resource Management Pattern | Used for services that should have exactly one instance (e.g., Redux store, authentication service). In CS, singletons control access to resources like database connections or configuration managers. | | Observer Pattern (Event Systems) | Event Notification Design Pattern | Core to reactive programming, used in frameworks like RxJS, Vue's reactivity system. In CS, this enables loose coupling between objects by allowing objects to subscribe to changes in other objects. | | Decorator Pattern (HOCs, Decorators) | Structural Design Pattern | Used in JavaScript/TypeScript decorators, React HOCs, and Angular decorators. In CS, decorators dynamically add behaviors to objects without modifying their core structure. | | Strategy Pattern (Render Props) | Behavioral Design Pattern | Used in React's render props pattern and algorithm customization. In CS, strategies allow algorithms to be selected at runtime, supporting interchangeable implementations. | | Dependency Injection | Inversion of Control Technique | Angular's core principle, but also in React's Context API and service locators. In CS, DI separates object creation from usage, improving modularity and testability. | | Proxy Pattern (JavaScript Proxies) | Interceptor Design Pattern | Used for Vue's reactivity system, JavaScript Proxies, and Service Workers. In CS, proxies provide a surrogate for another object to control access to it. | | Composition over Inheritance | Object Composition Principle | React encourages component composition rather than inheritance hierarchies. In CS, this principle advocates building complex functionality by combining simpler objects rather than deep inheritance trees. | | Pure Functions | Functional Programming Concept | Cornerstone of React and Redux, functions without side effects. In CS, pure functions are deterministic, output depends only on inputs, making code more testable and predictable. | | Immutability | State Management Principle | Critical in Redux and React state management. In CS, immutable data cannot be changed after creation, simplifying reasoning about program behavior by preventing unexpected state changes. | ## Web Fundamentals (The Building Blocks) |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |DOM (Document Object Model)|Tree data structure|The DOM is a programming interface for HTML documents, representing the page as a hierarchical tree structure. This maps directly to tree data structures in CS, with traversal algorithms and modification operations.| |HTML|Markup language/Declarative syntax|HTML defines document structure using a declarative syntax. In CS terms, it's both a markup language and a specification for structured documents, similar to XML or other tree-structured data formats.| |CSS|Declarative rule system|CSS is a rule-based language for styling. In CS, it represents declarative programming where you specify what should be done, not how—similar to constraint-based systems or logic programming.| |JavaScript|Multi-paradigm programming language|JavaScript combines functional, object-oriented, and procedural paradigms. Unlike many CS languages, it uses prototype-based inheritance rather than class-based, with first-class functions supporting functional programming patterns.| |Browser|Runtime environment/Virtual machine|Browsers implement a complex runtime environment with JIT compilation, memory management, and sandboxing. In CS terms, this is comparable to the JVM or .NET CLR but with web-specific APIs.| |URL (Uniform Resource Locator)|Resource identifier/Addressing scheme|URLs provide a standardized addressing scheme for resources. In CS, this relates to naming/addressing in distributed systems and resource location protocols.| |HTTP/HTTPS|Stateless application protocol|HTTP implements a request-response pattern using a stateless protocol. In CS, this relates to network protocol design, with particular approaches to connection management, caching, and security.| |Browser rendering engine|Pipeline processor|Rendering engines like Blink and Gecko implement a pipeline from HTML/CSS to pixels. In CS, this mirrors compilation pipelines and graphics rendering pipelines with distinct processing stages.| ## JavaScript Core Concepts |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Closure|Lexical scoping mechanism|Functions that remember their lexical environment, even when executed outside it. In CS, closures capture variables from enclosing scopes, implementing lexical scoping and enabling higher-order functions.| |Prototype chain|Delegation-based inheritance|JavaScript's object system uses prototypal inheritance. In CS, this implements the delegation pattern, where objects delegate behavior to prototype objects, contrasting with class-based inheritance in languages like Java.| |Promise|Future/Deferred computation|Promises represent asynchronous operations that may complete in the future. In CS, these are equivalent to futures or promises in concurrent programming, representing a value that will be available later.| |Async/Await|Coroutine/Continuation|Syntactic sugar over promises for asynchronous code that reads like synchronous code. In CS, this is similar to coroutines, generators, or continuations, which allow pausing and resuming execution.| |Callback|Function pointer/Continuation passing|Functions passed as arguments to be called later. In CS, callbacks implement continuation-passing style, where control flow is passed explicitly as an argument.| |Hoisting|Declaration preprocessing|JavaScript moves variable and function declarations to the top of their scope. In CS, this relates to the compilation phases of scanning and declaration processing before execution.| |Event loop|Concurrency model|JavaScript's non-blocking, single-threaded execution model. In CS, this implements an event-driven architecture with a message queue and event dispatcher, similar to actor models but constrained to a single thread.| |Garbage collection|Automatic memory management|JavaScript automatically reclaims memory from objects that are no longer referenced. In CS, this is a form of automatic memory management, using strategies like mark-and-sweep or reference counting.| |Temporal dead zone|Variable lifecycle management|Period between entering scope and declaration where variables cannot be accessed. In CS, this relates to variable lifecycle management and lexical scoping rules.| |Memoization|Dynamic programming optimization|Caching results of expensive function calls. In CS, this implements dynamic programming for optimizing recursive algorithms by storing intermediate results.| ## Component Architecture |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Component|Encapsulated UI module|Self-contained, reusable UI building blocks. In CS, components implement modular design principles, encapsulating state and behavior while exposing a defined interface.| |Props|Function parameters/Configuration|Data passed to components that influences rendering. In CS, props are similar to function parameters or object constructor arguments that configure behavior.| |Component State|Internal object state|Mutable data that affects a component's rendering and belongs to that component. In CS, this is equivalent to instance variables in object-oriented programming that track object state.| |Virtual DOM|Optimized tree diffing|In-memory representation of the UI that's compared with previous versions to minimize DOM updates. In CS, this implements efficient tree diffing algorithms and optimized batching of operations.| |Lifecycle methods|Object lifecycle hooks|Methods called at specific points in a component's existence. In CS, these are similar to constructor/destructor patterns and lifecycle management in stateful objects.| |Hooks|Stateful function components|Functions that let you use state and lifecycle features in function components. In CS, hooks implement a form of aspect-oriented programming by providing cross-cutting concerns like state management.| |Render functions|View generation|Functions that describe UI based on props and state. In CS, these implement a declarative approach to UI generation, similar to template engines but using JavaScript expressions.| |Shadow DOM|Encapsulation mechanism|Browser technology for DOM and style encapsulation. In CS, this implements information hiding and encapsulation principles, creating isolated DOM subtrees.| |Controlled components|State-driven interfaces|Form elements whose values are controlled by React state. In CS, this implements the principle of single source of truth, making state explicit and predictable.| |Higher-Order Components|Function decorators|Functions that take a component and return a new component with enhanced functionality. In CS, HOCs implement the decorator pattern and function composition, enabling reusable component logic.| ## State Management |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Application State|Program state management|Data that affects the entire application. In CS, this relates to global state management and the challenges of maintaining consistent state across a program.| |Redux|Unidirectional data flow|State management using actions, reducers, and a single store. In CS, Redux implements the flux architecture, using pure functions (reducers) and immutable data structures for predictable state transitions.| |Context API|Dynamic scoping|Mechanism to share values across a component tree without prop drilling. In CS, this implements a form of dynamic scoping, where values are accessible to any component in a subtree without explicit passing.| |Reducers|Pure state transition functions|Functions that determine how state changes in response to actions. In CS, reducers implement state machines where each action triggers a deterministic state transition, ensuring predictability.| |Action creators|Message factories|Functions that create action objects. In CS, these implement the factory pattern for creating standardized message objects that trigger state transitions.| |Middleware|Interceptor chain|Functions that intercept actions before they reach reducers. In CS, middleware implements the interceptor pattern or chain of responsibility, allowing pre-processing of messages.| |Selectors|Derived data calculators|Functions that extract and possibly transform specific pieces of state. In CS, selectors implement memoized calculations over state, similar to database views or derived attributes.| |Immutable updates|Non-destructive modification|Techniques to update state without modifying the original. In CS, this implements persistent data structures, where operations create new versions while preserving previous versions.| |State normalization|Database normalization|Organizing state to avoid duplication and inconsistency. In CS, this implements database normalization principles, storing entities by ID and using references instead of duplication.| |Thunks/Sagas|Asynchronous coordination|Patterns for handling side effects in Redux. In CS, these implement different models of asynchronous computation coordination, with thunks using function composition and sagas using generator-based workflows.| ## HTTP and Data Fetching |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |AJAX|Asynchronous I/O|Making requests without page reloads. In CS, AJAX implements asynchronous I/O patterns, allowing non-blocking network operations in a single-threaded environment.| |Fetch API|Promise-based I/O|Modern API for making HTTP requests. In CS, this implements a promise-based asynchronous I/O model, representing future responses as promise objects.| |REST API|Resource-oriented architecture|API design style focused on resources and standard operations. In CS, REST applies resource-oriented architecture principles with uniform interfaces and stateless operations.| |GraphQL|Query language/Type system|API query language with a typed schema. In CS, GraphQL implements a domain-specific query language with static typing, allowing precise data fetching with type checking.| |JSON|Data serialization format|Lightweight data interchange format. In CS, JSON is a concrete implementation of data serialization, with specific syntax and type mapping rules for transferring structured data.| |CORS|Security policy|Mechanism controlling cross-origin requests. In CS, CORS implements a security policy framework, defining rules for cross-boundary resource access in distributed systems.| |Websockets|Bidirectional communication channel|Protocol for two-way communication between client and server. In CS, websockets implement full-duplex communication channels for real-time data exchange, contrasting with the request-response pattern of HTTP.| |Polling/Long polling|Synchronization strategies|Techniques for checking or waiting for updates. In CS, these implement different strategies for synchronizing state between distributed systems with trade-offs in latency and resource usage.| |Content negotiation|Protocol capability discovery|Mechanism for selecting the best representation of a resource. In CS, this implements protocol-level capability negotiation, allowing clients and servers to agree on message formats.| |HTTP status codes|Protocol state signaling|Standardized response codes indicating request status. In CS, these implement protocol-level state signaling, providing a structured way to communicate outcomes in distributed interactions.| ## Web Security |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Cross-Site Scripting (XSS)|Code injection vulnerability|Vulnerability allowing injection of malicious scripts. In CS, XSS is a specific form of code injection attack, exploiting insufficient input validation and output encoding.| |Cross-Site Request Forgery (CSRF)|Session hijacking attack|Attack tricking users into unauthorized actions. In CS, CSRF exploits implicit authentication mechanisms, demonstrating the principle of complete mediation failure.| |Content Security Policy (CSP)|Code execution policy|Security layer restricting resource loading and script execution. In CS, CSP implements a security policy enforcement mechanism based on the principle of least privilege.| |Same-Origin Policy|Security boundary|Restriction preventing scripts from accessing data from other origins. In CS, this implements the principle of domain isolation, creating security boundaries between different web origins.| |HTTPS/TLS|Encrypted communication|Protocols for secure communication over networks. In CS, these implement cryptographic protocols for confidentiality, integrity, and authentication in networked communications.| |JWT (JSON Web Tokens)|Self-contained credentials|Compact, self-contained tokens for authentication and information exchange. In CS, JWTs implement capability-based security tokens with digital signatures for authenticity verification.| |OWASP Top 10|Security vulnerability taxonomy|Classification of common web application security risks. In CS, this represents a domain-specific application of threat modeling and vulnerability classification.| |SQL Injection|Code injection vulnerability|Attack inserting malicious SQL code. In CS, this is a classic example of the failure to separate code from data, demonstrating the importance of prepared statements or parameterized queries.| |OAuth|Delegated authorization|Protocol for secure authorization to third-party services. In CS, OAuth implements capability-based security and the principle of least privilege for third-party access to resources.| |CAPTCHA|Turing test implementation|Challenge-response test to determine human users. In CS, CAPTCHAs implement a form of the Turing test, distinguishing humans from automated systems through problems easy for humans but difficult for machines.| ## Performance and Optimization |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Code splitting|Dynamic loading|Splitting code into smaller chunks loaded on demand. In CS, this implements principles of lazy loading and dynamic linking, loading resources only when needed.| |Tree shaking|Dead code elimination|Removing unused code during bundling. In CS, this implements compile-time optimization techniques like dead code elimination, reducing program size by removing unreachable code.| |Lazy loading|On-demand resource allocation|Loading resources only when they become visible or needed. In CS, this implements resource optimization principles, conserving memory and bandwidth through just-in-time allocation.| |Memoization|Computation caching|Caching function results to avoid recalculation. In CS, this implements dynamic programming techniques, trading space for time by storing previous computation results.| |Debounce/Throttle|Input rate limiting|Techniques to control frequency of function execution. In CS, these implement rate-limiting algorithms, managing computational load from high-frequency event streams.| |Critical rendering path|Execution pipeline optimization|Optimizing the sequence of steps browsers take to render pages. In CS, this applies pipeline optimization techniques to the browser rendering process.| |Browser caching|Resource caching|Storing resources locally to reduce network requests. In CS, this implements multi-level caching strategies, optimizing for locality of reference in distributed systems.| |Preloading/Prefetching|Speculative loading|Loading resources before they're explicitly needed. In CS, these implement predictive optimization techniques, speculating on future resource needs to reduce perceived latency.| |CSS containment|Layout isolation|Isolating layout, style, paint, and size of elements. In CS, this implements compartmentalization and boundary optimization techniques, limiting the scope of expensive recomputation.| |Time to Interactive (TTI)|Performance metric|Measure of when a page becomes interactive. In CS, TTI represents a domain-specific application of system responsiveness metrics, focusing on user perception rather than raw performance.| ## Browser Storage and State Persistence |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Cookies|Stateful HTTP extension|Small text files stored by browsers for state persistence. In CS, cookies implement a client-side state mechanism for the otherwise stateless HTTP protocol.| |LocalStorage/SessionStorage|Client-side key-value store|API for storing data in the browser. In CS, these implement persistent and session-based key-value stores with synchronous access patterns.| |IndexedDB|Client-side NoSQL database|Transactional database system in the browser. In CS, IndexedDB implements a document-oriented NoSQL database with indexed access paths and transactional semantics.| |Cache API|Programmatic resource caching|API for controlling browser cache. In CS, this provides programmatic access to the browser's HTTP cache, enabling custom caching strategies.| |Web Storage API|Simple persistence API|Interface for key-value storage. In CS, this implements a simplified persistent storage interface, abstracting the underlying storage mechanism.| |Service Worker Cache|Offline-capable cache|Storage managed by Service Workers. In CS, this implements a worker-managed cache system, enabling offline capabilities through programmatic cache control.| |Session handling|Stateful interaction management|Techniques for maintaining user state across requests. In CS, these implement various approaches to session management in distributed stateless systems.| |Offline storage|Disconnected operation support|Storing data when offline for later synchronization. In CS, this implements eventual consistency models and operational transformation for handling disconnected operation.| |Storage quotas|Resource limitation management|Restrictions on how much data can be stored. In CS, storage quotas implement resource allocation limits, preventing individual origins from consuming excessive resources.| |IndexedDB transactions|ACID operations|Database transactions ensuring data integrity. In CS, these implement ACID (Atomicity, Consistency, Isolation, Durability) properties for reliable data operations.| ## Build Tools and Development Processes | Web Development Term | Computer Science Equivalent | Explanation | | ---------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Webpack/Rollup | Module bundler/Linker | Tools that bundle modules into deployable packages. In CS, these implement linking and code transformation phases of compilation, resolving dependencies and generating optimized output. | | Babel | Source-to-source compiler | Tool for converting newer JavaScript to compatible versions. In CS, this implements a transpiler or source-to-source compiler, transforming code between different languages or language versions. | | TypeScript | Static type system | Superset of JavaScript adding static types. In CS, TypeScript implements a structural type system with type inference, applying static analysis techniques to JavaScript. | | ESLint | Static code analyzer | Tool for identifying problematic patterns in JavaScript. In CS, this implements static analysis techniques, detecting potential errors and style issues without executing code. | | npm/yarn | Package managers | Tools for managing dependencies and packages. In CS, these implement dependency resolution algorithms and artifact repository management systems. | | Testing frameworks | Verification tools | Tools for automated testing of code. In CS, these implement various testing methodologies, from unit testing to integration testing, supporting verification and validation activities. | | Continuous Integration | Automated build verification | Practice of merging code changes frequently with automated testing. In CS, CI implements automated verification workflows, ensuring code quality through automated build and test processes. | | Hot Module Replacement | Dynamic code patching | Updating modules without full page reload. In CS, HMR implements dynamic code replacement techniques, similar to hot patching in operating systems. | | Minification | Code optimization | Process of removing unnecessary characters from code. In CS, this implements code optimization techniques focused on reducing size rather than execution speed. | | Source maps | Debug information | Files mapping between minified code and source code. In CS, source maps implement debugging symbol tables, maintaining debug information across code transformations. | ## CSS Advanced Concepts |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |CSS Box Model|Layout algorithm|Algorithm determining how elements are sized and positioned. In CS, this implements a specific layout computation model with defined rules for margin, border, padding, and content dimensions.| |Flexbox|Constraint-based layout|Layout model for arranging items in flexible containers. In CS, flexbox implements a constraint-solving algorithm, calculating layout based on flexible constraints rather than absolute positions.| |CSS Grid|Two-dimensional layout system|System for creating grid-based layouts. In CS, CSS Grid implements an algorithm for two-dimensional space partitioning based on declarative grid definitions.| |CSS Animations|Declarative animation system|System for animating CSS properties over time. In CS, this implements a declarative approach to animation, specifying keyframes and transition properties rather than imperative frame-by-frame updates.| |CSS Preprocessors|Macro languages|Languages that extend CSS with programming features. In CS, preprocessors implement domain-specific languages that compile to CSS, adding variables, functions, and other programming constructs.| |CSS Custom Properties|Dynamic styling variables|Variables defined in CSS, modifiable by JavaScript. In CS, these implement dynamically updatable, cascading constants within the CSS cascade and inheritance system.| |CSS Specificity|Conflict resolution algorithm|Algorithm determining which CSS rule applies when multiple rules target the same element. In CS, this implements a formalized conflict resolution system with precise calculation rules.| |Media Queries|Conditional compilation|Technique to apply different styles based on device characteristics. In CS, these implement conditional compilation techniques, selecting different code paths based on runtime environment characteristics.| |CSS Containment|Performance optimization|Feature for isolating parts of a page. In CS, this implements component isolation for rendering performance, creating boundaries to limit the scope of style and layout recalculations.| |CSS Houdini|Low-level API access|APIs exposing parts of the CSS engine. In CS, this provides lower-level access to the CSS rendering pipeline, enabling custom layout and painting algorithms through standardized interfaces.| ## Modern Frontend Architecture |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Micro-Frontends|Distributed UI architecture|Breaking frontend applications into independently deployable pieces. In CS, this applies microservice architecture principles to UI development, creating loosely coupled, independently deployable frontend modules.| |Jamstack|Static site architecture|Architecture combining JavaScript, APIs, and Markup. In CS, Jamstack implements separation of concerns between static pre-rendering and dynamic client-side execution.| |Server Components|Hybrid rendering model|Components that execute and render on the server. In CS, these implement a hybrid model between traditional server rendering and client-side components, optimizing for both performance and interactivity.| |Isomorphic/Universal JavaScript|Cross-environment execution|Code that runs both on server and client. In CS, this implements the principle of code reuse across different execution environments, handling environment-specific differences through abstraction.| |Module Federation|Dynamic remote modules|Loading remote modules at runtime. In CS, this implements dynamic linking across application boundaries, enabling composing applications from independently deployed modules.| |Progressive Enhancement|Graceful capability adaptation|Building web applications that work for everyone, then enhancing for modern browsers. In CS, this implements capability detection and adaptation, providing baseline functionality with optional enhancements.| |Service Oriented Front-end|Component-based architecture|Frontend organized as independent services. In CS, this applies service-oriented architecture principles to frontend development, creating discrete service boundaries within the UI.| |Feature Flags|Runtime configuration|Toggles for enabling or disabling features. In CS, feature flags implement dynamic configuration systems, allowing runtime control over application behavior without code changes.| |A/B Testing|Experimental validation|Comparing two versions of a page to see which performs better. In CS, A/B testing implements controlled experimentation methodology, applying statistical analysis to user behavior data.| |Static Site Generation (SSG)|Build-time rendering|Generating HTML at build time. In CS, SSG implements ahead-of-time compilation for web pages, trading flexibility for performance and simplified hosting.| ## Advanced Browser Technologies |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Service Workers|Background processing/Proxy|Scripts running in the background. In CS, Service Workers implement background processing threads with proxy capabilities, intercepting and modifying network requests.| |Web Workers|Thread-based parallelism|Background threads for parallel JavaScript execution. In CS, Web Workers implement thread-based parallelism, enabling CPU-intensive tasks without blocking the main thread.| |WebAssembly|Portable binary format|Binary instruction format for high-performance applications. In CS, WebAssembly implements a portable binary format with a virtual machine architecture, enabling near-native performance in browsers.| |WebRTC|Peer-to-peer communication|Protocol for real-time communication between browsers. In CS, WebRTC implements peer-to-peer networking protocols with NAT traversal, secure communication, and media handling capabilities.| |Web Components|Custom element creation|Standards for creating reusable components. In CS, Web Components implement component-based software engineering principles with encapsulation through Shadow DOM.| |Intersection Observer|Viewport detection|API for detecting element visibility. In CS, this implements an observer pattern optimized for viewport intersection detection, avoiding expensive DOM operations.| |Animation Frame API|Display-synchronized timing|API for smooth animations synchronized with the display refresh rate. In CS, this provides access to the browser's rendering loop, enabling display-synchronized timing for animations.| |Web Audio API|Audio processing pipeline|API for audio processing and synthesis. In CS, this implements digital signal processing capabilities within browsers, providing nodes for audio generation, processing, and analysis.| |Permissions API|Capability requesting|API for requesting permission to use restricted features. In CS, this implements capability-based security principles, requiring explicit user consent for privileged operations.| |Web Bluetooth/USB/Serial|Hardware interfaces|APIs for connecting to physical devices. In CS, these implement hardware abstraction layers (HALs) for different physical interfaces, enabling browser-based communication with external devices.| ## Backend Concepts |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |RESTful API|Resource-oriented interface|API design following REST principles. In CS, RESTful APIs implement resource-oriented architecture with uniform interfaces, statelessness, and hypermedia as the engine of application state.| |Microservices|Distributed architecture|Architecture style with small, independent services. In CS, microservices implement service-oriented architecture at a fine-grained level, with autonomous services organized around business capabilities.| |Serverless Functions|Event-driven computation|Functions running in stateless compute containers. In CS, serverless implements Function-as-a-Service (FaaS), providing event-driven, stateless computation without server management.| |GraphQL|Typed query language|Query language for APIs with a type system. In CS, GraphQL implements a domain-specific language with static typing for data fetching, allowing clients to specify exactly what data they need.| |ORM (Object-Relational Mapping)|Data access abstraction|Technique for converting between incompatible type systems. In CS, ORMs implement the data mapper pattern, translating between object-oriented code and relational databases.| |Authentication/Authorization|Access control|Verifying identity and permissions. In CS, these implement identification, authentication, and authorization mechanisms, forming the foundation of security access control.| |Message Queues|Asynchronous communication|Systems for passing messages between services. In CS, message queues implement asynchronous communication patterns, enabling loose coupling and resilience in distributed systems.| |API Gateway|Request routing/Aggregation|Single entry point managing API requests. In CS, API gateways implement the facade pattern and mediator pattern, providing a unified interface to multiple subsystems.| |Database Indexing|Search optimization|Data structures improving query performance. In CS, database indexes implement optimized data structures (B-trees, hash tables) for efficient data retrieval based on specific fields.| |Caching Strategies|Performance optimization|Techniques for storing frequent data. In CS, caching strategies implement algorithms like LRU (Least Recently Used) and time-based expiration, optimizing for temporal and spatial locality.| ## Testing and Quality Assurance |Web Development Term|Computer Science Equivalent|Explanation| |---|---|---| |Unit Testing|Function verification|Testing individual units in isolation. In CS, unit testing implements verification at the function or module level, validating that individual units behave as expected in isolation.| |Integration Testing|Module interaction verification|Testing how units work together. In CS, integration testing verifies correct interaction between modules, detecting interface mismatches and integration issues.| |End-to-End Testing|System-level testing|Testing entire application workflows. In CS, E2E testing implements black-box testing at the system level, validating complete user scenarios across all components.| |Test-Driven Development|Specification-first methodology|Writing tests before implementation. In CS, TDD implements a development methodology where tests serve as specifications, driving implementation through red-green-refactor cycles.| |Mocking/Stubbing|Test double creation|Creating test replacements for dependencies. In CS, these implement test isolation techniques, substituting real dependencies with controlled alternatives for predictable testing.| |Code Coverage|Test completeness metric|Measure of code executed during tests. In CS, code coverage metrics quantify test thoroughness, measuring statement, branch, function, or path coverage.| |Snapshot Testing|Output comparison|Capturing UI output and comparing against reference. In CS, snapshot testing implements a form of golden master testing, verifying that outputs remain consistent with previously approved versions.| |Property-Based Testing|Invariant verification|Testing that properties hold for many inputs. In CS, property-based testing implements formal verification techniques, checking that properties hold for randomly generated inputs rather than specific examples.| |Visual Regression Testing|UI appearance verification|Testing for unexpected visual changes. In CS, this implements image comparison algorithms to detect unintended changes in visual appearance.| |Performance Testing|System efficiency evaluation|Measuring application performance under load. In CS, performance testing quantifies system characteristics like response time, throughput, and resource utilization under various conditions.|