Framework – co to jest i do czego służy?

W najprostszym ujęciu framework to fundament, na którym buduje się aplikacje webowe, ale też zwykłe – okienkowe, czy też konsolowe. Każdy framework powinien dostarczać niezbędne do działania aplikacji biblioteki (bez potrzeby ręcznego dodawania jak to ma czasami miejsce), a czasem nawet pełne moduły, które są gotowe do użycia bez dodatkowej pracy programisty.

Odpowiadając na zawarte w tytule pytanie: do czego służy framework? Dostarcza programiście pewne gotowe rozwiązanie, które może dostosowywać i rozwijać zgodnie z potrzebami np. zgodne z dokumentacją projektową, czy też innymi potrzebami. Przykładem może być framework upraszczający budowanie typowej aplikacji w architekturze klient serwer. Framework może zapewnić niezbędne elementy takie jak dostarczony serwer TomEE oraz potrzebne biblioteki bez potrzeby szukania ich osobno.

Framework znaczenie

Tłumaczenie słowa framework na polski to po prostu struktura, szkielet.

Patrząc na inne znaczenie – w wielu ofertach pracy podane są frameworki, których znajomość jest wymagana lub przynajmniej mile widziana. W związku z tym warto znać ich jak najwięcej, aby poprawić swoje CV.

Zalety i wady używania frameworków

Możliwość wykorzystania gotowego, sprawdzonego wzorca. Nie ma więc potrzeby, aby wyważać otwarte drzwi, tylko użyć framework, który został w tym celu opracowany. Dzięki temu można zaoszczędzić dużo czasu na implementacje rzeczy, które już istnieją, a co za tym idzie równie pieniędzy.

Dobra organizacja struktur oraz działania. Framework, który chcemy wykorzystać rozwija wielu programistów. W związku z tym jest on dobrze przemyślany, a kod jest dobrej jakości. Dzięki temu również bezpieczeństwo rozwiązań jest większe, gdyż ewentualne podatności mogą być szybciej wykryte i załatane przez programistów.

Wadą używania frameworków jest potrzeba ich dokładnego poznania oraz opanowania zasad, którymi się rządzą.

Framework a biblioteka

Oba pojęcia często są ze sobą mylone. Jednakże granice między tymi pojęciami są ostre tylko trzeba dobrze zrozumieć ich znaczenie.

Biblioteka to zbiór różnych funkcjonalności, programów, typów danych a nawet API ułatwiających rozwiązanie konkretnego problemu. Programista wykorzystując bibliotekę w swoim kodzie źródłowym może wykorzystać jakieś rozwiązanie zaproponowane przez kogoś innego. Języki programowania zawierają podstawowe lub często wykorzystywane struktury w tzw. Bibliotece standardowej. Przykładem takiej biblioteki jest klasa String w Javie. Zawiera mnóstwo przydatnych metod do pracy na łańcuchami znakowymi. Przykładem zewnętrznej biblioteki może być biblioteka do obsługi formatu JSON, która zawiera metodę parsowania dokumentu oraz tworzenia go. Zatem przedstawiając to bardziej prozaicznie – piszemy własny kod, a do biblioteki (np. metody klasy) odwołujemy się wyłącznie wtedy, gdy jest akurat potrzebna.

Framework tak jak pisaliśmy wcześniej to szkielet gotowej aplikacji, którą trzeba dostosować do własnych potrzeb. Większość kodu jest zatem napisana przez twórców frameworka, a programista tak naprawdę dba o to, żeby odpowiednio zaimplementować logikę biznesową aplikacji lub dodatkowe funkcjonalności. Pozwala to zaoszczędzić czas potrzebny normalnie na opracowanie rozwiązań, które robi za nas framework, a są potrzebne do prawidłowego działania aplikacji. Jest to bardzo wygodne podejście w przypadku bardziej skomplikowanych rozwiązań jak np. aplikacje webowe.

Czego zatem używać? Odpowiedź należy do twórcy aplikacji. Jednakże w dużym skrócie, gdy aplikacja jest dość prosty, to użycie frameworka wydaje się być niepotrzebnym skomplikowaniem projektu oraz może wpłynąć negatywnie na wydajność. Jednakże przy aplikacjach o dużym skomplikowaniu użycie frameworka pozwoli zaoszczędzić dużo czasu.

Jaki Framework do Javy? Przykłady

Java jest bardzo rozwiniętym językiem programowania w związku z tym jest wykorzystywana w wielu poważnych projektach korporacyjnych, finansowych, bankowych. W związku z tym powstało do niej wiele frameworków, które upraszają pracę programistom. Poniżej przyjrzymy się różnym propozycjom.

Spring

To najbardziej rozpoznawalny framework do Javy. Pozwala on budować aplikacje Pierwsze jego wydanie miało miejsce w 2002 roku. Niewątpliwą zaletą Springa jest dobra dokumentacja oraz ogromna społeczność, którą udało mi się zgromadzić na przestrzeni lat. A to z kolei oznacza szansę na ewentualną pomoc na specjalizowanym forum.

Spring posiada wiele przydatnych modułów, które można ze sobą łączyć. Wśród nich są moduły:

  • aplikacji webowych,
  • dostępu do baz danych,
  • do mikroserwisów,
  • bezpieczeństwa.
  • …i wiele innych przydatnych dodatków.

Spring umożliwia użycie biblioteki React z JavaScript, która służy do tworzenia graficznych interfejsów użytkownika w aplikacjach webowych.

Hibernate

Hibernate to framework, który ułatwia tworzenie warstw dostępu do baz danych poprzez rzutowanie obiektów Javy do relacyjnych baz danych, takich jak Oracle, MySQL, SQL Server, PostgreSQL itd. Zastosowanie Hibernate jest wygodne, gdy aplikacja zmieni bazę danych i będzie przechowywać je w innej. Co się może wówczas stać? Polecenia SQL mogą przestać działać i trzeba by je napisać na nowo. Framework Hibernate ułatwi rozwiązanie tego problemu.

JSF

Technologia działająca po stronie serwera, która pomaga tworzyć aplikacje internetowe oparte na Javie. JSF jest frameworkiem znacznie ułatwiającym tworzenie interfejsu użytkownika przez dostarczenie wielu gotowych, opracowanych wcześniej komponentów oraz specyfikacji. Przykładem może być połączenie interfejsu z obsługą zdarzeń, walidacją danych. Więcej o Jakarta Server Faces.

Framework backend frontend

Frameworki możemy podzielić również na te, które pomogą zbudować tzw. Backend aplikacji webowej oraz frontend.

Frameworki backendowe to moduły działające po stronie serwera, które ułatwiają tworzenie dynamicznych aplikacji webowych oraz całego zaplecza aplikacji.

Frameworki frontendowe to moduły działające po stronie klienta, które umożliwiają tworzenie interfejsu użytkownika, który ma ogromny wpływ na odbiór aplikacji.