5 Key Defensive Programming Techniques for Beginners to Boost Code Safety

Ahmet Soner
3 min readFeb 7, 2025

output1.png

5 Simple Techniques to Master Defensive Programming for Newbies

Hey there, young Padawan of programming! If you’ve stumbled upon defensive programming and thought it sounded more like gearing up for a duel, you’re not far off. Imagine suiting up your code to fend off potential bugs and misbehaving inputs. Ready to turn your code into a fortress? Let’s dive into five simple yet powerful techniques to safeguard your code, all while having a bit of fun!

1. Expect the Unexpected

First rule of defensive programming club: always assume chaos might knock at your door. Code should gracefully handle unexpected scenarios like missing values or incorrect data types.

Why It Matters:

Your program might blow up if you don’t! Consider it defensive driving — anticipating wild drivers.

function safeDivide(a, b) {
if (b === 0) {
throw new Error("Division by zero is a no-no!");
}
return a / b;
}

With this tiny check, you save your code from embarrassing crashes.

2. Validate, Validate, Validate

Before you jump into the deep end with the data, make sure your inputs are what they claim to be. Pretend each input is an impostor — you need proof!

How to Do It:

  • Use Built-in Functions: Leverage methods like parseInt() or parseFloat() to ensure strings become numbers.
  • Regular Expressions: These can be your best friend for checking formats.
function validateEmail(email) {
const emailPattern = /\S+@\S+\.\S+/;
return emailPattern.test(email);
}

console.log(validateEmail("example@domain.com")); // true
console.log(validateEmail("notARealEmail")); // false

This pattern separates wannabe addresses from the real deals!

3. Keep It Simple, Silly (K.I.S.S)

Simplicity is your secret weapon. Break down complex functions into smaller, bite-sized chunks that are easy to reason about and test.

The Strategy:

  • Single Responsibility Principle: Each function should do one thing and do it well.
  • Readable Code: Write code like you’re penning a note for future you.
function getFirstName(fullName) {
return fullName.split(' ')[0];
}

This tiny function is clear and concise — no mystery here!

4. Don’t Trust User Input

People have a knack for breaking things, even unintentionally. Always treat user input like it’s carrying a hidden bomb.

What to Adopt:

  • Sanitize Inputs: Use libraries or write simple checks to clean up inputs.
  • Use Escaping: Particularly for HTML or SQL content to avoid injections.
function sanitizeString(str) {
return str.replace(/</g, "&lt;").replace(/>/g, "&gt;");
}

With this, your web page stays pristine, free from rogue HTML tags.

5. Fail Gracefully

Even the best defenses might fall. The key is to ensure your program fails like a graceful swan dive, not a belly flop.

Pro Tips:

  • Error Handling Blocks: Use try-catch to manage errors smoothly.
  • User Feedback: Inform users with friendly error messages instead of cryptic mumbo-jumbo.
try {
riskyOperation();
} catch (error) {
console.error("Oops! Let's try something else.");
}

This way, your application apologizes for the hiccup, not just stops working.

By now, your code should be decked out in its defensive gear, ready to confront the wild world of unexpected inputs and chaotic situations. Happy coding — may the bugs be ever in your favor! 🐛✨

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Ahmet Soner
Ahmet Soner

Written by Ahmet Soner

Software Architect | Specializing in distributed systems and scalable architectures | Enthusiast of cutting-edge technologies and innovation

No responses yet

Write a response