Framework

Gotowy szkielet oprogramowania narzucający strukturę i dostarczający komponenty, na których buduje się aplikację. Przyspiesza tworzenie i ujednolica kod.

Framework to gotowy szkielet oprogramowania, który narzuca strukturę Twojej aplikacji i daje ci zestaw komponentów do budowania na nim. Zamiast pisać wszystko od zera — routing, obsługę żądań, połączenie z bazą, walidację — dostajesz to w pakiecie i wypełniasz przygotowane „miejsca” swoją logiką. W skrócie: framework decyduje, jak wygląda rusztowanie domu, a ty wstawiasz ściany i meble tam, gdzie przewidział architekt.

Jak to działa

Kluczowa cecha frameworka to inversion of control (odwrócenie sterowania), często opisywane zasadą „nie dzwoń do nas, my zadzwonimy do ciebie”. Przy zwykłej bibliotece to ty wywołujesz jej funkcje, kiedy chcesz. We frameworku jest odwrotnie: to on prowadzi przepływ programu i w odpowiednich momentach wywołuje twój kod. Dostajesz przygotowane miejsca do podpięcia logiki, konwencje nazewnictwa, gotowy cykl życia żądania i często mechanizmy typu dependency injection czy ORM.

Dzięki temu zespół pisze szybciej i bardziej jednolicie — każdy wie, gdzie szukać kontrolera, gdzie modelu, a gdzie konfiguracji. Mniej decyzji architektonicznych na starcie, mniej „kreatywnych” rozwiązań, które trudno później utrzymać. Cena jest taka, że godzisz się na reguły frameworka i tracisz część swobody.

Przykład z praktyki

Powiedzmy, że stawiasz API w Pythonie i wybierasz Django. Nie konfigurujesz serwera HTTP ani parsowania requestów ręcznie — odpalasz projekt jedną komendą:

django-admin startproject sklep

Dostajesz gotowy układ katalogów, system migracji bazy, panel admina i routing. Twoim zadaniem jest tylko zdefiniować modele i widoki. Podobnie działa Laravel w PHP, Spring w Javie czy React na froncie — różnią się językiem i filozofią, ale idea „szkieletu z konwencjami” jest ta sama.

Częste błędy i mity

Najczęstsza pomyłka to mylenie frameworka z biblioteką. Bibliotekę wołasz ty (np. lodash, requests), framework woła ciebie. React bywa nazywany biblioteką i jest to obronne — sam w sobie robi mniej niż pełny framework jak Angular.

Drugi mit: „framework rozwiąże wszystko”. Nie rozwiąże. Dokłada warstwę abstrakcji, którą trzeba zrozumieć, ma swoją krzywą uczenia i potrafi spowolnić, gdy walczysz z jego konwencjami zamiast iść z nurtem. Do mikronarzędzia czy prostego skryptu pełny framework to często przerost formy nad treścią. Uważaj też na ślepe wybieranie najmodniejszego — liczy się dojrzałość, dokumentacja i wsparcie społeczności, a nie liczba gwiazdek na GitHubie w tym kwartale.

Pojęcia powiązane

Warto kojarzyć: biblioteka, inversion of control, dependency injection, API, ORM, boilerplate, SDK oraz architektura MVC, na której opiera się wiele frameworków webowych.