Skip to content

Latest commit

 

History

History
83 lines (43 loc) · 5.4 KB

keywords.md

File metadata and controls

83 lines (43 loc) · 5.4 KB

List of Keyword Definitions and Abbreivations

An alphabetical list of my definitions for keywords used throughout these tutorials/guides as well as common abbreviations. You may find this useful outside of this guide as I try to simplify concepts/definitions that are commonly used in computer science lingo.

Table of Contents:

  1. Keywords
  2. Acronyms

Keywords

Artifact: by-product of software development, umbrella term for packages, docker containers, etc. that are subcomponents of the eventual product/application.

Agile: project management method and philosophy of separating a larger task (e.g. software application) into small increments of work (e.g. features) and iterating quickly via shortened/condensed development cycles. Usually used to contrast to a longer sequential software development lifecycle

Branch: a branch w.r.t version controls systems is a pointer to a snapshot of changes and can be thought of as a version of a repository. Default branch is main or master.

Commit: a set of changes that updates the state of the repository

Container: a lightweight encapsulation of a piece of software, usually a subcomponent/process of a larger software system. This includes all the OS, dependencies and everything else needed for the process to run. Containerization means the technology of encapsulating with the needed dependencies and binaries to run.

Debugger: software tool that helps to test your code by running it in a controlled setting/conditions

Deployment: Shipping/Delivering your application for the user to use, usually in reference to a release or updated version.

Docker: a containerization technology, the company that developed containerization.

DockerFile: "recipe" for building an image from another base image (often times an OS image).

Documentation: Information about how your code works, colloquially called "docs"

Fork: A fork is a copy of a repository that dissociates it from previous committers. It is similar to a branch but it changes the repository's owner and access permissions.

Git: A distributed version control system made by Linus Torvalds (guy who created linux). Distributed, in this sense, means that each server/computer has a complete copy/backup

Image (w.r.t containers): a "snapshot", including the binaries, libraries, etc. and active processes that the container runs. A container is "spun up" based on an image. An analogy for this is image is like a "class" and a container is like the "instantiation" of an image.

Integrated Development Environment/IDE: a software software that provides a text editor and additonal development tools, such as a debugger, build automation tools, etc.

Integration: combining subcomponents of a system, e.g. this can be storage, cache, API, UI, etc. in a software system.

IntelliSense: linter + autocomplete.

Kanban Board: Board that separates tasks into columns, frequently along the lines of "To Do", "Doing", and "Done", to visually depict the progress on tasks/goals for a project.

Linter: static code analysis tool that helps to identify errors and bugs.

Registry: A container image library, essentially a "Repository" for container images where images and different versions of images are stored for later use. Example of registry services provided by a third-party is Docker Hub or GitHub Packages registry, etc.

Remote Repository: A repository stored on a remote server that functions as a backup and is shared with all collaborators.

Repository: A collection of code that is organized together in a meaninful way (e.g for a project, subcomponent, documentation, research paper implementation, etc.).

Scrum: "Agile" framework for separating work into time-boxed iterations, called "sprints"

Shell: software that interprets and executes commands entered in terminal, also known as a command-line interpreter.

Staging: a conceptual area where changes can be stored prior to being committed

Terminal: A window with a text interface that allows you to communicate with your computer in a more flexible way than graphical interfaces.

Text Editor: a software application that provides an interface to edit text, usually code in this context. Can literally be default notepad, but common editors are Vim, VSCode, Sublime, Atom, notepad++.

Version Control System: A piece of software that helps track changes to different version of a repository. This runs locally for each copy of the repository so that changes in a local repository will not be updated in another repository unless sync'ed

Volume (w.r.t containers): method of storing persistent data that is linked to a container.

Acronyms:

CLI: Command Line Interface, software that interfaces with your computer's OS via the command line. You may think of this as a software program that allows you to tie a command to text you can enter and run using your computer's terminal, usually coupled with options and flags for customization/flexibility

GUI: Graphical User Interface refers to anything displayed in a window used to interface with a software program/application

OS: Operating System

pkg: Package w.r.t. software, e.g. python package

VCS: Version Control System

WIP: Work In Progress

w.r.t: with respect to

YAML: "Yet Another Markup Language" is a language in which many configuration files are written in and is a human-readable.