Learning
Clean Code

Gyakori hibák és rossz minták

DRY és KISS megsértése, magic numbers és mély egymásba ágyazás felismerése és javítása.

Gyakori hibák és rossz minták

Ismerd fel ezeket a mintákat a saját kódodban – és a code review-n is!

DRY megsértése – kódduplikáció

DRY = Don't Repeat Yourself – ne ismételd önmagad.

// ❌ Rossz – ugyanaz a logika két helyen
function calculateCartTotal(items) {
  return items.reduce((sum, item) => sum + item.price * item.quantity, 0);
}

function calculateOrderTotal(items) {
  return items.reduce((sum, item) => sum + item.price * item.quantity, 0);
}
// ✅ Javított – kiemelve újrafelhasználható segédfüggvénybe
function calculateLineItemsTotal(items) {
  return items.reduce((sum, item) => sum + item.price * item.quantity, 0);
}

const cartTotal = calculateLineItemsTotal(cartItems);
const orderTotal = calculateLineItemsTotal(orderItems);

KISS megsértése – felesleges komplexitás

KISS = Keep It Simple, Stupid – a legegyszerűbb megoldás általában a legjobb.

// ❌ Rossz – túlbonyolított egy egyszerű feladathoz
function isEven(number) {
  return number % 2 === 0 ? true : false;
}
// ✅ Javított – tömör és olvasható
function isEven(number) {
  return number % 2 === 0;
}

Magic Numbers – varázszámok

// ❌ Rossz – mit jelent a 86400?
if (sessionAge > 86400) {
  expireSession();
}
// ✅ Javított – nevesített konstans
const SESSION_EXPIRY_IN_SECONDS = 86400; // 24 óra

if (sessionAge > SESSION_EXPIRY_IN_SECONDS) {
  expireSession();
}

Mély egymásba ágyazás (Nested Ifs)

// ❌ Rossz – piramisszerű, nehezen olvasható
function processUser(user) {
  if (user) {
    if (user.isActive) {
      if (user.hasPermission('admin')) {
        if (user.profile) {
          return user.profile.data;
        }
      }
    }
  }
  return null;
}
// ✅ Javított – early return pattern
function processUser(user) {
  if (!user) return null;
  if (!user.isActive) return null;
  if (!user.hasPermission('admin')) return null;
  if (!user.profile) return null;

  return user.profile.data;
}

Rövid összefoglaló

  • DRY: ne ismételd a kódlogikát – emeld ki újrafelhasználható egységekbe.
  • KISS: a legegyszerűbb megoldás általában a legjobb.
  • Magic numbers és mély egymásba ágyazás komolyan rontják az olvashatóságot.

On this page