Ember.js lub kręgosłup.js dla Restful backend [zamknięty]

Już wiem, że ember.js jest bardziej ciężarowe podejście w przeciwieństwie do kręgosłupa.js. Czytałem wiele artykułów o obu.

Zadaję sobie pytanie, który framework działa łatwiej jako frontend dla backendu rails rest. Na kręgosłup.js widziałem różne podejścia do wywoływania zaplecza rest. Dla Embera wydaje się, że muszę dołączyć jeszcze kilka bibliotek typu "data" lub "resources". Dlaczego są na to dwie biblioteki?

Więc jaki jest lepszy wybór? Jest wiele przykładów aby połączyć frontend z backendem. Co to jest dobry przykład pracy dla wywołania rest backend do tego:

URI: ../ restapi / tematy GET authorization failed: admin / secrect format: json

Author: Robin Wieruch, 2012-10-21

3 answers

Wbrew powszechnej opinii Ember.js nie jest "podejściem cięższym" do kręgosłupa.js. Są to różne rodzaje narzędzi, które są ukierunkowane na zupełnie inne produkty końcowe. Sweet spot Ember to aplikacje, w których Użytkownik utrzymuje aplikację otwartą przez długi czas, być może przez cały dzień, a interakcje z widokami aplikacji lub bazowymi danymi powodują głębokie zmiany w hierarchii widoków. Ember jest większy niż kręgosłup, ale dzięki Expires, Cache-Control to ma znaczenie tylko na pierwszy załadunek. Po dwóch dniach codziennego użytkowania Dodatkowe 30K zostanie przyćmione przez transfer danych, wcześniej, jeśli zawartość obejmuje obrazy.

[2]}szkielet jest idealny dla aplikacji z niewielką liczbą stanów, w których hierarchia widoku pozostaje stosunkowo płaska i gdzie użytkownik ma tendencję do dostępu do aplikacji rzadko lub przez krótszy okres czasu. Kod Backbone ' a pozostaje krótki i słodki, ponieważ zakłada, że dane wspierające DOM zostaną wyrzucone, a oba elementy będą be memory collected: https://github.com/documentcloud/backbone/issues/231#issuecomment-4452400 mniejszy rozmiar szkieletu sprawia, że lepiej nadaje się do krótkich interakcji.

Aplikacje, które ludzie piszą w obu frameworkach, odzwierciedlają te zastosowania: Ember. aplikacje js zawierają pulpit internetowy Square, Zendesk (przynajmniej interfejs agenta/biletów) i scheduler Groupona: Wszystkie aplikacje, w których użytkownik może spędzić cały dzień pracy.

Backbone apps focus more na krótkich lub przypadkowych interakcjach, które często są tylko małymi sekcjami większej statycznej strony: airbnb, Khan Academy, mapa i listy Foursquare .

You canuse Backbone to make the type of applications that Ember targets (E. G. Rdio) by a) zwiększenie ilości kodu aplikacji, za które jesteś odpowiedzialny, aby uniknąć problemów, takich jak wycieki pamięci lub zdarzenia zombie (osobiście nie polecam tego podejścia) lub B) poprzez dodanie 3rd party biblioteki jak .marionette lub Coccyx – istnieje wiele z tych bibliotek, które starają się zapewnić podobne nakładające się funkcjonalności i prawdopodobnie skończy się montaż własnych niestandardowych framework, który jest większy i wymaga więcej kodu kleju niż gdybyś po prostu użył Ember.

Ostatecznie pytanie "którego użyć" ma dwie odpowiedzi.

Po Pierwsze ," które powinienem używać, ogólnie, w mojej karierze": oba, tak jak skończysz uczyć się wszelkich narzędzi specyficznych dla praca, którą będziesz chciał wykonać w przyszłości. Nigdy nie zapytałbyś " kręgosłup czy D3?"; "Backbone or Ember" to równie głupie pytanie.

