Sobes.tech
Junior

Yazılım geliştirme bağlamında yığın nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Yazılım geliştirmede kullanılan yığın aşağıdakilere atıfta bulunabilir:

  1. Çağrı Yığını (Call Stack): İşlem tarafından aktif alt programları (fonksiyonlar veya metodlar) izlemek için kullanılan bellek alanı. Bir fonksiyon çağrıldığında, onun bilgileri (dönüş adresi, yerel değişkenler) yığına konur. Fonksiyon tamamlandığında, bu bilgiler kaldırılır. LIFO (Last-In, First-Out) prensibiyle çalışır.

    // Çağrı yığınının çalışma örneği
    void func2() {
        // func2'nin yerel değişkenleri yığına eklenir
        // ...
    } // func2'dan çıkarken, verileri yığından kaldırılır
    
    void func1() {
        // func1'in yerel değişkenleri yığına eklenir
        func2(); // func2 çağrılır, verileri func1'in üzerine eklenir
        // ...
    } // func1'den çıkarken, verileri yığından kaldırılır
    
    int main() {
        // main yığına eklenir
        func1(); // func1 çağrılır
        return 0;
    } // main yığından kaldırılır
    
  2. Teknoloji Yığını (Technology Stack): Belirli bir yazılım ürününün geliştirilmesi ve dağıtımı için kullanılan ortak teknolojiler kümesi (programlama dilleri, çerçeveler, veritabanları, sunucular, araçlar).

Popüler yığın örnekleri:

Yığın Türü Bileşenler
MEAN Stack MongoDB, Express.js, Angular, Node.js
MERN Stack MongoDB, Express.js, React, Node.js
LAMP Stack Linux, Apache, MySQL, PHP
LEMP Stack Linux, Engine X (NGINX), MySQL, PHP
.NET Stack C#, ASP.NET, SQL Server, IIS

Yığının seçimi, projenin gereksinimlerine, ölçeklenebilirliğe, performansa, ekibin niteliklerine ve ekosisteme bağlıdır. QA uzmanları, uygun araçlar ve test stratejileri seçmek için kullanılan yığını anlamalıdır. 3. LIFO Veri Yapısı (Stack Data Structure): LIFO (Last-In, First-Out) prensibini uygulayan soyut veri tipi veya doğrusal veri yapısı. Elemanlar, yığının tepe noktası (top) olarak adlandırılan bir taraftan eklenir (push işlemi) ve çıkarılır (pop işlemi).

# Python'da liste kullanarak yığın yapısının örneği
stack = []

# Eleman ekleme (push)
stack.append('A')
stack.append('B')
stack.append('C')
print(f"Yığın sonrası ekleme: {stack}") # Çıktı: ['A', 'B', 'C']

# Eleman çıkarma (pop)
element = stack.pop() # 'C' çıkarılır
print(f"Çıkarılan eleman: {element}")
print(f"Yığın sonrası çıkarma: {stack}") # Çıktı: ['A', 'B']

# Bir sonraki elemanı çıkarma (pop)
element = stack.pop() # 'B' çıkarılır
print(f"Çıkarılan eleman: {element}")
print(f"Yığın sonrası çıkarma: {stack}") # Çıktı: ['A']