Wybór odpowiedniego narzędzia lub technologii do danego problemu jest jednym z najważniejszych aspektów programowania. Odpowiednie narzędzie jest kluczem do sukcesu projektu. W tym miejscu większość programistów ponosi porażkę, ponieważ zazwyczaj mają do czynienia z wieloma narzędziami. Odnosi się to do ostatecznego pytania „czy powinieneś zbudować swoją aplikację za pomocą biblioteki lub frameworka?”. Jest to jeden z najbardziej dyskusyjnych tematów dyskusji w społeczności programistów i często źródło zamieszania. Mały zespół z garstką programistów, w większości początkujących, może lepiej pracować z frameworkiem, podczas gdy biblioteki są blokami konstrukcyjnymi, które mogą być używane wszędzie i pozwalają na większą elastyczność i kontrolę.

Kluczową różnicą pomiędzy biblioteką a frameworkiem jest „Inversion of Control” (IoC). Można powiedzieć, że framework to zbiór bibliotek, ale cała idea jest jakoś inna.

Co to jest biblioteka?

Biblioteka jest zbiorem funkcji wielokrotnego użytku używanych przez programy komputerowe, co oznacza zasoby, które można ponownie wykorzystać, które mogą obejmować klasy, podprogramy, prekompilowany kod, szablony wiadomości itp. Większość języków programowania ma swoje własne standardowe biblioteki, ale programiści mogą również tworzyć własne biblioteki niestandardowe. Jest to po prostu kawałek kodu napisany przez innych programistów, który może być ponownie wykorzystany w dowolnym miejscu. Biblioteki mogą być bezproblemowo włączone do istniejących projektów, aby dodać funkcjonalność, do której można uzyskać dalszy dostęp za pomocą interfejsu API. Aby zacząć, wymagana jest niewielka wiedza.

Co to jest Framework?

Framework to kawałek kodu, który dyktuje jak projekt powinien być skonstruowany i uruchomiony. Po prostu nakazuje architekturę twojego projektu, tak jak definiowanie parametrów projektowych aplikacji, dzięki czemu możesz skupić się na specyfice projektu, tym samym kładąc nacisk na możliwość ponownego wykorzystania projektu, a nie ponownego wykorzystania kodu. W przeciwieństwie do bibliotek, kontrola jest odwrócona w przypadku frameworków, a kod nigdy nie dzwoni do frameworka, zamiast tego, frameworek dzwoni do Ciebie. W przeciwieństwie do bibliotek, frameworki kładą nacisk na strukturę i standardy.

Różnica między biblioteką a frameworkiem

Znaczenie

W programowaniu biblioteka to zbiór funkcji wielokrotnego użytku – czyli zasobów, które można ponownie wykorzystać – używanych przez programy komputerowe. Zasoby, zwane czasem modułami, są zazwyczaj przechowywane w formacie obiektowym. Większość języków programowania ma swoje standardowe biblioteki, ale programiści mogą również tworzyć własne biblioteki niestandardowe. W uproszczeniu biblioteka to zestaw funkcji, które można wywołać, natomiast framework to fragment kodu, który dyktuje architekturę projektu. W pewnym sensie, frameworki i języki programowania są ze sobą powiązane, które razem pomagają w tworzeniu programów komputerowych.

Odwrócenie kontroli

„Inversion of Control” to kluczowa różnica, która oddziela framework od biblioteki. Biblioteka jest zbiorem funkcji i procedur używanych przez inne programy i masz nad nią pełną kontrolę, gdy wywołujesz metodę z biblioteki. Jednak w przypadku frameworka kontrola jest odwrócona. Dyktuje on strukturę twojego projektu, a kod nigdy nie odwołuje się do frameworka, zamiast tego wywołuje ciebie. Mówiąc prościej, możesz po prostu myśleć o bibliotece jako funkcji aplikacji, a o frameworku jako szkielecie aplikacji, w którym aplikacja definiuje swoje własne cechy.

Funkcja

Biblioteki to zestaw funkcji, które mogą być używane wszędzie, co oznacza, że jest to po prostu kawałek kodu napisany przez innych programistów, który może być ponownie wykorzystany. Są one włączone bezproblemowo do istniejących projektów, aby dodać funkcjonalność, do której można uzyskać dostęp za pomocą interfejsu API. Są one najczęściej używane dla często używanych modułów, ponieważ nie trzeba ich jawnie łączyć z każdym programem, który ich używa. Są one ważne w procesie łączenia i wiązania programów. Z drugiej strony, frameworki zapewniają standardowy sposób budowania i wdrażania aplikacji i mogą być głównie używane podczas rozpoczynania nowego projektu, a nie integrowane z istniejącymi projektami.



Przykład

Aby lepiej zrozumieć różnicę między biblioteką a frameworkiem, spójrzmy na jQuery i AngularJS. jQuery to wieloplatformowa biblioteka JavaScript, która upraszcza manipulację DOM wraz z wieloma innymi skomplikowanymi rzeczami, takimi jak manipulacja CSS, metody zdarzeń HTML, wywołania AJAX itp. Celem jQuery jest uproszczenie korzystania z JavaScript na twojej stronie internetowej. AngularJS, z drugiej strony, to framework strukturalny oparty na architekturze MVC używany do tworzenia dynamicznych aplikacji internetowych. Jest całkowicie oparty na HTML i JavaScript i w przeciwieństwie do jQuery nie można go zintegrować z istniejącymi projektami, ponieważ jako framework dyktuje, jak twój kod ma być skonstruowany i uruchomiony.

Podsumowanie biblioteki vs. framework

Kiedy pojawia się zamieszanie związane z podjęciem decyzji, czy powinieneś używać biblioteki czy frameworka do budowy aplikacji, wszystko sprowadza się do kontroli. Biblioteki to zestaw funkcji, które można wywołać, a każde wywołanie wykonuje jakieś zadanie i zwraca użytkownikowi kontrolę. Można je bezproblemowo włączyć do istniejących projektów, a do rozpoczęcia pracy wymagana jest niewielka wiedza. Ramy, z drugiej strony, dyktują ogólną strukturę twojego projektu i w przeciwieństwie do bibliotek, ramy wywołują cię, a kod nigdy nie wywołuje się do ramy. Kluczową różnicą jest oczywiście Inversion of Control. W prostych słowach, biblioteki są bardziej elastyczne z większym stopniem kontroli, podczas gdy frameworki wymuszają strukturę i standardy.