2011-10-06 13 views
21

Czekam na rozliczenie z mojego zestawu narzędzi JS. Z pewnych przyczyn związanych z produktem dojo będzie. Teraz zastanawiam się, czy dodanie backbone.js ma sens. Czy Dojo (co robi kilka innych rzeczy - jestem tego świadomy) i backbone.js nakładają się lub uzupełniają? Jakie byłyby różnice koncepcyjne w nakładających się częściach? Czy są przykłady, które wykorzystują oba razem? (Wiem, że jest to dość ogólne pytanie i może pokazać mój drugi poziom ignorancji)Porównywanie plików backbone.js i Dojo

Odpowiedz

30

Dojo obejmuje znacznie szerszy zakres niż Backbone.js. Jeśli jesteś już biegły w Dojo, jedynym powodem, dla którego powinieneś wziąć pod uwagę Backbone.js w swoim przyborniku, jest to, że jest lekki. Możesz lub nie lubisz różnicę API - jest to wyłącznie kwestia wyboru. Jeśli już używasz Dojo w projekcie, to nie ma sensu używać Backbone.js w tym samym projekcie, ponieważ Dojo ma wszystko, czego potrzeba do zbudowania architektury MVC, chociaż na poziomie powierzchniowym może nie być to takie oczywiste. Magazyny danych Dojo są potężne, a widżety Dijit są przeznaczone do użytku z magazynami Dojo. Używanie modeli Backbone do zapewniania zaplecza danych dla widgetów Dijit byłoby bardzo uciążliwe. Jest to naprawdę niepotrzebne, ponieważ warstwa danych i warstwa prezentacji Dojo są bardzo starannie odsprzęgnięte i doskonale działają po wyjęciu z pudełka. Jeśli jednak potrzebujesz tylko lekkiej konstrukcji MVC dla swojej aplikacji, Backbone.js może zaoferować ci lżejszą alternatywę niż użycie Dojo. Jednak w zależności od aplikacji i Twoich wymagań może być bardziej odpowiedni niż inne ...

13

Mam wcześniejsze doświadczenie Backbonejs, ale mam zamiar pracować nad projektem, który zależy od Dojo i dopiero zaczynam go wybierać. Niemniej jednak będę tu komentował to, co do tej pory zaobserwowałem, choć jest to mało.

Szukamy stylu architektury Modern Web App (pomyśl twitter, quora, gmail), tego rodzaju architektura może być łatwo zapewniona przez coś takiego jak Backbonejs. Pojęcia, do których uprawniasz, choć są podstawą, są do zrobienia w tym, czego potrzebujesz.

Szczerze mówiąc, nie sądzę, że Dojo naprawdę zapewnia wszystko, co oferuje Backbonejs, weź ten przykład: routery i widoki oraz użyteczne metody, które umożliwiają łatwe i szybkie deklarowanie zdarzeń, uruchamianie metod zmiany adresu URL, itp.

Po stronie Dojo, potwierdzę, że są tam sklepy i można je połączyć z widżetami, ale to nie jest to samo, co abstrakcyjne modele & Kolekcje dostarczane przez Backbonejs. W samouczku MVC na stronie Dojo zrównają sklep z modelem; to byłaby Kolekcja w Backbonejs, również nadal masz Model (to byłby tylko przedmiot ze sklepu i możesz słuchać na nim zdarzeń wyzwalających & z &).

Wygląda na to, że abstrakcje Backbonejs są delikatniejsze.

Sądzę, że możliwe jest użycie obu elementów komplementarnie. Zaczynając od tego podejścia, zobaczymy, jak to potrwa za kilka dni.

(Plotka: Słyszałem gdzieś, że Dojo jest wprowadzenie pewnych zmian w zakresie MVC, aby być na równi z tym, co oferuje backbone.js ...)

+1

proszę podzielić się wystąpić, jak dowiedzieć się, aktualizując tę ​​odpowiedź –

+4

Dojo 1.7 był właśnie wydany wczoraj, a teraz zawierają one [router!] (https://github.com/csnover/dojo-boilerplate/blob/amd1.7/src/js/dbp/Router.js) Byłem zabawy z tworzeniem widżetów i są dość dobrze zaprojektowane, mają dobre zaplecze dla komunikacji między komponentami (wydarzenia, pub/sub), dobre rozdzielenie obaw również. – zenw0lf

+3

I z Dojo 1.7 możesz mieć delegację zdarzeń, styl widoku backbonejs: [dojo/on] (http://livedocs.dojotoolkit.org/dojo/on) – zenw0lf