Backbone.js

Backbone.js to jedna z bibliotek programistycznych, która została napisana w języku JavaScript. Głównie wykorzystywana jest do tworzenia aplikacji internetowych na pojedynczej stronie. Biblioteka Backbone.j została zbudowana z użyciem interfejsu RESTful JSON. Dodatkowo bazuje na znanym wzorcu MVC (Model-View-Controller). Backbone.js to zdecydowanie lekka biblioteka, która do działania wymaga jedynie Underscore.js – to kolejna biblioteka programistyczna, która również została napisana w języku JavaScript. Underscore.js Posiada w swoim zasobie wiele ułatwień dla programistów, które oferują prototype.js, jednocześnie nie przeciążając natywnych obiektów i łańcucha prototypu języka JavaScript.

Backbone.js to jeden z najpopularniejszych frameworków MVC wykorzystywanych obecnie. Jest on pewnego rodzaju wyznacznikiem z którym możemy porównywać konstrukcje innych bibliotek. Framework ten uważany jest za najbardziej dojrzały co oznacza, że programiści nie mają większych problemów podczas wyszukiwania informacji na temat jego działania. Backbone.js należy także do frameworków cieszących się stabilnością oraz swobodnym dostępem do dokumentacji czy wielu przykładów zastosowań. Również dużą zaletą jego jest rozmiar, który osiąga łącznie 7,28kB. Warto jednak zaznaczyć, że by w pełni móc wykorzystywać wszystkie jego możliwości, może być konieczne dołączenie do projektu innych bibliotek, przykładowo underscore.js czy jQuery.

Jest to przykład frameworku, który zostawia programistom do wyboru dwa sposoby w jakich dojdzie do implementacji bindingu danych. Zwykle w większości przypadku, znacznie lepiej jest wykonać to ręcznie jednak twórcy proponują wykorzystanie rivets.js oraz backbone.stickit. Odnośnie szablonów widoków czyli tak zwanego wstrzykiwania danych modelu do kodu HTML tak by w określony sposób wyświetlały się na ekranie, to Backbone.js zapewnia przede wszystkim wsparcie dla tekstowych szablonów. Oprócz tego jest to realizowane za pośrednictwem zewnętrznej biblioteki (może to być wspomniana wcześniej underscore.js, handlebar.js czy mustache). Składowanie danych w tym frameworku odbywa się za pomocą automatycznej synchronizacji, czyli wszystkie zmiany zachodzące w modelu automatycznie są zapisywane. Warto dodać, że w przypadku Backbone.js najpierw wysyłane jest żądanie a dopiero później dane są aktualizowane. Wprawdzie znacznie ułatwia to synchronizację tych danych jednak trzeba zwrócić uwagę na to,, że zmniejsza się wówczas responsywność naszej aplikacji i dodatkowo nie sprzyja to przy tworzeniu aplikacji mobilnych ze względu na ich założenie o pracy w trybie offline. Routing URLjest bardzo ważnym składnikiem każdego frameworka MVC, to dzięki niemu programiści mogą symulować działanie linków. Ciekawostką jest to, że w Backbone.js to rozwiązanie jest bezpośrednio wbudowane w framework. Oprócz tego posiada on ogromną ilość różnych rozszerzeń, co zdecydowanie jest jego dużym plusem. Dodatkowo na jego przydatność wpływa duża społeczność, szerokie wsparcie podczas tworzenia naszych aplikacji dzięki czemu Backbone.js jest chętnie wykorzystywany do tworzenia większych projektów.

Niekiedy dla programistów wadą tego frameworka może okazać się dość wysoki stopień skomplikowania ale także to, że Backbone.js jest zależny od zewnętrznych bibliotek. Oprócz tego dość często pojawia się problem dotyczący braku domyślnie dekleratywnych widoków, które możliwe są do zmiany jedynie za pomocą dołączenia pluginów (których za to funkcjonuje dość duża ilość).

Przykładowy kod w Backbone.js

Backbone.js Przykład #1

  var AppView = Backbone.View.extend({
    el: $('#content'),
    /** template */
    template: _.template("<h3>Hi <%= who %></h3>"),
    initialize: function(){
      this.render();
    },
    render: function(){
      /** rendering */
      this.$el.html(this.template({who: 'Wojtek!'}));
    }
  });
  var appView = new AppView();