🔄 Losowy artykuł
Szlaki górskie Pociągiem dookoła Polski Podróże kulinarne Hotele-unikaty świata Parkingi przy lotniskach Łowiska Europy Campingi dla kamperów Imprezy — atrakcje w Polsce Poradnik pilota drona Wydarzenia i bilety Promocje bankowe Kamery na żywo Oferty Centrum Podróży Koliber Triper.pl Trip.FazaFM.com — plany podróży

Framework

Framework albo platforma programistyczna – szkielet do budowy aplikacji. Definiuje on strukturę aplikacji oraz ogólny mechanizm jej działania, a także dostarcza zestaw komponentów i bibliotek ogólnego przeznaczenia do wykonywania określonych zadań. Programista tworzy aplikację, rozbudowując i dostosowując poszczególne komponenty do wymagań realizowanego projektu, tworząc w ten sposób gotową aplikację.

Frameworki bywają nieściśle zaliczane do bibliotek programistycznych. Typowe cechy, które każą wyróżniać je jako samodzielną kategorię oprogramowania, to:

  • odwrócenie sterowania – w odróżnieniu od aplikacji oraz bibliotek, przepływ sterowania jest narzucany przez framework, a nie przez użytkownika[1][2].
  • domyślne zachowanie – domyślna konfiguracja frameworka musi być użyteczna i dawać sensowny wynik, zamiast być zbiorem pustych operacji do nadpisania przez programistę[1].
  • rozszerzalność – poszczególne komponenty frameworka powinny być rozszerzalne przez programistę, jeśli ten chce rozbudować je o niezbędne mu dodatkowe funkcje.
  • zamknięta struktura wewnętrzna – programista może rozbudowywać framework, ale nie poprzez modyfikację domyślnego kodu.

Architektura

Według Pree[3] framework składa się z zamrożonych i gorących punktów. Zimne punkty definiują ogólną architekturę konkretnego typu oprogramowania, tj. zestaw podstawowych komponentów oraz zależności między nimi. Pozostają one niezmienne (zamrożone) we wszystkich aplikacjach zbudowanych w oparciu o konkretny framework. Gorące punkty reprezentują te części, które programista rozszerza, dodając własne cechy specyficzne dla konkretnego projektu.

Zgodnie z zasadą odwrócenia sterowania, to gorące punkty osadzone są we frameworku, a nie na odwrót. Wykorzystywana jest tutaj tzw. „reguła Hollywood”: nie dzwoń do nas, my zadzwonimy do Ciebie[4]. Klasy i komponenty użytkownika otrzymują sygnały od frameworka, który zarządza wykonywaniem aplikacji.

Zalety i wady

Zalety[1]:

  • efektywność – tworzenie aplikacji z wykorzystaniem frameworków wymaga od programisty mniejszej ilości kodu do napisania,
  • poprawa jakości kodu – ponieważ frameworki są projektowane z myślą o elastyczności, mają one dobrą wewnętrzną organizację i logikę, którą narzucają aplikacji,
  • niezawodność – frameworki jako szkielety aplikacji są dobrze zaprojektowane i przetestowane.

Wady[1]:

  • złożoność – ze względu na swoją elastyczność oraz wykorzystywanie zaawansowanych koncepcji, opanowanie frameworków nie jest łatwe,
  • wydajność – często ceną za elastyczną budowę jest niższa wydajność tworzonego oprogramowania.

Zastosowania

Frameworki są stosowane zarówno jako szkielety kompletnych aplikacji, jak i pojedynczych komponentów. Obszary zastosowań frameworków:

Zobacz też

Przypisy

  1. ↑ a b c d Rebecca Wirfs-Brock, Alan McKean: Object design: roles, responsibilities, and collaborations. Addison-Wesley, 2002, s. 27. ISBN 978-0201379433. (ang.).
  2. ↑ Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku. Helion, 2010, s. 40. ISBN 978-83-246-2662-5.
  3. ↑ W Pree. Meta Patterns-A Means For Capturing the Essentials of Reusable Object-Oriented Design. „Proceedings of the 8th European Conference on Object-Oriented Programming”, s. 150-167, 1994. 
  4. ↑ Craig Larman: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. Prentice Hall, 2001. ISBN 0-13-092569-1. (ang.).
  5. ↑ Johnson, R E, McConnell, C, Lake, M J, Giegerich, R i inni. The RTL system: a framework for code optimization. „Proceedings of the International workshop on code generation”, s. 255-274. Springer-Verlag. 
  6. ↑ Birrer, A, Eggenschwiler, T: Frameworks in the financial engineering domain: an experience report. Springer-Verlag, 1993, s. 21-35.
  7. ↑ Hill, C, DeLuca, C, Balaji, V, Suarez, M i inni. Architecture of the Earth System Modeling Framework (ESMF). „Computing in Science and Engineering”, s. 18-27, 2004. 
  8. ↑ Gachet, A. Software Frameworks for Developing Decision Support Systems – A New Component in the Classification of DSS Development Tools. „Journal of Decision Systems”. 12 (3), s. 271-281, 2003. 
ℹ Źródło: artykuł „Framework” w polskiej Wikipedii. Treść dostępna na licencji CC BY-SA 4.0; lista autorów w historii edycji. Wersja może się różnić od aktualnej na Wikipedii (kopia odświeżana okresowo).
💳 Revolut
Karta wielowalutowa do podróży — płacisz za granicą bez przewalutowań.
Odbierz kartę →
💰 ZEN.COM
Konta multiwalutowe i karty — płatności bez granic z poziomu aplikacji.
Sprawdź ZEN →
🌍 Wise
Przelewy za granicę po realnym kursie — bez ukrytych marż.
Wypróbuj Wise →
Linki polecające — obowiązują regulaminy usług.
FazaFM.com — radio i newsy Hrubek.pl — Hrubieszów blisko Ciebie Gorzkie Groszki — blog