Wybór odpowiedniego narzędzia lub technologii dla danego problemu jest jednym z najważniejszych aspektów programowania. Odpowiednie narzędzie jest kluczem do sukcesu projektu. To tutaj zawodzi większość programistów, ponieważ zwykle mają do czynienia z wieloma narzędziami. Odnosi się to do ostatecznego pytania: „czy powinieneś zbudować aplikację przy użyciu biblioteki lub frameworka?” Jest to jeden z najbardziej dyskusyjnych tematów dyskusji w społeczności programistów i często źródłem zamieszania. Mały zespół z garstką programistów, głównie dla początkujących, może lepiej pracować z frameworkiem, podczas gdy biblioteki to bloki konstrukcyjne, których można używać w dowolnym miejscu i które zapewniają większą elastyczność i kontrolę.
Kluczową różnicą między biblioteką a szkieletem jest „Inversion of Control” (IoC). Można powiedzieć, że framework jest zbiorem bibliotek, ale cała idea jest jakoś inna.
Biblioteka to zbiór funkcji wielokrotnego użytku używanych przez programy komputerowe, co oznacza zasoby, które można ponownie wykorzystać, które mogą obejmować klasy, podprogramy, wstępnie skompilowany kod, szablony komunikatów 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 fragment kodu napisany przez innych programistów, który można ponownie wykorzystać w dowolnym miejscu. Biblioteki można bezproblemowo zintegrować z istniejącymi projektami, aby zwiększyć funkcjonalność, do której można uzyskać dostęp za pomocą interfejsu API. Na początek potrzebna jest odrobina wiedzy.
Framework jest fragmentem kodu, który określa, jak projekt powinien być zorganizowany i przebiegać. Po prostu nakazuje architekturę projektu, taką jak zdefiniowanie parametrów projektowych aplikacji, dzięki czemu można skupić się na specyfice projektu, kładąc nacisk na możliwość ponownego użycia projektu, a nie na możliwość ponownego użycia kodu. W przeciwieństwie do bibliotek, kontrola jest odwrócona w przypadku ram, a kod nigdy nie wywołuje frameworka, zamiast tego ramka wzywa cię. W przeciwieństwie do bibliotek, frameworki kładą nacisk na strukturę i standardy.
W programowaniu biblioteka jest zbiorem funkcji wielokrotnego użytku - czyli zasobów, które można ponownie wykorzystać - używanych przez programy komputerowe. Zasoby, czasami nazywane modułami, są na ogół przechowywane w formacie obiektowym. Większość języków programowania ma własne biblioteki standardowe, ale programiści mogą również tworzyć własne biblioteki niestandardowe. Mówiąc najprościej, biblioteka to zestaw funkcji, które można wywoływać, podczas gdy struktura jest fragmentem kodu, który dyktuje architekturę twojego projektu. W pewien sposób splecione są ramy i języki programowania, które razem pomagają w programach komputerowych.
„Odwrócenie kontroli” jest kluczową różnicą, która oddziela szkielet od biblioteki. Biblioteka to zestaw funkcji i procedur używanych przez inne programy i masz pełną kontrolę, jeśli wywołujesz metodę z biblioteki. Jednak kontrola jest odwrócona w przypadku ram. To dyktuje strukturę twojego projektu, a kod nigdy nie wywołuje frameworka, zamiast tego wzywa cię. Mówiąc wprost, bibliotekę można po prostu traktować jako funkcję aplikacji, a szkielet jako szkielet aplikacji, w której aplikacja definiuje własne funkcje.
Biblioteki to zestaw funkcji, których można używać w dowolnym miejscu, co oznacza, że jest to po prostu fragment kodu napisany przez innych programistów, którego można ponownie użyć. Są one płynnie zintegrowane z istniejącymi projektami, aby dodać funkcjonalność, do której można uzyskać dostęp za pomocą interfejsu API. Są one najczęściej używane w przypadku często używanych modułów, ponieważ nie trzeba jawnie łączyć ich z każdym programem, który ich używa. Są 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ć używane głównie przy rozpoczynaniu nowego projektu, a nie zintegrowane z istniejącymi.
Aby lepiej zrozumieć różnicę między biblioteką a szkieletem, 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. Z kolei AngularJS jest strukturalnym szkieletem opartym na architekturze MVC używanej do tworzenia dynamicznych aplikacji internetowych. Jest w całości oparty na HTML i JavaScript i, w przeciwieństwie do jQuery, nie można go zintegrować z istniejącymi projektami, ponieważ jako struktura określa, w jaki sposób należy ustrukturyzować i uruchomić kod.
Kiedy pojawia się zamieszanie przy podejmowaniu decyzji, czy do tworzenia aplikacji należy użyć biblioteki, czy frameworka, wszystko sprowadza się do kontroli. Biblioteki to zestaw funkcji, które można wywoływać, a każde połączenie wykonuje pewne zadanie i zwraca sterowanie z powrotem. Można je bezproblemowo włączyć do istniejących projektów i na początek potrzebna jest niewielka wiedza. Z drugiej strony, frameworki określają ogólną strukturę twojego projektu i w przeciwieństwie do bibliotek, frameworki wywołują cię, a kod nigdy nie wywołuje frameworka. Kluczową różnicą jest oczywiście odwrócenie kontroli. Mówiąc prościej, biblioteki są bardziej elastyczne i mają większy stopień kontroli, podczas gdy ramy wymuszają strukturę i standardy.