DEV Community

Hamza Khan
Hamza Khan

Posted on

🧹 Essential Tips for Writing Cleaner Code: Keep It Simple! ✨

Writing clean code isn’t just about making your code work—it's about making it readable, maintainable, and easy to understand for you and others. Clean code reduces bugs, speeds up debugging, and makes future updates much simpler.

In this post, we’ll go over some essential tips for writing cleaner code with easy-to-follow examples. Let’s dive in and make your code shine! 💻✨

🔑 1. Use Meaningful Names

The first step to clean code is using clear, descriptive names for variables, functions, and classes. Instead of shortening words or using random letters, name things in a way that explains what they are doing.

🚫 Bad Example:

let x = 10;
function f() {
  return x * 2;
}
Enter fullscreen mode Exit fullscreen mode

✅ Good Example:

let basePrice = 10;
function calculateFinalPrice() {
  return basePrice * 2;
}
Enter fullscreen mode Exit fullscreen mode

Why?: In the second example, anyone reading the code can instantly understand what basePrice and calculateFinalPrice do without needing extra context.

🧩 2. Keep Functions Short and Focused

A clean function should do one thing and do it well. If your function is trying to handle multiple tasks, it’s time to split it up!

🚫 Bad Example:

function createUserProfile(data) {
  // Validate data
  if (!data.name || !data.age) {
    return 'Invalid input';
  }

  // Save to database
  saveToDatabase(data);

  // Send welcome email
  sendWelcomeEmail(data);
}
Enter fullscreen mode Exit fullscreen mode

✅ Good Example:

function validateUserData(data) {
  if (!data.name || !data.age) {
    return false;
  }
  return true;
}

function createUserProfile(data) {
  if (!validateUserData(data)) {
    return 'Invalid input';
  }

  saveToDatabase(data);
  sendWelcomeEmail(data);
}
Enter fullscreen mode Exit fullscreen mode

Why?: By breaking up tasks into smaller functions, your code becomes more readable, testable, and reusable.

🔄 3. Avoid Repetition (DRY Principle)

The Don’t Repeat Yourself (DRY) principle is all about reducing duplication. If you find yourself writing the same code over and over, it's a sign you need to refactor.

🚫 Bad Example:

let user1 = { name: 'Alice', age: 30 };
let user2 = { name: 'Bob', age: 25 };
let user3 = { name: 'Charlie', age: 35 };

console.log(user1.name, user1.age);
console.log(user2.name, user2.age);
console.log(user3.name, user3.age);
Enter fullscreen mode Exit fullscreen mode

✅ Good Example:

let users = [
  { name: 'Alice', age: 30 },
  { name: 'Bob', age: 25 },
  { name: 'Charlie', age: 35 }
];

users.forEach(user => console.log(user.name, user.age));
Enter fullscreen mode Exit fullscreen mode

Why?: In the second example, we’ve removed the repetitive logging and used a loop to keep our code DRY and efficient.

📏 4. Follow Consistent Formatting

Consistent formatting makes your code look professional and easier to read. Stick to the same rules for indentation, spacing, and braces throughout your codebase.

🚫 Bad Example:

function sum(a,b){return a+b;}
Enter fullscreen mode Exit fullscreen mode

✅ Good Example:

function sum(a, b) {
  return a + b;
}
Enter fullscreen mode Exit fullscreen mode

Why?: Proper spacing and indentation in the second example make it much clearer and easier to read.

💬 5. Write Comments (But Not Too Many!)

Comments are great for explaining why a piece of code exists, but don’t over-comment. Clean code should be self-explanatory. Only comment on the tricky parts that need clarification.

🚫 Bad Example:

// Function to add two numbers
function sum(a, b) {
  return a + b;
}
Enter fullscreen mode Exit fullscreen mode

✅ Good Example:

// This function calculates the price after applying a discount rate.
function applyDiscount(price, discountRate) {
  return price - (price * discountRate);
}
Enter fullscreen mode Exit fullscreen mode

Why?: The first example is redundant because the function name sum already explains its purpose. The second comment is useful because it explains the specific purpose of the discount logic.

🔄 6. Handle Errors Gracefully

Don’t just assume everything will always work. Make sure your code is prepared for unexpected input or errors.

🚫 Bad Example:

function getUserData(userId) {
  return fetch(`/users/${userId}`).then(response => response.json());
}
Enter fullscreen mode Exit fullscreen mode

✅ Good Example:

async function getUserData(userId) {
  try {
    const response = await fetch(`/users/${userId}`);
    if (!response.ok) {
      throw new Error('User not found');
    }
    return await response.json();
  } catch (error) {
    console.error('Error fetching user data:', error);
  }
}
Enter fullscreen mode Exit fullscreen mode

Why?: Error handling in the second example ensures that if something goes wrong, the app won’t break, and you get useful feedback.

🧑‍💻 Conclusion: Keep it Clean, Keep it Simple

Writing clean code is not just a best practice—it's an essential skill for every developer. Clean, maintainable code is easy to read, simple to debug, and a breeze to update.

Remember these tips next time you sit down to code:

  • Use meaningful names 🏷️
  • Keep functions short 🧩
  • Don’t repeat yourself 🔄
  • Format your code 📏
  • Use comments wisely 💬
  • Handle errors gracefully ⚠️

Happy coding! 👨‍💻👩‍💻✨

Top comments (0)