search check home clock-o tag tags chevron-left chevron-right chevron-up chevron-down twitter facebook github rss comment comments terminal code

[JS] Tworzymy aplikację JS z wykorzystaniem Backbone.js, część 1 – Zapoznanie z frameworkiem

[JS] Tworzymy aplikację JS z wykorzystaniem Backbone.js, część 1 – Zapoznanie z frameworkiem

Dzisiejszy wpis będzie początkiem serii wpisów dotyczących tworzenia aplikacji internetowych z wykorzystaniem języka JavaScript. Celem serii będzie zapoznanie się z frameworkiem Backbone.js a także zapoznanie się z metodologią tworzenia aplikacji webowych.

Aplikacja, którą będziemy tworzyć, będzie miała na celu agregowanie informacji z różnych sieci społecznościowych takich jak Twitter i Facebook, a także pomoże nam w zamieszczaniu informacji na swoich profilach użytkownika w tychże sieciach.

Czym jest Backbone.js?

Backbone.js jest to framework MV*, który zapewnia tak zwane "jądro aplikacji", czyli:

  • obsługę modeli,
  • obsługę kolekcji modeli,
  • obsługę zdarzeń,
  • obsługę widoków,
  • obsługę routingu.

Zapewnia tylko tyle i aż tyle. Na bazie takiego frameworka jesteśmy w stanie utworzyć aplikację internetową wg własnego pomysłu i z własnoręcznie zaprojektowanymi funkcjonalnościami. Nie jesteśmy w zasadzie ograniczeni niczego innego poza szkieletem aplikacji opierającym się na 3-ch najważniejszych rzeczach: modelach, kolekcjach i widokach.

Modele są kontenerami pojedynczej jednostki informacyjnej, np. newsa czy też osoby. Można je tworzyć, walidować (sprawdzać poprawność ich danych), usuwać i zapisywać na serwerze pełniącym rolę bazę danych.
Kolekcje są zbiorami modeli, czyli na przykład kategorią newsów czy też zbiorem osób o określonych umiejętnościach.
Natomiast, widoki są formą prezentacyjną obecnego stanu modeli, to za ich pomocą użytkownik jest w stanie zobaczyć jakie dane zawiera model, a także wykonać na nich różnego rodzaju widoczne operacje.

Backbone.js jest to projekt o otwartym kodzie źródłowym i można go pobrać bezpośrednio z Githuba (gdzie można w razie chęci wspomóc autorów projektu przy rozwoju nowych funkcjonalności frameworka).

Backbone.js i jego kompania

Framework Backbone.js nie byłby tak bardzo funkcjonalny, gdyby nie jego integracja z bibliotekami jQuery/Zepto oraz Underscore.js/lodash.js. To dzięki nim, wiele operacji zostało uproszczonych lub znacznie przyspieszonych. Wykorzystując fakt popularności biblioteki jQuery, autorzy nie muszą się martwić o jej brak, ponieważ znajduje się ona w ogromnej ilości stron internetowych czy aplikacji internetowych.

Generalnie, biblioteka jQuery lub Zepto przydaje się głównie do manipulacji na obiekcie DOM, przy zarządzaniu zdarzeniami oraz przy obsłudze żądań AJAX.
Natomiast, biblioteki Underscore.js lub lodash.js są to zestawy narzędzi, które pozwalają na bardzo szybkie operacje na obiektach, tablicach, łańcuchach znaków czy też do tworzenia dynamicznie reagujących na zmiany widoków.

Backbone.js a inne frameworki

Oprócz Backbone.js istnieje całe mnóstwo różnych frameworków JavaScriptowych. Ich cele i sposoby wykorzystania są różne. Bezpośrednimi konkurentami Backbone.js są Ember.js oraz rosnące w siłę Angular.js. Spośród tych 3-ch wymienionych frameworków, to właśnie Backbone.js jest tym, który zapewnia sam szkielet aplikacji i nie robi narzutu na sposób pisania kodu JS, tak jak to ma miejsce w innych frameworkach.

