awesome-naming

Naming guide

A curated collection of examples and explanations for effective naming conventions in software development

A curated list for when naming things is done right.

GitHub

1k stars
21 watching
45 forks
last commit: almost 2 years ago
Linked from 3 awesome lists

awesomeawesome-listcomputer-sciencenamingnaming-conventions

Awesome Naming / Data Structures and Algorithms

BacktrackingWhen you explore a search space and you reach a dead end, you follow your back to the last crossroad and try the other way
Brute forceViolence is actually almost always a solution but not a very clever one
Greedy algorithmAn algorithm that finds a solution by always picking the currently best looking option without thinking too much about past and future decisions
Hill climbingStarting somewhere in the hilly "landscape" of solutions you go in the direction of steepest ascent until reaching the top of a hill. You might miss higher hills though
Israeli QueueA type of priority queue and a reference to the infamously unorganized queues in Israel. Here items can when they
StackLike with a stack of pancakes you can only add and remove items from the top of this data structure
TreeA hierarchically organized data structure. From the item the other items into and . A collection of trees is often called a
QueueIn this data structure items are always added at the end and removed at the front as if the items were waiting in line

Awesome Naming / Design Patterns and Anti Patterns

AdapterAllows classes with incompatible interfaces to work together by wrapping its own interface around that of an already existing class
FacadeAnalogous to a facade in architecture, a facade is an object that serves as a front-facing interface masking more complex underlying structure
PromiseA representation of a result that is available in the future, unless there are errors. Like in reality, promises are broken sometimes
Shotgun surgeryA programming antipattern where in a single change you wildly add code everywhere in your codebase
Spaghetti CodeA program with a tangled and hard-to-follow stucture

Awesome Naming / Functions

foldLike a blanket being folded up, this function iterates a collection and in each step combines the current item with everything that has already been folded
munchParser function that greedily consumes an input stream until it's satisfied
trampolineContinuously runs functions which itself return functions. Like a child on a trampoline that and bounces back up
zipMerges two lists into one list of pairs like the interlocking teeth of a zipper

Awesome Naming / IT Security

BackdoorA method of bypassing normal authentication in a computer system
Computer virusA computer program that self replicates by other computer programs similar to the behavior of biological viruses
Cyber hygieneSteps and practices that users should take to maintain system health and improve online security
HoneypotPart of a system meant to look like an attractive target but actually helps detect and deflect attackers
Phoning homeWhen a system (e.g. stolen computer) secretly reports back to a third party other than the current possessor. The name is a reference to the movie E.T
SandboxA safe and isolated environment to test unverified programs that may contain malicious code
Trojan horseMalware which misleads users of its true intent. The term is derived from the Ancient Greek story of the deceptive Trojan Horse

Awesome Naming / Machine Learning and Artificial Intelligence

Confusion matrixA tabular summary of a classifiers "confusion", i.e. how often it thought to make correct predictions when it actually didn't
Decision boundaryA boundary dividing the space of possible data points. Here you decide, everything on this side is SPAM, everything on that side is not
Gradient descentMinimizing a cost function by iteratively computing the gradient and moving in the direction of steepest descent
HallucinationA confident response by an AI that does not seem to be justified by its training data
TrainingThe process of showing the machine a bunch of examples, until it learns what we want from it

Awesome Naming / Programming Languages and Programming Language Theory

Choreographic programmingA programming paradigm where programs are compositions of interactions among multiple concurrent participants
ClojureA functional language making extensive use of but with a because it's running on the Java virtual machine
C++Although C was certainly a bad name, C++ was quite clever. The iconic increment operator indicates that is the successor
Garbage CollectorPart of a program that attempts to find and reclaim garbage pieces of memory not used anymore
Lazy evaluationAn evaluation stategy which suspends evaluation until it's absolutely necessary and then never does it again
Syntactic sugarSyntax that makes the language "sweeter" for human use. Usually a shorthand for common operations that can also be expressed in a more verbose form

Awesome Naming / User Interface Design

