Ponieważ wiele projektów jest do siebie podobnych i korzystają z podobnych zestawów wzorców projektowych, naturalne wydaje się opracowanie i przygotowanie takich fragmentów kodu (modułów), które spojone razem stanowią gotowy szablon projektu. Taki szablon, który niejako wymusza organizację plików, nazewnictwo a także styl pisania programu określa się mianem framework'a.

Framework poza tym, że narzuca pewne rzeczy, dostarcza podstawowe funkcjonalności i komponenty (w terminologii budowniczej byłyby to kompozyty), które programista może wykorzystać aby osiągnąć określony cel. Zazwyczaj sprowadza się to do odpowiedniej konfiguracji tych komponentów wraz z ich oprogramowaniem. Te narzędzia są mocno targetowane, czyli tworzy się je tak, aby rozwiązywały określone klasy problemów- framework do aplikacji mobilnej będzie wykorzystywać zupełnie inne techniki i wzorce projektowe niż framework do obsługi zapytań do platformy web.

Tak jak w przypadku żurawi budowlanych- istnieją różne rodzaje frameworków. Są wielkie, i ciężkie (zarówno pod względem obciążenia systemu i obsługi), wyposażone w wiele rzeczy w "standardzie" (np. Spring, Unity3D), które wykorzystuje się zazwyczaj w projektach typu enterprise a "postawienie" ich, czyli skonfigurowanie tak, aby można było cokolwiek na nich wykonać, wymaga wiele pracy i ogromnej wiedzy. Są także takie małe i lekkie, posiadające tylko zestaw niezbędnych narzędzi (np. BackboneJS), które pozwalają na zwinne adaptowanie albo osadzanie ich wewnątrz innych frameworków.

Wybór odpowiedniego frameworka ma kolosalny wpływ na cały projekt i nierzadko może decydować o jego sukcesie albo porażce. Gdy już framework zostanie wybrany i prace developerskie ruszą, zmiana frameworka w zdecydowanej większości przypadków oznacza rozpoczęcie prac od nowa. Czasami możliwe jest wykorzystanie stworzonych już fragmentów kodu i przeniesienie ich do nowego środowiska, jednak to jest niewdzięczne zadanie.

Największe wyzwanie, związane z umiejętnością wykorzystywania frameworków polega na tym, że owszem, bardzo wiele ułatwiają, jednak wymagają przede wszystkim co najmniej biegłości języka programowania, na którym się opierają, a także technologii pobocznych jak środowisko, w którym pracują, jak na przykład system operacyjny czy inne oprogramowanie, które jest wykorzystywane do ich poprawnej pracy.

Powiązane tematy

URL

URL

"W internecie jest wszystko." Do każdego zasobu jest tak samo daleko, wystarczy znać jego adres. Adres zasobu to ścieżka, która prowadzi dokładnie do tej rzeczy. W niej samej zakodowane jest sporo interesujących informacji. Czytaj całość

Aplikacje hybrydowe

Aplikacje hybrydowe

Problem pojawia się, gdy programista zaznajomiony z konkretną platformą staje przed zadaniem napisania "tego samego" na inną platformę. Wtedy jego wiedza może się okazać co najmniej niewystarczająca, a niekiedy nawet może przeszkadzać w poznawaniu nowego. Czytaj całość

Architektura projektu

Architektura projektu

Niemalże tak szybko, jak wyjdziemy z projektów typu Hello World, tak równie szybko zacznie nam doskwierać poziom skomplikowania struktury projektu. Trzeba sobie z tym poradzić i jest na to masa sposobów. Czytaj całość


Piotr Poźniak

Piotr Poźniak

Programuję od ponad 15 lat. Prowadzę software house. Angażuję i zachęcam wszystkich do programowania w ramach inicjatywy Programowanie jest łatwe.

Bądź pierwszy, podziel się swoją opinią!

Obrazek przedstawiający nadgryzione ciasteczko