2012-11-02 11 views
8

Jestem nowy w backbone.js i pracuję nad niektórymi samouczkami. Znalazłem parę, która wydaje się dobra, ale są pewne niespójności w ich implementacji, więc szukam wskazówek dotyczących najlepszych praktyk.backbone.js noob zdezorientowany przez sprzeczne samouczki

Oto tutoriale uczę od:

Moje pytania to:

  1. Pierwszy tut korzysta z Backbone.Controller ale nie Backbone.Collection. Drugi robi coś przeciwnego. Jaka jest najlepsza praktyka dla "C" w spinaniu kręgów na MVC?
  2. Pierwszy tut definiuje adresy URL w Modelu, a drugi definiuje go w Kolekcji. Która jest lepszą praktyką?
  3. Drugi tut korzysta z Backbone.Router, podczas gdy pierwszy nie. Która z najlepszych praktyk?

Alternatywnie, jeśli ktoś może zaproponować lepszy tutorial wprowadzający, który będzie zgodny z najlepszymi praktykami, chętnie się z tego dowiem. Niestety, z powodu niespójności między tymi dwoma, jestem zaniepokojony, że mogę się nauczyć pewnych złych nawyków poza bramą.

Z góry dziękuję.

Odpowiedz

3

Backbone.Controller był renamed to Backbone.Router w zeszłym roku. Chyba czytałeś stary tutorial.

BackboneTutorials.com to przyzwoity samouczek do rozpoczęcia pracy.

Stwórz małą aplikację, gdy się jej nauczysz, a dowiesz się, co robi dla Ciebie Backbone.

Najlepszym sposobem uczenia się kręgosłupa jest przejście przez annotated source code. Każda linia jest komentowana i wyjaśniana.

Użyj wersji dev version zamiast wersji zminimalizowanej podczas tworzenia aplikacji. Pomaga to w debugowaniu.

Jeśli czytasz książki, sprawdź Addy Osmani's Backbone Fundamentals, darmowy e-book. Książka jest niesamowita, ale dość gadatliwa. Możesz go użyć jako odniesienia.

Zobacz this question na Quora dla ostatecznej listy zasobów;

Nie przejmuj się zbytnio tym, co jest "V", a co "C", a spin kręgosłupa na MVC. Framework doskonale radzi sobie z oddzielaniem kodu, który współdziała z serwerem i kodu, który wykonuje główną logikę klienta. Templacja i aktualizacja elementów DOM pozostawiamy Tobie. W tym sensie jest to dość minimalistyczne. Szkielet zapewnia Events, które sprawiają, że różne części wchodzą ze sobą w interakcje.

+1

Nie wiedziałem, że kontroler został przemianowany na router, więc powinna to być czerwona flaga podczas przeglądania samouczka, który jest nieaktualny. Dzięki za wytłumaczenie. –

1

To jest dobre pytanie. Chociaż Backbone nie zajmuje stanowiska w sprawie organizacji kodu.

Prawdziwa odpowiedź brzmi: to zależy.

To zależy od potrzeb aplikacji i sposobu programowania.

Jeśli chcesz przegląd niektórych najlepszych praktyk, chciałbym odnieść się do projektu Backbone boilerplate: https://github.com/tbranyen/backbone-boilerplate

Ten projekt jest bardzo solidna, a naprawdę mi pomógł przy uruchamianiu.

Następnie, aby odpowiedzieć na Twoje pytanie (może czuć opiniated, i to jest rzeczywiście):

: Kręgosłup jest głównie MV * ramy (Model-View-cokolwiek). Logika kontrolera przeważnie żyje w widoku kręgosłupa, a to jest w porządku dla front-endowego rozwoju, ponieważ logika często jest naprawdę związana z interfejsem użytkownika (ponieważ w większości jesteśmy interfejsami kodującymi). Backbone nie jest wbudowany w kontroler, ale jeśli wolisz tego typu organizację, po prostu buduj własne.

: Adresy URL zależą od potrzeb. Jeśli chcesz pobrać pełną kolekcję, ustaw ją w kolekcji, jeśli pobierasz (lub prawdopodobnie zapisujesz) jeden model, ustaw go na modelu. Te też dobrze żyją razem.

: O Ruterze, jeśli budujesz wiele stron/sekcji w swojej aplikacji, użyj ich. Ale uważaj, aby nie używać routes jako action, tak jak w przypadku RESTful API, to przez większość czasu będzie to powodować problem (przycisk powrotu użytkownika itp.). Tak więc użyj tras, jeśli chcesz zarządzać stronami.

Mam nadzieję, że ta pomoc !!

1

odpowiem z doświadczenia:

Q: Drugi nie odwrotnie. Jaka jest najlepsza praktyka dla "C" w spinaniu kręgów na MVC?

A: Nie ma Controller w bieżącym Backbone http://backbonejs.org/ - "C" dzieje się zarówno w świetle (najczęściej) lub w routerze (patrz niżej).

P: Pierwszy tut definiuje adresy URL w Modelu, a drugi definiuje go w Kolekcji. Która jest lepszą praktyką?

A: Istnieją przypadki, gdy nie potrzebujesz kolekcji. W przypadku, gdy tego nie zrobisz, twój model bezwzględnie potrzebuje adresu URL. Jeśli masz kolekcję, adres URL określony dla kolekcji zostanie zastosowany do jej modeli.

P: Drugi tut korzysta z Backbone.Router, podczas gdy pierwszy nie. Która z najlepszych praktyk?

A: Zasada - chcesz użyć routera w 2 przypadkach: 1) gdy chcesz mieć historię i 2), gdy chcesz mieć permalinks. W przeciwnym razie nie potrzebujesz routera.