ASD: The Three Letters That Will Haunt Your Next Code Review
May 1, 2026
We've all done it — committed code with 'asd' as a variable name, test data, or placeholder. Here's why those three letters represent everything wrong with our quick-and-dirty coding habits, and what to do instead.
ASD: The Three Letters That Will Haunt Your Next Code Review
You know exactly what I'm talking about. You're in the zone, building a feature, and you need a quick variable name. Your fingers hit the home row: asd.
Or maybe you need test data for a form. First name? asd. Email? asd@asd.com. Password? You guessed it.
I've been writing code professionally for over a decade, and I've seen "asd" in production codebases at billion-dollar companies. I've written it in production codebases at billion-dollar companies. And every single time, it comes back to bite someone.
Why We All Do This
Let's be honest about why asd is so tempting:
- It's fast. Your left hand is already on the home row. Three keystrokes, zero thought required.
- It's temporary. You're totally going to replace it before committing. (Narrator: They didn't.)
- It's obviously fake. Unlike "test" or "foo", nobody's going to mistake
asdfor real data.
The problem is that "temporary" code has a way of becoming permanent. I once found an API endpoint at Snapchat that returned user data with the placeholder key asdResponse. It had been there for two years. We couldn't rename it without breaking mobile clients.
The Real Cost of Lazy Placeholders
Code reviews become archaeology. When I see asd in a PR, I immediately know the developer didn't do a final pass. What else did they miss? Are there commented-out console.logs? Unused imports? Logic that "works on my machine"?
Debugging gets harder. Try searching your codebase for asd when you've got 47 instances across 23 files. Good luck figuring out which one is causing the bug.
Onboarding suffers. New team members see this stuff and think, "Is this the quality bar here?" It sets a tone.
I remember joining a fintech startup where the entire user authentication flow used asd as the test account email. Except it wasn't just in tests — it was hardcoded into the admin panel's "impersonate user" feature. When someone finally tried to clean it up, the feature broke in staging for three days.
What To Do Instead
For variables: Use descriptive names, even if you think it's temporary. tempUserId is barely longer than asd but infinitely clearer. Your IDE autocompletes anyway.
For test data: Libraries exist for this. In TypeScript, I use faker-js. In Python, Faker. They generate realistic data with one line:
import { faker } from '@faker-js/faker';
const testUser = {
email: faker.internet.email(),
firstName: faker.person.firstName(),
id: faker.string.uuid()
};
Bonus: Faker data looks real enough to catch validation bugs that asd would slip through.
For quick prototypes: If you absolutely must use a placeholder, make it searchable and obvious. I use PLACEHOLDER_, TODO_, or FIXME_ as prefixes. Set up a pre-commit hook to block these from being committed:
#!/bin/bash
if git diff --cached | grep -i "PLACEHOLDER_"; then
echo "🚫 Found PLACEHOLDER_ in staged changes"
exit 1
fi
The Five-Minute Rule
Here's my personal standard: If I use a lazy placeholder, I set a five-minute timer. When it goes off, I either replace it with something proper or I wasn't going to replace it at all.
This has saved me countless times. You'd be shocked how often "I'll fix it later" becomes "ship it."
Why This Actually Matters
Look, I'm not here to be the code quality police. We're all shipping under deadlines, dealing with scope creep, fighting production fires.
But here's the thing: The small stuff compounds. A codebase full of asd, magic numbers, and "temporary" hacks doesn't happen overnight. It happens one lazy shortcut at a time.
I've worked in codebases where every function was thoughtfully named, tests were comprehensive, and PRs were thorough. I've also worked in codebases where you were afraid to touch anything because you didn't know what would break.
The difference between those two environments? A thousand tiny decisions. And one of those decisions is whether you type asd or take two extra seconds to type something meaningful.
The Bottom Line
Next time your fingers drift toward asd, ask yourself: "Would I be embarrassed if this showed up in a code review six months from now?"
If the answer is yes, you already know what to do.
And if you've already got asd sprinkled throughout your codebase? No judgment. We've all been there. But maybe spend 20 minutes this week doing a find-and-replace. Your future self (and your teammates) will thank you.