Nie da się powiedzieć, będąc 100% pewnym, który framework jest lepszy. Każdy ma swoje zalety i wady, ale to nie to jest tematem tego wpisu. Uważam, że Backbone.js zapewnia odpowiednią funkcjonalność, odpowiednią przejrzystość kodu oraz jest odpowiednio prosty w wykorzystaniu na co dzień.

Podsumowanie

Pierwszy wpis zawiera trochę teorii i jest wstępem do fazy tworzenia kodu aplikacji. Starałem się wyjaśnić czym jest Backbone.js a także dlaczego to on został wybrany.
Spodziewam się różnych opinii odnośnie wybranego zestawu narzędzi, jak wiadomo skoro jest wiele opcji wyboru, to każda z tych opcji ma swoich zwolenników jak i przeciwników.

Kolejne części wpisów będą się pojawiać w nadchodzących tygodniach. Postaram się, aby to było przynajmniej raz w tygodniu.

Inne części z serii:

  1. Część 2 - Tworzymy aplikację JS z wykorzystaniem Backbone.js – Integracja z Twitterem
  2. Część 3 - Tworzymy aplikację JS z wykorzystaniem Backbone.js – Integracja z Facebookiem
  3. Część 4 - Tworzymy aplikację JS z wykorzystaniem Backbone.js – wysyłanie wiadomości
  • Comandeer

    Trochę minąłeś się z trendami, bo teraz kręgosłup już niemodny i wszyscy pisują o Angular.js 😉
    Osobiście jakoś nigdy nie przekonałem się do Backbone – bardziej po drodze, jak już, to było mi właśnie do rozwiązań pokroju Angulara. Obecnie dość ciekawie wygląda dla mnie React od Facebooka.
    Nie ukrywam, że i tak najbardziej rajcuje mnie wizja mojego własnego autorskiego MVC 😉 chociaż przy ładnym podziale kodu na sensowne moduły może się okazać, że wcale MV* nie potrzebujemy a stare, dobre jQ jako helper DOM-owy + vanilla JS ze wsparciem ze strony modułów AMD/Common.js pozwoli nam uzyskać zadowalający efekt (ale lepiej już milknę, bo to raczej dość niepopularny pogląd obecnie ;)).
    dość ciekawą wizją są frameworki działające równolegle na serwerze i kliencie. nie muszę chyba ukrywać jak wielkie możliwości nam to daje. no i nie jest to aż tak bardzo obecnie skomplikowane, dzięki choćby możliwości zastosowania WebSockets. chyba najlepszym przykładem takiego narzędzia jest obecnie meteor
    pomyśleć, że kiedyś w JS był tylko Prototype, Dojo i jQuery. a dziś de facto główne narzędzia webmastera są skrobnięte w tym języku (grunt, bower – wszystko stoi na node.js). nic zatem dziwnego, że pojawiają się setki frameworków MV*. byłoby dziwne, gdyby było ich mniej dla najpopularniejszego języka programowania na świecie 😉

  • W życiu nie zawsze chodzi o to by iść zgodnie z trendem, tylko zgodnie z potrzebami. Prawda jest taka, że prawdopodobnie to Angular.js będzie już niemodny (nie można tego wykluczyć).
    Tak poza tym, ostatnio mam wrażenie, że wszystkie moje ostatnie wpisy na blogu są swego rodzaju dyskusją pomiędzy mną a Tobą, Comandeer 😉

  • Comandeer

    Mam nadzieję, że nie przeszkadza Ci to jakoś specjalnie 😉

  • Zawsze warto poznać opinię drugiej osoby, tym bardziej jeśli jest ona konkretna.

  • To czekam na kontynuację. Nigdy jakoś nie było mi po drodze z backbone, ale chętnie się zapoznam;-)

  • Łukasz

    Dołączam się 🙂