Junior’dan Senior’a: JavaScript Yazma Alışkanlıkları

Junior’dan Senior’a: JavaScript Yazma Alışkanlıkları

(Kod Çalışıyor ≠ Kod İyi) ⚠️

Junior’ken kod yazmak biraz şuna benzer:

“Arabayı çalıştırdım, gerisi önemli değil.” 🚗💨

Senior’ken ise hedef şudur:

“Bu arabayı herkes sürebilsin, bozulduğunda tamiri kolay olsun.” 🔧

Bu yazı işte tam olarak o farkı anlatıyor.


1️⃣ Kötü Kod vs İyi Kod

“Aynı işi yaparlar, biri sinir eder” 😅

❌ Junior Tarzı Kod

function c(a, b, d) {
  return a * b * d;
}

Bu Kod Neden Kötü?

  • c → Ne bu? Çarpma mı, hesap mı, büyü mü? 🧙‍♂️
  • a, b, d → Matematik sınavı mı çözüyoruz?
  • 3 ay sonra sen bile hatırlamazsın

📌 Junior hatası:

“Ben şu an anlıyorum ya, yeter.”


✅ Senior Tarzı Kod

function calculateTotalPrice(price, quantity, taxRate) {
  return price * quantity * taxRate;
}

Bu Kod Neden İyi?

  • Fonksiyon adı → ne yaptığını söylüyor
  • Parametreler → okurken hikâye anlatıyor
  • Yorum yazmaya gerek yok

🧠 Senior refleksi:

Kod kendini anlatıyorsa, doğru yoldasın.


2️⃣ Clean Code: Gereksiz Satır = Gizli Tehlike 💣

❌ Fazlalıklı Kod

function isUserActive(user) {
  if (user.isActive === true) {
    return true;
  } else {
    return false;
  }
}

Bu Kod Ne Yapıyor?

  • Boolean kontrol ediyor
  • Ama 5 satırda yaptığı işi 1 satırda yapabilir

Junior burada şunu düşünür:

“Net olsun diye böyle yazdım.”

Senior ise şunu düşünür:

“Gereksiz satır = gelecekte bug.”


✅ Clean Code Hali

function isUserActive(user) {
  return user.isActive;
}

Ne Kazandık?

  • Daha kısa
  • Daha net
  • Daha az hata ihtimali

📌 Altın Kural:

Kod uzadıkça değil, sadeleştikçe güçlenir.


3️⃣ Okunabilirlik: Kod Bilgisayar İçin Değil, İnsan İçin 👀

❌ Okunması Zor Kod

if(x>10&&y<5&&z!==null&&z!==undefined){
doSomething();
}

Bu kodu okurken:

  • Gözler kısılır 👁️
  • Beyin yorulur 🧠
  • Debug zamanı kabusa döner 😵

✅ Okunabilir Kod

const isXGreaterThanTen = x > 10;
const isYLessThanFive = y < 5;
const hasZValue = z != null;

if (isXGreaterThanTen && isYLessThanFive && hasZValue) {
  doSomething();
}

Bu Kod Neden Senior İşi?

  • Her değişken bir mini açıklama
  • Hangi şart bozuk → tek bakışta
  • Log eklemek kolay

📌 Pratik İpucu:
Uzun if görüyorsan → parçala.


4️⃣ Debug Edilebilirlik: Hata Olacak, Panik Yapma 🐞

❌ Debug Kabusu

function getPrice(data) {
  return data.order.price.total;
}

Bir gün bu fonksiyon patlar ve şunu görürsün:

Cannot read property 'price' of undefined

Ve o an:

“Hangi data? Neresi undefined?” 😐


✅ Debug Dostu Kod

function getPrice(data) {
  if (!data || !data.order) {
    console.error("Eksik data:", data);
    return 0;
  }

  return data.order.price?.total ?? 0;
}

Ne Yaptık?

  • Önce veri var mı kontrol ettik
  • Log bıraktık
  • Optional chaining ile patlamayı önledik

📌 Senior alışkanlığı:

Hataları saklama, görünür yap.


5️⃣ Magic Number: Sessiz Katiller 🧙‍♂️

❌ Magic Number

if (score > 85) {
  grade = "A";
}

Soru bombardımanı:

  • 85 neden?
  • Kim koydu?
  • Yarın 90 olursa ne olacak?

✅ Anlamlı Sabitler

const MIN_SCORE_FOR_A = 85;

if (score > MIN_SCORE_FOR_A) {
  grade = "A";
}

Avantajlar

  • Okuyan herkes anlar
  • Değişiklik tek noktadan
  • Kodun niyeti net

📌 Senior refleksi:

Sayı görüyorsan, adı olsun.


6️⃣ Fonksiyonlar: Küçük, Tek Amaçlı, Net 🎯

❌ Her Şeyi Yapan Fonksiyon

function handleUser(user) {
  validateUser(user);
  saveUser(user);
  sendEmail(user);
  logUser(user);
}

Bugün çalışır…
Yarın biri gelir sms ekler…
Sonra bir try/catch
Derken fonksiyon çöker 😄


✅ Parçalanmış Yapı

function validateUser(user) {}
function saveUser(user) {}
function sendWelcomeEmail(user) {}
function logUserAction(user) {}

Neden Daha İyi?

  • Test yazmak kolay
  • Debug kolay
  • Değişiklik güvenli

📌 Altın Cümle:

Bir fonksiyonun adı uzuyorsa, fazla iş yapıyordur.


7️⃣ Junior vs Senior Düşünce Farkı 🧠

JuniorSenior
ÇalışıyorAnlaşılıyor
Hızlı yazDoğru yaz
Sonra düzeltirizBaştan temiz
Ben anlıyorumHerkes anlasın

8️⃣ Log Kültürü: Console.log Bile Bir Sanattır 🎨

❌ Anlamsız Log

console.log(data);

✅ Anlamlı Log

console.log("Order data before calculation:", data);

📌 İpucu:
Log’lar hikâye anlatmalı, dedikodu yapmamalı 😄


🎯 SONUÇ: Senior Kod = Daha Az Ego, Daha Çok Netlik ✨

Senior geliştirici:

  • Akrobatik kod yazmaz
  • “Ben bunu nasıl daha net anlatırım?” diye düşünür
  • Hataları gizlemez, kontrol eder

Unutma:

Kod bir gün mutlaka değişir.
Değişmesi kolay olan kod, iyi koddur.

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir