
Framework proqram təminatının hazırlanmasını asanlaşdıran hazır struktur, qaydalar, komponentlər və alətlər toplusudur. Azərbaycan dilində bu anlayışı “proqramlaşdırma çərçivəsi” kimi ifadə etmək mümkündür. Sadə dillə desək, framework proqramçıya hər şeyi sıfırdan yaratmaq əvəzinə hazır bir başlanğıc strukturu təqdim edir. Məsələn, yeni bir veb tətbiq hazırlamaq istədiyinizi düşünün. İstifadəçi giriş sistemi, məlumatların idarə olunması, səhifələrin yönləndirilməsi, təhlükəsizlik və digər funksiyaları hər dəfə sıfırdan yaratmaq həm vaxt aparır, həm də əlavə xətaların yaranmasına səbəb ola bilər. Framework bu işlərin bir hissəsi üçün əvvəlcədən hazırlanmış həllər təqdim edir. Proqramçı isə həmin strukturun üzərində layihəsinə məxsus funksiyaları hazırlayır.
Framework-lərin əsas məqsədi proqramlaşdırma prosesini daha sistemli və sürətli etməkdir. Böyük proqram layihələrində yüzlərlə, hətta minlərlə fayl və funksiya ola bilər. Bütün bunların müəyyən struktur olmadan idarə edilməsi çətinləşir. Framework proqramçıya layihənin necə təşkil olunması, faylların harada yerləşdirilməsi və müxtəlif komponentlərin bir-biri ilə necə əlaqə qurması üçün müəyyən qaydalar təqdim edir. Bunun nəticəsində kod daha sistemli olur, komanda üzvlərinin layihəni başa düşməsi asanlaşır və eyni funksiyaların dəfələrlə sıfırdan yazılmasına ehtiyac azalır.
Framework adətən proqramçıya müəyyən layihə strukturu təqdim edir. Məsələn, bir Backend framework istifadə etdikdə istifadəçi sorğularının qəbul edilməsi, məlumatların emal olunması, verilənlər bazası ilə əlaqə və cavabların göndərilməsi üçün əvvəlcədən müəyyən edilmiş mexanizmlər mövcud ola bilər. Proqramçı framework-ün qaydalarına uyğun olaraq öz kodunu həmin strukturun daxilində yazır. Məhz burada framework ilə adi kitabxana arasında əsas fərqlərdən biri ortaya çıxır. Kitabxanadan istifadə etdikdə proqramçı lazım olan funksiyanı özü çağırır. Framework-də isə proqramın ümumi strukturunu framework müəyyən edir və lazım olan zaman proqramçının yazdığı kodu özü işə sala bilər. Bu yanaşma proqramlaşdırmada “Inversion of Control” prinsipi ilə əlaqələndirilir.
Framework və Library tez-tez bir-biri ilə qarışdırılır, lakin eyni anlayış deyil. Library müəyyən tapşırıqları yerinə yetirmək üçün hazırlanmış hazır funksiyalar və kodlar toplusudur. Proqramçı ehtiyac yarandıqda həmin funksiyanı çağırır. Framework isə bundan daha geniş struktur təqdim edir. O, layihənin necə qurulacağına və kodun hansı qaydalar əsasında təşkil olunacağına müəyyən qədər nəzarət edir.
Sadə nümunə ilə:
Library: Siz aləti seçirsiniz və lazım olan zaman istifadə edirsiniz.
Framework: Siz əvvəlcədən qurulmuş sistem daxilində işləyirsiniz və həmin sistemin qaydalarına uyğun hərəkət edirsiniz. Məsələn, React rəsmi olaraq istifadəçi interfeysləri yaratmaq üçün JavaScript kitabxanasıdır. Next.js isə React üzərində qurulmuş tam veb framework-dür.
Framework-lər istifadə sahəsinə görə müxtəlif kateqoriyalara bölünür.
Frontend framework-ləri: Frontend framework-ləri və əlaqəli alətlər istifadəçinin gördüyü veb interfeyslərin hazırlanmasını asanlaşdırır.
Bu istiqamətdə geniş istifadə olunan nümunələr:
CSS tərəfində isə:
kimi framework və alətlərdən istifadə olunur. Frontend framework-ləri komponentlərin yaradılması, səhifələrin strukturlaşdırılması, yönləndirmə, məlumatların idarə olunması və responsiv interfeyslərin hazırlanması kimi prosesləri asanlaşdıra bilər.
Backend framework-ləri: Backend framework-ləri server tərəfində işləyən proqramların hazırlanmasında istifadə olunur.
Məşhur nümunələr:
Backend framework-ləri API-lərin yaradılması, verilənlər bazası ilə işləmək, autentifikasiya, təhlükəsizlik, sorğuların idarə olunması və digər server əməliyyatlarını asanlaşdırır.
Mobil tətbiq framework-ləri: Mobil proqramlaşdırmada da framework-lərdən geniş istifadə olunur.
Məsələn:
Bu texnologiyalar vasitəsilə eyni kod bazasından istifadə etməklə müxtəlif mobil platformalar üçün tətbiqlər hazırlamaq mümkündür.
Proqramlaşdırma sahəsinə görə müxtəlif framework-lər mövcuddur.
Python: Django, Flask, FastAPI
Java: Spring, Spring Boot
PHP: Laravel, Symfony
JavaScript və TypeScript: Angular, Vue.js, Next.js, Express.js
C#: ASP.NET Core
Framework seçimi isə yalnız onun populyarlığından asılı olmamalıdır. Layihənin məqsədi, istifadə olunan proqramlaşdırma dili, performans tələbləri, komandanın təcrübəsi və layihənin gələcək miqyası da nəzərə alınmalıdır.
Framework istifadə etməyin əsas üstünlüklərindən biri vaxta qənaətdir. Proqramçı hər layihədə eyni funksiyaları sıfırdan yazmaq əvəzinə əvvəlcədən hazırlanmış və sınaqdan keçirilmiş komponentlərdən istifadə edə bilər.
Digər üstünlüklər isə bunlardır:
Framework-lərin müəyyən standartlara əsaslanması böyük layihələrdə xüsusilə faydalıdır.
Framework-lərin üstünlükləri çox olsa da, müəyyən məhdudiyyətləri də var. İlk növbədə hər framework-ün öz qaydaları və öyrənmə prosesi mövcuddur. Yeni başlayan proqramçı əvvəlcə framework-ün strukturunu və iş prinsipini başa düşməlidir. Digər tərəfdən, framework layihənin müəyyən arxitekturaya uyğun qurulmasını tələb edə bilər. Bu isə bəzi xüsusi layihələrdə proqramçının çevikliyini məhdudlaşdıra bilər. Bundan əlavə, framework-ün yeni versiyasına keçid zamanı mövcud kodda dəyişiklik etmək lazım gələ bilər. Bu səbəbdən framework seçərkən onun sənədləşdirilməsi, icması, yenilənmə tezliyi və uzunmüddətli dəstəyi də nəzərə alınmalıdır.
Bəli. Framework öyrənməzdən əvvəl onun əsaslandığı proqramlaşdırma dilinin bazasını bilmək daha doğru yanaşmadır.
Məsələn:
Django öyrənmək istəyirsinizsə, əvvəlcə Python əsaslarını;
Spring Boot öyrənmək istəyirsinizsə, Java əsaslarını;
Next.js öyrənmək istəyirsinizsə, JavaScript və React məntiqini başa düşmək faydalıdır. Framework proqramlaşdırma dilini əvəz etmir. Əksinə, həmin dil vasitəsilə proqram hazırlama prosesini daha strukturlaşdırılmış hala gətirir.
Layihə üçün framework seçərkən bir neçə amil nəzərə alınmalıdır:
Layihənin məqsədi: Sadə saytla böyük korporativ sistemin tələbləri eyni deyil.
Proqramlaşdırma dili: Komandanın hansı dili bildiyi framework seçiminə birbaşa təsir edir.
İcma və sənədləşdirmə: Geniş icmaya malik framework-lərdə problemlərin həllini tapmaq daha asan olur.
Performans: Yüksək trafik və böyük məlumat həcmləri olan sistemlərdə performans vacib amildir.
Təhlükəsizlik: Framework-ün təhlükəsizlik yeniləmələri və hazır qoruma mexanizmləri nəzərə alınmalıdır.
Uzunmüddətli dəstək: Aktiv şəkildə inkişaf etdirilməyən framework gələcəkdə layihə üçün problem yarada bilər.
Müasir proqramlaşdırmada framework-lər proqramçıların işini sürətləndirən əsas vasitələrdən biridir. Framework-ü öyrənmək yalnız onun komandalarını yadda saxlamaq demək deyil. Proqramçı framework-ün hansı problemi həll etdiyini, layihəni necə strukturlaşdırdığını və arxa planda hansı proseslərin baş verdiyini də anlamalıdır. Bu bilik xüsusilə Frontend, Backend və Full-Stack proqramlaşdırmada vacibdir.
Framework proqramlaşdırma dilidirmi?
Xeyr. Framework proqramlaşdırma dili deyil. Framework müəyyən proqramlaşdırma dili və ya texnologiya üzərində işləyən hazır struktur və alətlər toplusudur.
Python framework-dür?
Xeyr. Python proqramlaşdırma dilidir. Django və Flask isə Python ilə işləyən framework-lərə nümunədir.
Django framework-dür?
Bəli. Django Python proqramlaşdırma dili üçün yaradılmış veb framework-dür.
Spring Boot framework-dür?
Spring Boot Java ekosistemində Spring Framework əsasında tətbiqlərin daha sürətli hazırlanmasını asanlaşdıran framework və alətlər sistemidir.
React framework-dür?
React rəsmi olaraq istifadəçi interfeyslərinin yaradılması üçün JavaScript kitabxanasıdır. Next.js isə React əsasında yaradılmış veb framework-dür.
Framework olmadan proqram yazmaq mümkündürmü?
Bəli. Framework istifadə etmək məcburi deyil. Ancaq böyük və mürəkkəb layihələrdə framework layihənin strukturlaşdırılmasını və inkişaf prosesini əhəmiyyətli dərəcədə asanlaşdıra bilər.
Əgər siz də Framework-un nə olduğunu və digər proqramlaşdırma mövzularını öyrənmək istəyirsinizsə, Backend və ya Full-Stack kurslarımıza qoşulun!
https://jetacademy.az/az/tedris-saheleri/full-stack-proqramlasdirma-telimi