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:
-
Ç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 -
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']