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.
1k stars
21 watching
45 forks
last commit: 24 days ago
Linked from 3 awesome lists
awesomeawesome-listcomputer-sciencenamingnaming-conventions
Awesome Naming / Data Structures and Algorithms | |||
Backtracking | When 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 force | Violence is actually almost always a solution but not a very clever one | ||
Greedy algorithm | An algorithm that finds a solution by always picking the currently best looking option without thinking too much about past and future decisions | ||
Hill climbing | Starting 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 Queue | A type of priority queue and a reference to the infamously unorganized queues in Israel. Here items can when they | ||
Stack | Like with a stack of pancakes you can only add and remove items from the top of this data structure | ||
Tree | A hierarchically organized data structure. From the item the other items into and . A collection of trees is often called a | ||
Queue | In 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 | |||
Adapter | Allows classes with incompatible interfaces to work together by wrapping its own interface around that of an already existing class | ||
Facade | Analogous to a facade in architecture, a facade is an object that serves as a front-facing interface masking more complex underlying structure | ||
Promise | A representation of a result that is available in the future, unless there are errors. Like in reality, promises are broken sometimes | ||
Shotgun surgery | A programming antipattern where in a single change you wildly add code everywhere in your codebase | ||
Spaghetti Code | A program with a tangled and hard-to-follow stucture | ||
Awesome Naming / Functions | |||
fold | Like 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 | ||
munch | Parser function that greedily consumes an input stream until it's satisfied | ||
trampoline | Continuously runs functions which itself return functions. Like a child on a trampoline that and bounces back up | ||
zip | Merges two lists into one list of pairs like the interlocking teeth of a zipper | ||
Awesome Naming / IT Security | |||
Backdoor | A method of bypassing normal authentication in a computer system | ||
Computer virus | A computer program that self replicates by other computer programs similar to the behavior of biological viruses | ||
Cyber hygiene | Steps and practices that users should take to maintain system health and improve online security | ||
Honeypot | Part of a system meant to look like an attractive target but actually helps detect and deflect attackers | ||
Phoning home | When 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 | ||
Sandbox | A safe and isolated environment to test unverified programs that may contain malicious code | ||
Trojan horse | Malware 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 matrix | A tabular summary of a classifiers "confusion", i.e. how often it thought to make correct predictions when it actually didn't | ||
Decision boundary | A boundary dividing the space of possible data points. Here you decide, everything on this side is SPAM, everything on that side is not | ||
Gradient descent | Minimizing a cost function by iteratively computing the gradient and moving in the direction of steepest descent | ||
Hallucination | A confident response by an AI that does not seem to be justified by its training data | ||
Training | The 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 programming | A programming paradigm where programs are compositions of interactions among multiple concurrent participants | ||
Clojure | A 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 Collector | Part of a program that attempts to find and reclaim garbage pieces of memory not used anymore | ||
Lazy evaluation | An evaluation stategy which suspends evaluation until it's absolutely necessary and then never does it again | ||
Syntactic sugar | Syntax 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 layout | A grid based layout resembling the compartmentation of bento boxes | ||
Breadcrumb | Navigational aid allowing users to keep track of their location within programs, documents, or websites. The term is a reference to the fairy tale | ||
Carousel | A kind of animated slideshow looping back on itself | ||
Clipboard | Where you temporarily put you are working with (i.e. the copy & paste buffer) | ||
Desktop | The metaphorical top of the user's desk, upon which objects such as documents and folders of documents can be placed | ||
Hamburger button | A button to toggle a menu. The associated icon resembles a hamburger | ||
Optimistic UI | User interfaces that assume expensive operations will complete successfully thereby improving the perceived performance | ||
Scrolling | Screen 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 Beaver | Turing machines that produce numbers so insanly large, no other algorithm can keep up with them | ||
Clique problem | The problem of finding groups of mutual friends in a network of people with friendship relations. Or more general, finding complete subgraphs | ||
Game of Life | A game world that showcases how astonishing complexity can arise from very simple ingredients | ||
Oracle | A black box that magically gives answers even to undeciable questions like the halting problem | ||
Pumping lemma | The 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 | |||
clooney | 1,424 | about 2 months ago | A JavaScript library implementing the actor model for concurrent computation. The term is a reference to George Clooney who is also an actor |
CockroachDB | Database application, that is marketed as being so fault tolerant and resilient as a cockroach | ||
horcrux | 4,636 | 3 months ago | Splits 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 |
Puppeteer | 88,848 | 7 days ago | A browser automation library. If the browser is the puppet, this is the puppeteer |
Safari | Web browser developed by Apple | ||
tldr | Simplified man pages with practical examples | ||
Uglify | 13,164 | 5 days ago | A JavaScript minifier. Removes everything that makes the code readable and pretty to make it smaller |
uppy | 29,195 | 5 days ago | A dog themed uploader component. The name is a blend of and . It even comes with a crash recovery plugin called |
Webpack | A bundler for JavaScript and other assets with a short and descriptive name that also somewhat rhymes | ||
yarn | NodeJS 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. BASE | Acronyms describing competing database ideologies (aka. SQL vs. NoSQL). Note that acid and base are also opposites in chemistry | ||
Bottleneck | A central part of a network/application that significantly limits throughput/performance and should ideally be eliminated | ||
Brick | When your device is so corrupted it virtually turns into a brick | ||
camelCase, snake_case, kebab-case | Different case styles where the name illustrates its appearance | ||
Cookie licking | E.g. claiming a GitHub issue, then not working on it | ||
Easter egg | A hidden feature especially in video games in reference to the Easter egg hunt | ||
Floating point number | This representation can encode numbers at very different magnitudes with limited amount of digits by letting the radix point instead of being fixed in place | ||
Framework | In software architecture (like in actual architecture) frameworks provide basic structure to build upon that guide and constrain the further development | ||
Glue Code | Jenga and LEGO bricks don't share the same interface but you can always glue them together | ||
Heisenbug | A 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 | ||
Hydra | A bug that, when an attempt to fix is made, introduces multiple new bugs. It's a bug that cannot be fixed | ||
Magic | A 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 starvation | A problem where a process is perpetually denied resources to do its work | ||
Time travel debugging | Stepping back in time through source code to understand execution and sometimes even to change history | ||
Tree shaking | Shake the dependency tree until all the dead parts are falling off and you end up with a nice lean tree | ||
Unfair enumeration | A 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 condition | When you write instead of because it reads as, “if red equals the color”, similar to the way the Star Wars character Yoda speaks |