backbone.js z czym to się je?

0

Witam wszystkich,
ostatnio odkryłem backbone.js i pisze do was, ponieważ nie jestem przekonany czy dobrze rozumiem działanie tej biblioteki.

  1. Czy tutaj chodzi o tworzenie stron całkowicie w js?
  2. Jak bardzo przyspiesza to działanie strony?
  3. Czy w ten sposób można tworzyć "wielkie serwisy" np.: katalog, forum itp?
  4. Czy pisanie w całości w js nie spowoduje ułatwienie włamywania się na strony?

Pozdrawiam

2

Źle to rozumiesz (osobiście nigdy nie pracowałem z Backbone, ale z czymś "bardziej", czyli Angularem). To jest wzorzec MVVM (Model-View-ViewModel), który zakłada 3 warstwy:

  • model dostarczający dane (w tym przypadku jest to część strony działająca po stronie serwera)
  • nieaktywny widok, który opisuje jak wyświetlać dane w dość obszerny sposób
  • ViewModel, który zajmuje się spinaniem obu tych rzeczy oraz odpowiednim ich przygotowaniem do wyświetlenia

Dzięki takiemu podziałowi pracy designer nie musi tak ściśle współpracować z front-end developerem, gdyż całe wyświetlanie należy tylko do widoku, który jest dodatkowo nieaktywny. Dodatkowo podmiana backendu jest bezbolesna, gdyż jedyne co jest wymagane by zachować kompatybilność to utrzymać stałe REST API. Nie trzeba przepisywać widoków jak często bywa przy przechodzeniu z języka A do języka B (co często implikuje zmianę języka szablonów). Poza tym praktycznie całe FE możesz wtedy trzymać w CDNie i odciążyć serwer, który w takim wypadku będzie mógł obsłużyć większą liczbę użytkowników przy tych samych parametrach pracy.

Co do bezpieczeństwa, to jeśli masz już dobrze zaprojektowane API aplikacji, to nie ma najmniejszego problemu z bezpieczeństwem. Ty nie zrzucasz całej odpowiedzialności na JSa tylko dajesz tam tą część, którą musiał by normalnie wykonać serwer, czyli np. wstępną walidację formularza i wyświetlenie użytkownikowi informacji, że formularz jest niepoprawny nawet bez przeładowania strony. Oczywiście back-end powinien też sprawdzić poprawność danych, bo wprawny napastnik będzie potrafił zmienić dane zapytania zmienić jeszcze przed ich wysłaniem.

Oczywiście, że można w ten sposób tworzyć duże serwisy. Nie wiem z jakiego frameworka (o ile nie autorskiego) korzystają takie aplikacje internetowe (a przynajmniej tak mi się zdaje):

  • GMail
  • Google
  • Google+
  • Twitter
  • Facebook
  • GitHub

Oczywiście przykłady możesz też znaleźć na stronach danych frameworków:

Osobiście pracowałem tylko z Angularem, pozostałych nie znam, ale może kiedyś jak będę miał okazję.

0

Dziękuję za wyjaśnienie. Jedyne czego nie rozumiem to CDN?

0

Tylko pamiętaj, że takie podejście ma też wady. Jeśli cała treść będzie wyświetlana przy pomocy JS to crawler nie będzie miał możliwości zaindeksowania treści twojej witryny przez co będzie słabo z pozycjonowaniem takiej strony. Dlatego to podejście nadaje się do aplikacji internetowych a nie witryn.

0

Jeszcze raz bardzo dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0