Proqram təminatı inkişafı kontekstində yığın nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Proqram təminatının inkişafında istifadə olunan yığın aşağıdakıları əhatə edə bilər:
-
Çağrı Yığını (Call Stack): Proses tərəfindən aktiv alt proqramları (funksiyalar və ya metodlar) izləmək üçün istifadə olunan yaddaş sahəsi. Funksiya çağırıldıqda, onun məlumatları (qaytarma ünvanı, yerli dəyişənlər) yığına yerləşdirilir. Funksiya tamamlandıqda, bu məlumatlar silinir. LIFO (Last-In, First-Out) prinsipinə əsaslanır.
// Çağrı yığınının işləmə nümunəsi void func2() { // func2-nin yerli dəyişənləri yığına əlavə olunur // ... } // func2-dən çıxarkən, onun məlumatları yığından silinir void func1() { // func1-nin yerli dəyişənləri yığına əlavə olunur func2(); // func2 çağırılır, onun məlumatları func1-in üstünə yerləşdirilir // ... } // func1-dən çıxarkən, onun məlumatları yığından silinir int main() { // main yığına əlavə olunur func1(); // func1 çağırılır return 0; } // main yığından silinir -
Texnologiya Yığını (Technology Stack): Müəyyən bir proqram məhsulunun inkişafı və yerləşdirilməsi üçün istifadə olunan ümumi texnologiyalar toplusu (proqramlaşdırma dilləri, çərçivələr, verilənlər bazaları, serverlər, alətlər).
Populyar yığın nümunələri:
| Yığın növü | Tərkib hissələri |
|---|---|
| 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 seçimi layihənin tələblərinə, genişlənməyə, performansa, komanda ixtisasına və ekosistemə əsaslanır. QA mütəxəssisi istifadə olunan yığını anlamalı və uyğun test alətləri və strategiyalarını seçməlidir. 3. LIFO Məlumatlar Strukturu (Stack Data Structure): LIFO (Last-In, First-Out) prinsipini həyata keçirən abstrakt məlumat tipi və ya xətti məlumat strukturu. Elementlər bir tərəfdən (stackin yuxarı, top) əlavə edilir (push əməliyyatı) və çıxarılır (pop əməliyyatı).
# Python-da siyahı ilə "stack" strukturunun nümunəsi
stack = []
# Element əlavə etmək (push)
stack.append('A')
stack.append('B')
stack.append('C')
print(f"Stack əlavə edildikdən sonra: {stack}") # Nəticə: ['A', 'B', 'C']
# Element çıxarmaq (pop)
element = stack.pop() # 'C' çıxarılır
print(f"Çıxarılmış element: {element}")
print(f"Stack çıxarılmadan sonra: {stack}") # Nəticə: ['A', 'B']
# Növbəti elementi çıxarmaq (pop)
element = stack.pop() # 'B' çıxarılır
print(f"Çıxarılmış element: {element}")
print(f"Stack çıxarılmadan sonra: {stack}") # Nəticə: ['A']