Browse the most commonly used Software Development terms and definitions.
A method of comparing two versions of a product or feature to determine which performs better with users.
A process where the client verifies if the software meets their requirements before going live.
ACID stands for Atomicity, Consistency, Isolation, Durability — ensuring that database transactions are processed completely, correctly, independently, and permanently, even in case of failures...
A set of rules that allows different software applications to communicate with each other.
A server that acts as a single entry point for multiple backend services, handling routing, authentication, and rate limiting.
Modern JavaScript syntax for handling asynchronous operations in a cleaner, more readable way.
Two fundamental security concepts that control who can access what in applications.
Availability is the ability of a system to be working and ready to use whenever it is needed, without unexpected problems or shutdowns.
Backend Development is the behind-the-scenes part of a website or app. It handles data, logic, and server operations, making sure everything runs smoothly. It connects the frontend (what users see) with the database and server to deliver content, process requests, and manage security.
A deployment strategy that eliminates downtime by running two identical environments and switching traffic between them.
A suite of built-in developer tools for inspecting DOM, debugging JavaScript, and analyzing network performance directly in the browser.
This is cahcing !
The CAP theorem states that a distributed system can only guarantee two of the following: Consistency, Availability, or Partition Tolerance.
CSS is the programming language used to style static web pages and web applications, to control how information is visually presented.
A software engineering approach that automates testing, integration, and deployment of applications.
CSR (Client-Side Rendering) renders pages in the browser, while SSR (Server-Side Rendering) generates pages on the server.
Concurrency is the ability of a system to execute multiple tasks at the same time, improving efficiency.
Containerization packages applications and dependencies together to ensure consistency across environments.
A system of distributed servers that deliver web content to users based on their geographic location.
Small pieces of data stored in the browser that websites use to remember information about users.
A scheduled task automation tool that runs commands at specified time intervals.
A mechanism that allows restricted resources on a web page to be requested from another domain.
Create, Read, Update, Delete - the four basic operations for managing data in any application.
A two-dimensional layout system for the web. It allows developers to place elements into rows and columns with precise control.
The practice of protecting systems, networks, and data from digital attacks, unauthorized access, and damage.
A facility housing networked computers, storage systems, and infrastructure that powers digital services and applications.
Databases are used for storing, maintaining and accessing any sort of data. They collect information on people, places or things. This information is gathered in one place so it can be observed and analyzed
A process of organizing data to reduce redundancy and improve data integrity.
Splitting a database into smaller pieces (shards) distributed across multiple servers to handle more data and traffic.
A DDoS (Distributed Denial of Service) attack overwhelms a server with excessive traffic to make it unavailable.
Debugging is the process of identifying and fixing errors in a program.
A design pattern where objects receive their dependencies from external sources rather than creating them internally.
A containerization platform that packages applications and their dependencies into portable units.
Configuration values stored outside your code that change based on the environment (development, staging, production).
Event-driven architecture is a design pattern in which services communicate through events rather than direct calls.
The ability of a system to continue operating correctly even when components fail.
Frontend development is responsible for how websites and applications are developed using HTML, CSS, and JavaScript to visually render data from backend services and databases.
A programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data.
A distributed version control system used by developers to track changes in their codebase.
GitHub is a website that lets developers store, manage, and share code. It's a collaboration platform that uses Git, an open-source version control system. GitHub is used to build and ship software.
GraphQL is a flexible query language that enables clients to request only the data they need from an API.
GraphQL is a query language that provides flexible data retrieval, while REST uses predefined endpoints.
Three-digit numbers that servers send to indicate the result of an HTTP request (success, error, redirect, etc.).
HyperText Markup Language (HTML) is the standard markup language used for creating and structuring the content of web pages. It provides a set of tags and attributes that define the structure and formatting of text, images, links, and other elements within a web document. HTML is the backbone of the World Wide Web.
Indexing improves database search performance by creating a structure that allows quick data retrieval.
JavaScript (JS) is a versatile and widely-used programming language primarily adopted in web development. It enables the creation of interactive and dynamic elements within web pages, allowing for enhanced user experiences. JavaScript runs on the client side, meaning it executes directly in a user's web browser without the need for server interaction.
JavaScript Object Notation - a lightweight format for storing and exchanging data between applications.
JWT is a secure method to transmit authentication tokens between a client and a server.
A design pattern that defers the loading of non-critical resources (like images) until they are needed, improving initial page load time.
What is Linux is too dgos
Load balancing distributes traffic across multiple servers to improve reliability and performance.
Machine learning (ML) is a type of artificial intelligence (AI) that allows computers to learn from data and improve their performance over time.
Message queues allow asynchronous communication between services, improving scalability and reliability.
An architectural style that structures an application as a collection of small services.
A design approach where applications are built as a collection of small, independent services.
Software that sits between requests and responses, processing, modifying, or validating data as it flows through your application.
Continuously tracking system health, performance, and behavior to detect issues and understand how applications run in production.
An application design where all code and features exist in a single codebase and deploy together.
A development strategy where multiple projects are stored in a single repository to share code and simplify dependency management.
The practice of connecting computers and systems to share resources and communicate with each other.
Next.js is a JavaScript framework that helps developers build web applications. It's built on React, a popular JavaScript library.
A web server and reverse proxy used to serve websites, balance load, and handle high traffic efficiently.
JavaScript Runtime environment
NoSQL databases provide flexible, scalable solutions for handling large volumes of unstructured or semi-structured data.
OAuth is an open standard for secure user authentication and authorization across applications.
A secure authentication protocol that allows third-party apps to access user data without sharing credentials.
Observability is the practice of monitoring a system's internal state using logs, metrics, and traces.
A programming technique that lets you interact with databases using objects and classes instead of writing SQL queries.
Pair Programming is a collaborative coding technique where two developers work together on the same task. One person is the "Driver" (writes the code), and the other is the "Navigator" (reviews, suggests improvements, and strategizes). This method improves code quality, problem-solving, and knowledge sharing.
Dividing a database into smaller, manageable pieces that can be distributed across multiple servers for better performance and scalability.
Web applications that offer native-app-like functionality with offline capabilities and improved performance.
A process that ensures software meets quality standards by finding and preventing defects.
Rate limiting controls the number of requests a client can make to an API within a specific timeframe to prevent abuse.
Functions that let you "hook into" React state and lifecycle features from function components without writing a class.
React is a JavaScript library that helps developers create user interfaces for websites, mobile apps, and desktop apps. It's used because it's efficient, fast, and widely adopted.
An in-memory data store used for caching, session management, and real-time applications.
A structured way of storing and managing data using tables and relationships.
Copying data across multiple database servers to improve availability, performance, and fault tolerance.
An approach to web design that makes pages adapt and look good on all devices and screen sizes.
REST and GraphQL are API communication methods with different advantages.
RESTful APIs follow architectural principles to provide scalable and maintainable web services.
The field combining mechanical engineering, electronics, and software to create machines that can perform tasks autonomously or semi-autonomously.
The ability of a system to handle growing amounts of work.
A computer or software that provides services, resources, or data to other computers (clients) over a network.
SSR (Server-Side Rendering) means a webpage is generated on the server before being sent to the browser. Instead of sending an empty HTML file and letting JavaScript build everything on the client, the server prepares the page with content and sends a ready-to-display HTML file to the browser. This makes the page load faster, improves SEO, and is great for dynamic content that changes based on user requests.
A cloud computing model where you write code without managing servers. The cloud provider handles infrastructure automatically.
A script that runs in the background, enabling offline functionality, push notifications, and caching for web applications.
Ensuring code reliability with unit, integration, and E2E testing.
The practice of managing and synchronizing the data (state) of an application across various components and user interactions.
System design is the process of designing the elements of a system such as the architecture, modules and components, the different interfaces of those components and the data that goes through that system.
A strongly typed programming language that builds on JavaScript, providing better tooling at any scale.
A type of testing where individual software components are tested to ensure correctness.
The Virtual DOM is a lightweight copy of the real DOM that optimizes UI updates. It tracks changes, compares the previous and new versions ("diffing"), and updates only the necessary parts of the real DOM, improving performance.
Techniques to improve website loading speed.
The next evolution of the internet, enabling decentralized applications and blockchain-based interactions.
A binary instruction format for a stack-based virtual machine that enables high-performance web applications.
A way for applications to send real-time data to other applications when events happen, using HTTP callbacks.
A protocol that provides full-duplex communication between client and server for real-time applications.
A markup language used to structure and store data in a hierarchical format.