Concepts

Plain-language explanations of the ideas behind software - compilers, garbage collection, objects, types.

673 entries, all primary-sourced
concept

Recursion

Defining something in terms of itself, such as a function that calls itself or a structure built from smaller copies of itself.

concept

Refactoring

Changing the internal structure of existing code to make it easier to understand and cheaper to modify, without changing its observable behavior.

concept

Referential Transparency

The property that an expression can be replaced by its value without changing the program's behavior, which requires pure functions with no side effects.

concept

Regular Expressions

A compact notation for describing text patterns, rooted in Kleene's 1951 theory of automata and made into a practical search tool by Ken Thompson and the Unix utilities built on his work.

concept

Regular Language

The simplest class in the Chomsky hierarchy: languages recognized by finite automata and described by regular expressions.

concept

Relational Algebra

The formal set of operations on relations (select, project, join, union, and others) that gives relational databases their mathematical foundation and powers query optimization.

concept

Relational Database

A database built on Codd's relational model that stores data in tables of rows and columns, accessed through SQL, with keys and constraints that enforce integrity.

concept

Relational Model

A way of organizing data as relations (tables of rows and columns) with keys and set-based operations, kept independent of how the data is physically stored.

concept

Replicated Log

An append-only log of commands kept consistent across replicas via consensus, so each replica applies the same operations in the same order.

concept

Replication (Distributed Data)

Keeping copies of the same data on multiple machines for fault tolerance, lower latency, and higher read throughput.

concept

Replication Lag

The delay between a write on the leader and its appearance on followers, which causes anomalies like reading stale data.

concept

Reproducible Builds

The property that building the same source in the same environment always yields a bit-for-bit identical artifact, so anyone can verify a binary matches its source.

concept

Requirements Engineering

The discipline of eliciting, analyzing, specifying, and validating what a software system must do and the constraints it must meet.

concept

REST

Roy Fielding's architectural style for networked software, built around resources, uniform interfaces, and stateless interaction over HTTP.

concept

RISC (Reduced Instruction Set Computer)

A processor design philosophy built on a small set of simple, fixed-length, load-store instructions that pipeline efficiently, argued for by Patterson and Ditzel in 1980.

concept

Root Name Server

The authoritative name servers that serve the DNS root zone -- the apex of the naming tree. Resolvers start here to find which server is responsible for a top-level domain. There are thirteen named root server identities, A through M.

concept

Root-Cause Analysis

The practice of tracing a failure back to its underlying cause rather than stopping at the visible symptom, using techniques like the Five Whys to follow the causal chain to where a fix actually prevents recurrence.

concept

RSA (Public-Key Cryptosystem)

The first practical public-key cryptosystem, whose security rests on the difficulty of factoring the product of two large prime numbers.

concept

Saga Pattern

A way to manage a long-running transaction across multiple services as a sequence of local transactions, each with a compensating action to undo it if a later step fails.

concept

Scalability

The ability of a system to handle growing load by adding resources, either a bigger machine (vertical) or more machines (horizontal).

concept

Scope Creep

The uncontrolled growth of a project's requirements after it has begun, when new features are added without adjusting time, budget, or resources.

concept

Scrum

An agile framework that organizes work into fixed-length sprints with defined accountabilities, events, and artifacts; the most widely used agile method.

concept

Self-Balancing Tree

A binary search tree that automatically keeps its height logarithmic through rotations, guaranteeing fast operations regardless of insertion order.

concept

Semantic Versioning (SemVer)

A version-numbering scheme that encodes compatibility into MAJOR.MINOR.PATCH numbers, specified by Tom Preston-Werner.

concept

Separation of Concerns

Structuring a system so each part addresses a distinct concern with minimal overlap, allowing the parts to be understood and changed independently; the term was coined by Edsger Dijkstra in 1974.

concept

Server-Side Rendering

Rendering a page's HTML on the server per request and sending it to the browser ready to display, in contrast to client-side rendering where the browser builds the page from JavaScript.

concept

Serverless Computing

A cloud model where the provider fully manages and scales the servers, so developers deploy code and pay only for actual execution; 'serverless' means no servers to manage, not no servers at all.

concept

Service Mesh

A dedicated infrastructure layer, typically built from sidecar proxies, that handles service-to-service traffic management, security, and observability without changing application code.

concept

Service-Oriented Architecture

An architectural paradigm that structures software as network-accessible services with prescribed interfaces and contracts, the 2000s enterprise predecessor of microservices.

concept

Sharding (Partitioning)

Splitting a dataset across multiple machines so the system can scale beyond one machine's capacity.

concept

Shell Completion

The shell feature that completes commands, paths, and arguments when you press Tab, including programmable completion that knows each command's own options.

concept

Shortest Path Problem

The problem of finding a lowest-cost route between nodes in a weighted graph, solved by Dijkstra's algorithm, Bellman-Ford, and A* depending on the conditions.

concept

Side Effect

Any observable effect of a procedure beyond returning a value - mutating state, performing input or output, or signalling an error - which functional programming seeks to minimize and isolate.

concept

Side-Channel Attack

An attack that extracts secrets not by breaking the underlying math but by measuring physical or behavioral leakage such as timing, power consumption, electromagnetic emissions, cache state, or sound.

concept

Sidecar Pattern

A deployment pattern in which a helper container or process runs alongside a main service to add capabilities such as proxying or logging, without changing the service itself.

concept

SIMD

Single Instruction, Multiple Data: one instruction operating in lockstep on a whole vector of data elements, a category that traces back to Flynn's 1972 taxonomy of computer organizations.

concept

Single Sign-On (SSO)

An authentication arrangement in which one login at a trusted identity provider grants a user access to many independent systems without re-entering credentials.

concept

Single-Page Application

A web app that loads one HTML document and then updates the page dynamically with JavaScript, instead of fetching a fresh page from the server for every interaction.

concept

Singleton Pattern

A creational design pattern that ensures a class has only one instance and provides a global point of access to it.

concept

Software in Safety-Critical Systems

Software whose failure can cause death, injury, or catastrophe - in avionics, medical devices, nuclear plants, and vehicles - and the standards, formal methods, and certification processes built to make such software trustworthy.

concept

Software Quality

How well software meets its requirements and serves its users, spanning external qualities like correctness and reliability and internal ones like maintainability.

concept

Software Supply Chain

The software supply chain is all the code, dependencies, build tools, and people that go into producing software; supply-chain security defends every link against tampering.

concept

Software Testing

The practice of evaluating software by exercising it to find defects and check that it meets its requirements, organized into levels such as unit, integration, system, and acceptance testing.

concept

SOLID Principles

Five object-oriented design principles popularized by Robert C. Martin - Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion - aimed at making code easier to maintain and extend.

concept

Sorting Algorithm

A method for arranging items into a defined order, one of the oldest and most-studied problems in computing.

concept

Space-Time Tradeoff

The common engineering choice between using more memory to run faster or less memory at the cost of more computation.

concept

Speculative Execution

Executing instructions before the processor knows for certain that they are needed, typically past a predicted branch, and discarding the results if the guess was wrong; the architectural root of the Spectre and Meltdown vulnerabilities.