Rámec

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 20. února 2022; kontroly vyžadují 7 úprav .

Framework (někdy framework ; anglicismus , neologismus z frameworku  - kostra , rámec, rámec, struktura) - softwarová platforma, která určuje strukturu softwarového systému; software , který usnadňuje vývoj a integraci různých součástí velkého softwarového projektu.

Používá se také slovo „framework“ a někteří autoři jej používají jako hlavní, včetně toho, že vůbec nevycházejí z anglického analogu [1] [2] [3] . O rámcovém přístupu [3] lze také mluvit jako o přístupu k vytváření programů, kde se jakákoli konfigurace programu skládá ze dvou částí:

  1. Stálá část je rám, který se nemění z konfigurace na konfiguraci a nese hnízda, ve kterých je umístěna druhá, variabilní část;
  2. Zásuvné moduly (nebo rozšiřující body).

Rozdíly oproti knihovně

"Framework" se liší od konceptu knihovny v tom, že knihovnu lze v softwarovém produktu použít jednoduše jako sadu podprogramů s podobnou funkčností, aniž by to ovlivnilo architekturu softwarového produktu a aniž by na něj byla kladena jakákoli omezení. Zatímco „rámec“ diktuje pravidla pro stavbu aplikační architektury, nastavení výchozího chování v počáteční fázi vývoje – „rámce“, které bude potřeba rozšiřovat a měnit podle zadaných požadavků. Příkladem softwarového rámce je CMF ( Content Management Framework ) a ukázkovou knihovnou je e-mailový modul .

Na rozdíl od knihovny, která kombinuje sadu podobných funkcí, může „rámec“ obsahovat velké množství knihoven různých témat.

Klíčový rozdíl mezi „rámcem“ a knihovnou je inverze kontroly : uživatelský kód volá funkce knihovny (nebo třídy) a po volání přebírá kontrolu. V „rámci“ může uživatelský kód implementovat specifické chování, které je zasazeno do obecnějšího – „abstraktního“ kódu frameworku. V tomto případě "rámec" volá funkce ( třídy ) uživatelského kódu [4] .

Rámec softwarového systému

Toto je rámec softwarového systému (nebo subsystému). Může zahrnovat: obslužné programy, knihovny kódů, skriptovací jazyk a další software , který usnadňuje vývoj a integraci různých součástí velkého softwarového projektu. Ke spojení obvykle dochází pomocí jediného API .

Příklady: webové rámce jako Zend Framework, Laravel nebo Symfony PHP frameworky nebo Django napsané v Pythonu .

Aplikační rámec

Jednou z hlavních výhod používání „wireframe“ aplikací je „standardní“ struktura aplikace. „Rámce“ se staly populární s příchodem grafických uživatelských rozhraní , která inklinovala k implementaci standardního rámce pro aplikace. S jejich použitím bylo mnohem snazší vytvářet nástroje pro automatické vytváření grafických rozhraní, protože struktura vnitřní implementace kódu aplikace byla známa předem. Techniky objektově orientovaného programování se obvykle používají k poskytování rámce (například části aplikace mohou být zděděny ze základních tříd rámce).

Jedním z prvních komerčních aplikačních frameworků byl MacApp , napsaný společností Apple pro „ Macintosh “. Původně vytvořený s rozšířenou (objektově orientovanou) verzí jazyka " Object Pascal ", byl následně přepsán do " C++ ". Mezi další populární frameworky "Macintosh" patřily:

Aplikační rámce jsou v různé míře " Cocoa " pro Mac OS X , stejně jako bezplatné rámce , které existují jako součást projektů Mozilla , OpenOffice.org , GNOME a KDE .

Microsoft vytvořil podobný produkt pro " Windows " s názvem Microsoft Foundation Classes (MFC). V současnosti je vlajkovou lodí společnosti Microsoft pro vývoj softwaru „ .NET “.

Meziplatformní aplikační frameworky (pro operační systémy Linux , Macintosh a Windows) jsou například widget toolkit , wxWidgets , Qt , .NET , MyCoRe nebo FOX toolkit .

Koncepční modelový rámec

Abstraktní pojem struktury, který se používá ve výzkumu k identifikaci možných způsobů řešení problému nebo reprezentace myšlenky.

Implementace rámce

„Rámec“ je definován jako soubor konkrétních a abstraktních tříd a definic jejich vzájemné interakce. Konkrétní třídy obvykle realizují vzájemné vztahy mezi třídami. Abstraktní třídy jsou body rozšíření , kde lze rámce použít nebo upravit.

Bod rozšíření  je ta „část“ rámce, pro kterou není uvedena žádná implementace. V souladu s tím se rámec koncepčního modelu skládá z pojmových tříd a rámec softwarového systému se skládá z tříd univerzálního programovacího jazyka.

Proces vytváření rámce spočívá ve výběru podmnožiny úloh problému a jejich implementací. V průběhu implementací jsou obecné nástroje pro řešení problémů obsaženy v konkrétních třídách a měnitelné nástroje jsou přesunuty do bodů rozšíření.

Viz také

Poznámky

  1. V. Faronov. Vytváření aplikací pomocí C#, Moskva, EKSMO, 2008, str. 12
  2. Metody a technologie reengineeringu IS. K. V. Akhtyrchenko, T. P. Sorokvasha Archivováno 3. srpna 2009 na Wayback Machine , Institute for System Programming RAS
  3. 1 2 Gorbunov-Posadov M. M. Rozšiřitelné programy . - M .: Polyptych, 1999. - 336 s. — ISBN 5-901-11801-4 . Archivováno 20. září 2012 na Wayback Machine
  4. Martin Fowler. InversionOfControl  . _ Získáno 5. listopadu 2013. Archivováno z originálu 23. ledna 2011.