Skip to content

Latest commit

 

History

History
282 lines (145 loc) · 13 KB

glossary.md

File metadata and controls

282 lines (145 loc) · 13 KB

Glossary of Terms

This document provides definitions for common terms and acronyms used throughout Bayat Development Conventions and projects.

A

Accessibility (a11y): The practice of making websites, tools, and technologies usable by people with disabilities.

Agile: A project management approach that involves dividing projects into small pieces or iterations, with frequent reassessment and adaptation.

API (Application Programming Interface): A set of definitions and protocols for building and integrating application software.

Authentication: The process of verifying the identity of a user or system.

Authorization: The process of determining whether a user has permission to access a resource or perform an action.

ADR (Architecture Decision Record): A document that captures an important architectural decision made along with its context and consequences.

AWS (Amazon Web Services): A cloud computing platform provided by Amazon.

B

Backend: The server-side of an application that handles business logic, database operations, and authentication.

BDD (Behavior-Driven Development): An agile software development process that encourages collaboration between developers, QA, and non-technical participants.

Branch: In Git, a parallel version of a repository, used to develop features, fix bugs, or experiment without affecting the main codebase.

Bug: An error, flaw, or fault in a computer program that causes it to produce an incorrect or unexpected result.

Build: The process of converting source code files into standalone software artifacts that can be run on a computer.

C

CI/CD (Continuous Integration/Continuous Deployment): Development practices that involve frequently integrating code changes and automatically deploying them to production.

C4 Model: A lean graphical notation technique for modelling the architecture of software systems at different levels of abstraction (Context, Containers, Components, Code).

CLI (Command Line Interface): A text-based interface used to interact with software and operating systems.

Cloud Computing: The delivery of computing services over the internet, including servers, storage, databases, networking, and software.

CMS (Content Management System): Software that allows users to create, manage, and modify content on a website without specialized technical knowledge.

CORS (Cross-Origin Resource Sharing): A security feature that allows or restricts web applications running at one origin to request resources from a different origin.

CRUD: Create, Read, Update, Delete - the four basic operations of persistent storage.

Conventional Commits: A specification for adding human and machine-readable meaning to commit messages.

DevSecOps: An extension of DevOps that integrates security practices throughout the software development lifecycle.

D

Dependency: An external resource, library, or package that a project relies on.

Deployment: The process of making a software application available for use.

DevOps: A set of practices that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle and provide continuous delivery.

Docker: A platform for developing, shipping, and running applications in containers.

DOM (Document Object Model): A programming interface for HTML and XML documents that represents the page as nodes and objects.

