Katman 2
Karar Yapıları - Katman 2

Karar Yapıları: Kodun Karar Odası Koşullu Mantık

Bir programın akıllı görünmesini sağlayan şey, elindeki verilere bakarak farklı yollar seçebilmesidir. JavaScript'te if-else yapıları, kodun akışını kontrol eden trafik polisleri gibidir. Softyla Layer 2 seviyesinde, bu yapıları sadece "çalıştırmak" için değil, en doğru karar ağacını kurmak için öğreneceğiz.

1
Koşullu Mantık

Koşullu Mantık: true ve false Arasındaki Seçim

if-else yapıları, programın akışını koşullara göre yönlendiren karar mekanizmalarıdır. Her if bloğu, parantez içindeki ifadenin Boolean (true veya false) bir değer üretmesini bekler ve bu sonuca göre farklı kod bloklarını çalıştırır.

Layer 2 Bakışı: Parantez içine sadece a == b gibi kıyaslamalar yazmak zorunda değilsiniz. JavaScript, bazı değerleri otomatik olarak "doğru" (Truthy) veya "yanlış" (Falsy) kabul eder.

Şimdilik bilmemiz gereken; Sayısal olarak 0, boş bir metin "", null ve undefined değerlerinin if sorgusunda otomatik olarak false gibi davranacağıdır. Bu bilgi, ByteOmi seviyesinde kod yazarken sizi uzun kontrollerden kurtaracaktır.

2
Zincirleme Kararlar

Zincirleme Kararlar: else if ve else

Hayat her zaman sadece iki seçenekten (Evet/Hayır) ibaret değildir. Birden fazla ihtimali değerlendirirken else if basamaklarını kullanırız.

3
Mantıksal Operatörlerle Koşullar

Mantıksal Operatörlerle Koşulları Güçlendirme

Karar yapılarını çok daha akıllı hale getirmek için operatörlerden yardım alırız.

ByteOmi perspektifinde bu birleşimler, karmaşık iş mantıklarını (business logic) temiz bir şekilde çözmemizi sağlar.

4
İç İçe Yapılar

İç İçe (Nested) Yapılar ve Okunabilirlik

Bir if bloğunun içine başka bir if yazabilirsiniz. Ancak Layer 2 seviyesindeki bir yazılımcı olarak dikkat etmeniz gereken bir kural vardır: Derinlik arttıkça kodun okunabilirliği azalır.

Layer 2 İpucu: Eğer çok fazla iç içe if kullanmaya başladıysanız, ByteOmi'de göreceğimiz "Early Return" (Erken Dönüş) veya "Switch Case" gibi yapıları düşünmenin vakti gelmiş demektir. Temiz kod, az düğüm demektir.

5
Kısa Yol Kararları

Kısa Yol Kararları: Ternary ve Kısa Devre

Bazı durumlarda koca bir if-else bloğu yazmak yerine daha profesyonel yöntemler kullanırız:

Bu kısa yollar, ByteOmi standartlarında "modern ve şık" kod yazmanın anahtarıdır.

6
Performans

Karar Yapılarında Performans

Tarayıcı, if-else zincirinde bir eşleşme bulduğunda diğerlerine bakmayı bırakır.

Mühendislik Notu: En çok gerçekleşme ihtimali olan koşulu en başa (ilk if bloğuna) koymak, işlemcinin boşuna alt basamakları kontrol etmesini engeller. Bu, büyük ölçekli uygulamalarda ByteOmi seviyesinde bir optimizasyon tekniğidir.

Geçiş Paneli

ByteOmi Geçiş Paneli: Sırada Ne Var?

Karar yapılarımızla kodun yolunu belirledik. Peki, eğer kontrol etmemiz gereken seçenek sayısı 10-15 taneyse? Sürekli else if yazmak kodumuzu bir spagettiye çevirebilir. Bir sonraki adımda, çok seçenekli durumları daha düzenli yönetmemizi sağlayan "Switch Case" yapısına geçiyoruz. Orada "katı eşitlik" kontrolünün neden bu kadar önemli olduğunu mühendislik gözüyle inceleyeceğiz.

</>
Çok Katmanlı Güvenlik ve Yetki Kontrolü Örneği
// 1. Kullanıcıdan Gelen Veriler (Simüle Ediliyor)
const enteredPassword = "12345";
const storedPassword = "12345";
const isAccountActive = true;
const userRole = "editor"; // admin, editor, guest

// 2. İç İçe If-Else (Nested Conditions): Hiyerarşik Kontrol
if (enteredPassword === storedPassword) {
    
    if (isAccountActive) {
        console.log("Giriş Başarılı! Yetki kontrolleri yapılıyor...");

        // 3. Switch-Case Kullanımı: Belirli seçenekler (roller) için en ideal yapı
        switch (userRole) {
            case "admin":
                console.log("Tam yetki sağlandı. Tüm panellere erişebilirsiniz.");
                break;
            case "editor":
                console.log("İçerik düzenleme yetkisi sağlandı.");
                break;
            case "guest":
                console.log("Sadece görüntüleme yetkisi sağlandı.");
                break;
            default:
                console.log("Tanımsız rol! Lütfen sistem yöneticisine başvurun.");
        }

    } else {
        console.warn("Hesabınız askıya alınmış. Lütfen destekle iletişime geçin.");
    }

} else {
    console.error("Hatalı şifre! Lütfen tekrar deneyin.");
}

// 4. Layer 2 Pratiği: Koşulsuz Çıkış (Guard Clauses) Mantığına Hazırlık
// ByteOmi'de bu iç içe yapılar yerine "erken hata döndürme" yöntemini öğreneceksiniz.