Bento layoutA grid based layout resembling the compartmentation of bento boxes
BreadcrumbNavigational aid allowing users to keep track of their location within programs, documents, or websites. The term is a reference to the fairy tale
CarouselA kind of animated slideshow looping back on itself
ClipboardWhere you temporarily put you are working with (i.e. the copy & paste buffer)
DesktopThe metaphorical top of the user's desk, upon which objects such as documents and folders of documents can be placed
Hamburger buttonA button to toggle a menu. The associated icon resembles a hamburger
Optimistic UIUser interfaces that assume expensive operations will complete successfully thereby improving the perceived performance
ScrollingScreen content is often less like a book with discrete pages and more like a continuous roll of parchment, i.e. a scroll

Awesome Naming / Theoretical Computer Science

Busy BeaverTuring machines that produce numbers so insanly large, no other algorithm can keep up with them
Clique problemThe problem of finding groups of mutual friends in a network of people with friendship relations. Or more general, finding complete subgraphs
Game of LifeA game world that showcases how astonishing complexity can arise from very simple ingredients
OracleA black box that magically gives answers even to undeciable questions like the halting problem
Pumping lemmaThe fact that in some formal languages any sufficiently long string can be with repetitions of its substring and the result stays in the same formal language

Awesome Naming / Tools, Applications, Libraries, Frameworks

clooney1,422almost 2 years agoA JavaScript library implementing the actor model for concurrent computation. The term is a reference to George Clooney who is also an actor
CockroachDBDatabase application, that is marketed as being so fault tolerant and resilient as a cockroach
horcrux4,658about 2 years agoSplits a file into encrypted fragments that only together can be decrypted again. In the Harry Potter universe, Horcruxes are fragments of a persons soul. To kill the person, all fragments must be destroyed
Puppeteer89,083almost 2 years agoA browser automation library. If the browser is the puppet, this is the puppeteer
SafariWeb browser developed by Apple
tldrSimplified man pages with practical examples
Uglify13,199almost 2 years agoA JavaScript minifier. Removes everything that makes the code readable and pretty to make it smaller
uppy29,295almost 2 years agoA dog themed uploader component. The name is a blend of and . It even comes with a crash recovery plugin called
WebpackA bundler for JavaScript and other assets with a short and descriptive name that also somewhat rhymes
yarnNodeJS dependency manager

Awesome Naming / Other

a11y, i18n, k8s, ...Abbreviating long words by keeping the first and last letter and writing the number of omitted letters in between
ACID vs. BASEAcronyms describing competing database ideologies (aka. SQL vs. NoSQL). Note that acid and base are also opposites in chemistry
BottleneckA central part of a network/application that significantly limits throughput/performance and should ideally be eliminated
BrickWhen your device is so corrupted it virtually turns into a brick
camelCase, snake_case, kebab-caseDifferent case styles where the name illustrates its appearance
Cookie lickingE.g. claiming a GitHub issue, then not working on it
Easter eggA hidden feature especially in video games in reference to the Easter egg hunt
Floating point numberThis representation can encode numbers at very different magnitudes with limited amount of digits by letting the radix point instead of being fixed in place
FrameworkIn software architecture (like in actual architecture) frameworks provide basic structure to build upon that guide and constrain the further development
Glue CodeJenga and LEGO bricks don't share the same interface but you can always glue them together
HeisenbugA bug that seems to disappear or change when one tries to study it. It's a pun on Werner Heisenberg who discovered that the act of observing quantum systems inevitably alters their state
HydraA bug that, when an attempt to fix is made, introduces multiple new bugs. It's a bug that cannot be fixed
MagicA magic program/piece of code is doing it's job but nobody knows how. Like in reality, magic doesn't actually exist. Once you understand it, it's not magic anymore
Process starvationA problem where a process is perpetually denied resources to do its work
Time travel debuggingStepping back in time through source code to understand execution and sometimes even to change history
Tree shakingShake the dependency tree until all the dead parts are falling off and you end up with a nice lean tree
Unfair enumerationA program that outputs all even numbers and then all odd numbers generates an unfair enumeration of the natural numbers because some numbers are never reached
Yoda conditionWhen you write instead of because it reads as, “if red equals the color”, similar to the way the Star Wars character Yoda speaks

Backlinks from these awesome lists:

More related projects: