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.