Programmer Slang: A Categorized Glossary
Implementation Style
|
Term |
Meaning |
|
hand-rolled |
Built from scratch instead of using an existing library/framework |
|
roll your own (RYO) |
Same idea — DIY instead of reusing existing code |
|
vanilla |
Plain, unmodified (e.g. "vanilla JS") |
|
bare metal |
Running directly on hardware, no OS/abstraction layer |
|
from scratch |
Built without reusing existing code |
|
duct tape / bandaid fix |
A quick, ugly, temporary fix |
|
hack |
An inelegant but functional solution |
State & Tracking
|
Term |
Meaning |
|
dirty tracking |
Marking data as modified so a system knows what needs re-saving or re-syncing, instead of redoing everything |
|
stale data |
Cached data that's out of date |
|
race condition |
A bug caused by timing-dependent execution order |
|
poison pill |
A special message/value used to signal "stop" to a consumer |
|
heisenbug |
A bug that disappears or changes behavior when you try to observe it |
|
bit rot |
Code that degrades in usefulness simply because the world around it changed |
|
zombie process |
A finished process still lingering in the process table |
Debugging & Investigation
|
Term |
Meaning |
|
smoking gun |
Definitive evidence pinpointing the exact cause of a bug |
|
root cause |
The actual underlying source of a bug, as opposed to a symptom |
|
red herring |
A misleading clue while debugging |
|
breadcrumbs |
Logging or trail left behind to trace what happened |
|
rubber duck debugging |
Explaining code line-by-line to something (or someone) to find the bug yourself |
|
war room |
Emergency incident response meeting |
|
canary |
Something deployed early or small to catch problems before wider rollout |
Code Quality & Architecture
|
Term |
Meaning |
|
spaghetti code |
Tangled, hard-to-follow logic |
|
boilerplate |
Repetitive code you have to write every time |
|
magic number/string |
An unexplained literal value buried in code |
|
god object/class |
One class that does far too much |
|
shim |
A small compatibility layer bridging two incompatible interfaces |
|
glue code |
Code that just connects other pieces together, with no real logic of its own |
|
lava flow |
Old, confusing code nobody understands or dares remove |
|
footgun |
A feature that makes it easy to shoot yourself in the foot |
Team & Process
|
Term |
Meaning |
|
yak shaving |
Doing a seemingly pointless task that's secretly a prerequisite for what you actually wanted to do |
|
bikeshedding |
Arguing over trivial details while ignoring the real issue |
|
cargo culting |
Copying practices or code without understanding why they work |
|
tribal knowledge |
Undocumented knowledge that only exists in people's heads |
|
bus factor |
How many people would need to disappear before a project is in serious trouble |
|
works on my machine |
The classic excuse when a bug can't be reproduced elsewhere |
|
dogfooding |
Using your own product internally before shipping it |
Git-Specific
|
Term |
Meaning |
|
cherry-pick |
Apply a specific commit from one branch onto another |
|
bisect |
Binary-search through commit history to find which commit introduced a bug |
|
rebase hell |
Painful, conflict-heavy history rewriting |
|
squash |
Combine multiple commits into one |
|
force push |
Overwrite remote history — dangerous, can erase others' work |
|
detached HEAD |
Checked out a commit instead of a branch; easy to lose work |
Concurrency
|
Term |
Meaning |
|
deadlock |
Two or more processes stuck waiting on each other forever |
|
livelock |
Processes keep changing state in response to each other but make no real progress |
|
starvation |
A process never gets the resources it needs because others keep hogging them |
|
thundering herd |
Many processes/threads all waking up and hitting a resource at once |
|
priority inversion |
A low-priority task ends up blocking a high-priority one |
Performance
|
Term |
Meaning |
|
memory leak |
Memory that's allocated but never freed |
|
thrashing |
A system spends more time managing resources than doing real work |
|
hot path |
The most frequently executed code path — worth optimizing |
|
cold start |
The slow first run of something, e.g. a serverless function warming up |
|
N+1 problem |
A single query accidentally becomes N+1 queries in a loop |
Networking
|
Term |
Meaning |
|
handshake |
Initial exchange to establish a connection |
|
keep-alive |
Mechanism to prevent a connection from closing due to inactivity |
|
man-in-the-middle |
An attacker secretly intercepting communication between two parties |
|
jitter |
Variation in latency over time |
|
split brain |
A distributed system's nodes disagree on state after a network partition |
Testing & QA
|
Term |
Meaning |
|
flaky test |
A test that passes or fails inconsistently with no code changes |
|
happy path |
The main, no-errors-expected flow through code |
|
edge case |
An input or scenario at the extreme boundary of what's expected |
|
smoke test |
A quick, shallow test to confirm nothing's catastrophically broken |
|
regression |
A bug that reintroduces a previously fixed issue |
Compiler & Low-Level
|
Term |
Meaning |
|
undefined behavior (UB) |
Code whose behavior isn't defined by the language spec — anything can happen |
|
dead code elimination |
Compiler optimization that strips out unreachable code |
|
padding |
Extra bytes inserted, e.g. in structs, for memory alignment |
|
register spilling |
When there aren't enough CPU registers, values get pushed to memory |
|
canary value |
A known value placed in memory to detect stack buffer overflows |

No comments:
Post a Comment