Po Drugie, "którego konkretnie powinienem użyć w następnym projekcie": zależy od projektu. Oba będą komunikować się z serwerem Rails z równą łatwością. Jeśli twój kolejny projekt obejmuje mieszankę stron generowanych przez serwer z tzw. "wyspami bogactwa" dostarczanymi przez JavaScript użyj szkieletu. Jeśli następny projekt wypchnie całą interakcję do przeglądarki środowisko, użyj Ember.

 258
Author: Trek Glowacki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-23 10:43:42

Aby dać krótką, uproszczoną odpowiedź: aby uzyskać spokojny backend, w tej chwili powinieneś użyć Backbone.

Aby dać bardziej złożoną odpowiedź: to naprawdę zależy od tego, co robisz. Jak mówili inni, Ember jest przeznaczony do różnych rzeczy i spodoba się innej grupie ludzi. Moja krótka odpowiedź opiera się na Twoim włączeniu wymogu odpoczynku.

W tej chwili Ember-Data (który wydaje się być domyślnym mechanizmem trwałości w Ember) jest daleki od produkcji gotowy. Oznacza to, że ma sporo błędów i, co najważniejsze, nie obsługuje zagnieżdżonych Uri (na przykład/posts/2/comments / 4556). Jeśli wymagasz odpoczynku, będziesz musiał obejść to na razie, jeśli wybierzesz Ember (tzn. albo będziesz musiał go zhakować, poczekać, zaimplementować coś w rodzaju Ember-Data od zera, albo użyć niezbyt spokojnych Uri). Ember-Data nie jest ściśle częścią Ember, więc jest to całkowicie możliwe.

Główne różnice między tymi dwoma, poza rozmiarem, są w zasadzie:

Ember stara się zrobić dla Ciebie jak najwięcej, abyś nie musiał pisać jak najwięcej kodu. Jest bardzo hierarchiczny, a jeśli Twoja aplikacja jest również bardzo hierarchiczna, prawdopodobnie będzie dobrze pasować. Ponieważ robi to tak wiele dla ciebie, może być trudno dowiedzieć się, skąd pochodzą błędy i wyjaśnić, dlaczego dzieje się nieoczekiwane zachowanie (jest wiele "magii"). Jeśli masz aplikację, która naturalnie pasuje do typu aplikacji, której oczekuje Ember budynek jednak, to prawdopodobnie nie będzie problemem.

Backbone stara się zrobić jak najmniej dla Ciebie, abyś mógł zrozumieć, co się dzieje i zbudować architekturę pasującą do Twojej aplikacji (zamiast budować aplikację pasującą do architektury używanego frameworka). O wiele łatwiej jest zacząć, ale jeśli nie będziesz ostrożny, możesz skończyć z bałaganem bardzo szybko. Nie robi takich rzeczy, jak właściwości obliczeniowe, automatyczne odpiszanie zdarzeń itp., więc będziesz musiał zaimplementować wiele rzeczy samodzielnie (lub przynajmniej wybrać biblioteki, które robią to za ciebie), chociaż o to raczej chodzi.

Update: wydaje się, że od niedawna Ember obsługuje teraz zagnieżdżone Uri, więc przypuszczam, że pytanie sprowadza się do tego, ile magii lubisz i czy Ember jest dobrze dopasowany architektonicznie do Twojej aplikacji.

 26
Author: bengillies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-22 22:17:05

Myślę, że twoje pytanie wkrótce zostanie zablokowane :) jest kilka sporów między tymi dwoma frameworkami.

Zasadniczo Backbone nie robi wielu rzeczy i dlatego to uwielbiam : będziesz musiał dużo kodować, ale będziesz kodować we właściwym miejscu. Ember robi wiele rzeczy, więc lepiej uważaj co robi.

Dyskusja na serwerze jest jedną z niewielu rzeczy, które Backbone robi, i robi z nią świetną robotę. Więc zacznę od kręgosłupa, a potem spróbuję Ember, jeśli nie jesteś całkowicie zadowolony.

Możesz także posłuchać tego podcastu , w którym Jeremy Ashkenas, twórca Backbone, i Yehuda Katz, członek Ember, mają miłą dyskusję

 3
Author: Nicolas Zozol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-08 10:16:59