Freymvork

**Freymvork** (skelet, ramka, karkas, struktura) - dasturiy ta'minot tizimining tuzilishini belgilovchi dasturiy platforma; yirik dasturiy ta'minot loyihasining turli komponentlarini ishlab chiqish va birlashtirishni osonlashtiradigan dasturiy ta'minot hisoblanadi.

"Ramka" yoki "karkas" so'zi ham qoʻllanadi va ba'zi mualliflar uni asosiy so'z sifatida ishlatishadi, bu ingliz analogiga umuman asoslanmagan. Lekin asosan o'quv qo'llanmalarda "freymvork" termini to'g'ridan-to'g'ri qo'llanilib kelinmoqda. O'zbek tilida "freymvork" termini qo'llanilishi mavzuni tushunarliroq bo'lishiga yordam beradi. Har qanday dastur konfiguratsiyasi ikki qismdan tuzilgan dasturlarni yaratishga karkasli yondashuvi haqida aytish mumkin:

# Doimiy qism - konfiguratsiyadan konfiguratsiyaga o'zgarmaydigan va ikkinchi, o'zgaruvchan qism joylashtirilgan uyalarni olib yuradigan ramka yoki karkas;
# Ulanadigan modullar (yoki kengaytirish nuqtalari).

## Kutubxonadan farqi
“Freymvork” **kutubxona** tushunchasidan shunisi bilan farq qiladiki, kutubxona dasturiy mahsulotda oddiygina oʻxshash funksionallikdagi kichik dasturlar toʻplami sifatida, dasturiy mahsulot arxitekturasiga taʼsir qilmasdan va unga hech qanday cheklovlar qoʻymasdan foydalanish mumkin. "Freymvork" dastur arxitekturasini qurish qoidalarini belgilaydi, rivojlanishning dastlabki bosqichida standart xatti-harakatni o'rnatadi - belgilangan talablarga muvofiq kengaytirilishi va o'zgartirilishi kerak boʻlgan "karkas". Dasturiy ta'minot tizimi freymvorki - CMF (Content Management Framework), kutubxona uchun misol elektron pochta modulidir .

Bundan tashqari, o'xshash funksiyalar to'plamini birlashtirgan kutubxonadan farqli o'laroq, "freymvork" turli mavzulardagi ko'p sonli kutubxonalarni o'z ichiga olishi mumkin.

"Freymvork" va kutubxona o'rtasidagi asosiy farq boshqaruvning inversiyasidir : foydalanuvchi kodi kutubxona funksiyalarini (yoki sinflarini) chaqiradi va chaqiruvdan keyin boshqaruvni oladi. "Freymvork"da foydalanuvchi kodi umumiyroq - "mavhum" freymvork kodiga kiritilgan o'ziga xos xatti-harakatlarni amalga oshirishi mumkin. Bunday holda, "freymvork" foydalanuvchi kodining funksiyalarini (sinflarini) chaqiradi.

## Dasturiy ta'minot tizimi freymvorki

Bu dasturiy ta'minot tizimining (yoki ost tizimning) **freymvorkidir** . U quyidagilarni o'z ichiga olishi mumkin: yordamchi dasturlar, kod kutubxonalari, skriptlar tili va yirik dasturiy ta'minot loyihasining turli komponentlarini ishlab chiqish va integratsiyalashuvini osonlashtiradigan boshqa dasturlar . Odatda assotsiatsiya bitta API yordamida amalga oshiriladi.

**Misollar:** Zend Framework, Laravel yoki Symfony PHP freymvorklari yoki Pythonda yozilgan Django kabi veb-freymvorklarni ko'rsatish mumkin .

## Ilovalar freymvorki
"Karkasli" ilovalaridan foydalanishning asosiy afzalliklaridan biri dasturning "standart" tuzilishidir. Grafik foydalanuvchi interfeyslari paydo bo'lishi bilan "karkaslar" ommalashdi, mashhur bo'ldi. Ular yordamida ilovalar uchun standart strukturalar amalga oshirib kelindi. Ulardan foydalanish orqali grafik interfeyslarni ***avtomatik ravishda*** yaratish vositalarini yaratish ancha osonlashdi, chunki dastur kodini ichki amalga oshirish tuzilishi *oldindan ma'lum bo'ldi.* Obyektga yo'naltirilgan dasturlash usullari odatda freymvork yaratish uchun qoʻllanadi (masalan, dastur qismlari bazaviy sinflardan meros bo'lishi mumkin).

Birinchi tijorat dasturlaridan biri Apple tomonidan " Macintosh " uchun yozilgan   edi. Dastlab " Object Pascal " tilining kengaytirilgan (obyektga yo'naltirilgan) versiyasi bilan yaratilgan bo'lsa, u keyinchalik " C++ " da qayta yozildi. Boshqa mashhur "Macintosh" freymvorklariga quyidagilar kiradi:

*   и  (barchasi Carbon ga asoslanadi);
*   (NeXT dan).

Turli darajalarda dastur freymvorklari Mac OS X uchun " Kakao ", shuningdek, Mozilla, OpenOffice.org, GNOME va KDE loyihalarining bir qismi sifatida mavjud boʻlgan bepul freymvorklardir.

Microsoft " Windows " uchun Microsoft Foundation Classes (MFC) deb nomlangan shunga o'xshash mahsulotni yaratdi. Ayni paytda Microsoft-ning ushbu yo'nalishdagi dasturiy ta'minotni ishlab chiqish bo'yicha flagman mahsuloti " . NET "dir.

O'zaro platformalar uchun dastur freymvorklari (Linux, Macintosh va Windows operatsion tizimlari uchun), masalan,  , wxWidgets, Qt, . NET,   yoki FOX toolkit  .

## Freymvork konsepsiya modeli asosi
Tadqiqotda muammoni hal qilish yoki g'oyani ifodalashning mumkin boʻlgan usullarini aniqlash uchun foydalaniladigan strukturaning mavhum tushunchasi.

## Freymvorkni amalga oshirish
"Freymvork" aniq va mavhum sinflar va ularning o'zaro ta'sirining ta'riflari to'plami sifatida belgilanadi. Konkret sinflar odatda sinflar o'rtasidagi o'zaro munosabatlarni amalga oshiradi. Mavhum sinflar - bu freymvorklardan foydalanish yoki moslashtirish mumkin boʻlgan *kengaytma nuqtalari* .

*Kengaytma nuqtasi* - bu hech qanday amalga oshirilmagan ramkaning "qismi". Shunga ko'ra, kontseptual modelning freymvorkii kontseptual sinflardan, dasturiy ta'minot tizimining freymvorki esa umumiy maqsadli dasturlash tilining sinflaridan iborat .

Freymvork yaratish jarayoni muammoning vazifalari va ularni amalga oshirishning kichik qismini tanlashdir. Amalga oshirish jarayonida umumiy muammolarni hal qilish vositalari aniq sinflarga kiradi va o'zgaruvchan asboblar kengaytma nuqtalariga o'tkaziladi.

## Yana qarang

* Loyihalash shabloni
* Multimedia freymvorki
* CSS freymvork
* 

## Eslatmalar