DRY (Don't Repeat Yourself): A principle of software development aimed at reducing repetition of code.

E

Endpoint: A specific URL in a web API that represents an object or collection of objects.

Environment: A system in which an application runs, such as development, staging, or production.

ESLint: A static code analysis tool for identifying problematic patterns in JavaScript code.

Event-Driven Architecture: A software architecture pattern promoting the production, detection, consumption of, and reaction to events.

F

Feature Flag: A technique that allows features to be enabled or disabled at runtime without deploying new code.

Framework: A reusable set of libraries, components, or tools that provide a foundation for developing software applications.

Frontend: The client-side of an application that users interact with directly.

Full-Stack: Referring to development that encompasses both frontend and backend aspects of an application.

G

Git: A distributed version control system for tracking changes in source code during software development.

Git LFS (Large File Storage): A Git extension for versioning large files.

GraphQL: A query language for APIs and a runtime for executing those queries against your data.

GUI (Graphical User Interface): A form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators.

H

Headless CMS: A content management system that provides a way to author content but does not dictate how that content should be presented to users.

Hotfix: A quick fix to address a critical issue in a production environment.

HTTP (HyperText Transfer Protocol): The foundation of data communication for the World Wide Web.

I

IDE (Integrated Development Environment): A software application that provides comprehensive facilities to computer programmers for software development.

IaC (Infrastructure as Code): The practice of managing and provisioning computing infrastructure through machine-readable definition files.

i18n (Internationalization): The process of designing software so it can be adapted to different languages and regions.

Integration Testing: Testing where individual units are combined and tested as a group.

J

JAMstack: A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup.

Jest: A JavaScript testing framework.

JWT (JSON Web Token): A compact, URL-safe means of representing claims to be transferred between two parties.

K

Kubernetes (K8s): An open-source platform for automating deployment, scaling, and management of containerized applications.

Kanban: A visual framework used to implement Agile that depicts work at various stages of a process using cards to represent tasks.

L

L10n (Localization): The process of adapting a product to a specific country or region.

Library: A collection of reusable code that can be used by programs or other libraries.

Linting: The process of running a program that analyzes code for potential errors.

LTS (Long-Term Support): A product lifecycle management policy where a stable release is maintained for a longer period than the standard version.

M

Microservices: An architectural approach that structures an application as a collection of loosely coupled services.

Middleware: Software that acts as a bridge between an operating system or database and applications.

Mock: An object that simulates the behavior of a real object in controlled ways.

MVC (Model-View-Controller): A software design pattern commonly used for developing user interfaces.

Mermaid: A JavaScript-based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.

Monorepo: A version control repository that holds the source code for multiple projects or components.

N

Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine.

NoSQL: A category of database management systems that do not use traditional SQL for queries.

npm (Node Package Manager): A package manager for JavaScript, used to install, share, and distribute code.

O

OAuth: An open standard for access delegation, commonly used as a way for Internet users to grant websites or applications access to their information.

OOP (Object-Oriented Programming): A programming paradigm based on the concept of "objects" that contain data and code.

ORM (Object-Relational Mapping): A technique for converting data between incompatible type systems in object-oriented programming languages.

P

Package: A collection of files, modules, or libraries bundled together for distribution.

Pipeline: A set of automated processes that allow code changes to be reliably deployed to production.

Plugin: A software component that adds a specific feature to an existing computer program.

PR (Pull Request): A method of submitting contributions to a project.

PWA (Progressive Web App): A type of application built using web technologies but that delivers an app-like experience.

PlantUML: An open-source tool allowing users to create UML diagrams from a plain text language.

Q

QA (Quality Assurance): A systematic process of checking to see whether a product or service being developed meets specified requirements.

Query: A request for data or information from a database.

R

RAII (Resource Acquisition Is Initialization): A C++ programming technique where resource use is tied to object lifetime through constructors and destructors.

Race Condition: A behavior that occurs when two or more threads can access shared data and try to change it at the same time.

React: A JavaScript library for building user interfaces.

Redux: A predictable state container for JavaScript apps.

RESTful API: An API that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services.

Rollback: The process of reverting a system to a previous state, often done when a deployment fails.

S

SaaS (Software as a Service): A software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted.

Scrum: An agile framework for managing knowledge work, with an emphasis on software development.

SDK (Software Development Kit): A collection of software tools and programs provided by hardware and software vendors.

SEO (Search Engine Optimization): The process of improving the quality and quantity of website traffic to a website from search engines.

Serverless: A cloud computing execution model where the cloud provider runs the server and dynamically manages the allocation of machine resources.

SPA (Single Page Application): A web application that loads a single HTML page and dynamically updates it as the user interacts with the app.

SQL (Structured Query Language): A language designed for managing data in a relational database management system.

SSG (Static Site Generator): A tool that generates a full static HTML website based on raw data and templates.

SSR (Server-Side Rendering): The process of rendering web pages on the server and sending fully rendered pages to the client.

Swagger: A tool for documenting RESTful APIs.

SemVer (Semantic Versioning): A formal convention for specifying compatibility using a three-part version number: MAJOR.MINOR.PATCH.

WCAG (Web Content Accessibility Guidelines): Guidelines published by the Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C), the main international standards organization for the Internet.

T

TDD (Test-Driven Development): A software development process that relies on the repetition of a very short development cycle where requirements are turned into test cases.

TypeScript: A strict syntactical superset of JavaScript that adds static typing.

U

UI (User Interface): The space where interactions between humans and machines occur.

Unit Testing: A software testing method where individual units of source code are tested to determine whether they are fit for use.

UX (User Experience): A person's emotions and attitudes about using a particular product, system, or service.

V

Version Control: A system that records changes to a file or set of files over time.

Virtual DOM: A programming concept where a virtual representation of a UI is kept in memory and synced with the "real" DOM.

VM (Virtual Machine): An emulation of a computer system that provides the functionality of a physical computer.

W

Webhook: A way for an app to provide other applications with real-time information.

Webpack: A static module bundler for JavaScript applications.

WebSocket: A communication protocol that provides full-duplex communication channels over a single TCP connection.

X

XML (eXtensible Markup Language): A markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.

XSS (Cross-Site Scripting): A type of security vulnerability that allows attackers to inject client-side scripts into web pages viewed by other users.

Y

YAML (YAML Ain't Markup Language): A human-readable data serialization standard.

Yarn: A package manager for JavaScript.

Z

Zero Downtime Deployment: A deployment strategy where the application remains available to users throughout the deployment process.