2013-06-16 12 views
7

Chciałem się dowiedzieć, czy ktoś używa AirBnB Rendr i czy jest stabilny i czy można go używać w projektach komercyjnych, czy też ciągle się zmienia?Jak stabilny jest plik AIRBNB node.js?

Zajmuję się tworzeniem strony internetowej, która może działać zarówno na klientach, jak i na serwerach, co oznacza, że ​​muszę mieć możliwość renderowania stron i widgetów opartych na serwerze i kliencie.

Na serwerze działa program Node.js, dust.js i ma niestandardowy kod oparty na serwerze, który renderuje strony i widżety po stronie serwera. Muszę wybrać sposób obsługi po stronie klienta. Naturalnie chcę spróbować i nie powtarzać kodu, ale oczywiście klient jest inny mogę:

  1. zachować mój obecny renderowania strony serwera oparty i rozwijać zwyczaj klienta kod boczną.
  2. Użyj backbone.js po stronie klienta i zachowaj mój kod oparty na serwerze na tym samym .
  3. Użyj renderowania AirBnB opartego na Node.js i szkieletu, aby użyć tego samego kodu na kliencie i serwerze. AirBnB Rendr Library

Bardzo podoba mi się ten trzeci pomysł, ale szukam od was odpowiedzi. Czy ktoś go użył? jakiekolwiek doświadczenie z nim pod względem stabilności i/lub jak często ich zmiany w API itp.?

Odpowiedz

7

Właśnie zacząłem bawić się z Rendrem. Jeśli zignoruję krzywą uczenia się i obsesję na punkcie tarcia, bardzo mi się podoba i planuję napisać następną dużą aplikację produkcyjną za pomocą Rendr.

Niestety, jak wspomniano wyżej, bababa, dokumentacja wymaga wiele pracy. Jest wyjaśnienie, w jaki sposób Rendr działa w README i README aplikacji przykładowej, ale poza tym będziesz potrzebować źródła nurkowania, aby dowiedzieć się, jak obracają się narzędzia.Obecnie nie ma forum na pytania (poza przepełnieniem stosu: D) i miałem problemy z samodzielnym wymyśleniem jego idiomów.

Mimo wszystkich zmagań, w końcu widzę światło i zaczynam rozumieć, dlaczego Rendr jest tak potężny.

tl; dr - Jeśli jesteś zainteresowany zrobieniem nurkowania i ustaleniem własnego przepływu pracy, proponuję użyć Rendr. W przeciwnym razie polecam pójść do starej szkoły, pisząc tradycyjną aplikację kliencką z bardziej dojrzałą biblioteką. (czy jest jeszcze za wcześnie, aby to powiedzieć? = X)

6

Dobrze przyjęty AirBnb to udane przedsięwzięcie komercyjne, istnieje pewna walidacja, że ​​biblioteka działa wystarczająco dobrze dla nich. Najlepiej odpowiedzieć na to pytanie, obserwując ich dziennik zatwierdzania Github dla zmiany zmian. Biorąc pod uwagę, że kręgosłup ma 1,0 i jest zasadniczo stabilny w tym momencie, rendr prawdopodobnie szybko się ustabilizuje, ale szczerze mówiąc, twój strach przed niestabilnością jest prawdopodobnie nieuzasadniony. Myślę, że rendr wygląda atrakcyjnie i chociaż mój obecny projekt korzysta z bardzo podobnego rozwiązania domowego, rozważyłbym użycie rendr w przyszłym projekcie lub nawet przeniesienie naszego kodu do rendr. "Stabilność" na rzecz jest o wiele mniej ważna dla społeczności programistów w porównaniu do innych sytuacji, takich jak pakiety lub oprogramowanie wbudowane.

+0

Świetna odpowiedź, człowieku. Pokazuje, jak dowiedzieć się, co OP chce wiedzieć, a nie tylko im go dawać. Poza tym, jedną rzeczą, o której pamiętam w/Js libs od niedawna (a może szczególnie w Node?) Jest ich zwięzłość. Możesz przeczytać wszystkie szkielety i podkreślenia, aby określić ich wykonalność w projekcie z pominięciem dużej inwestycji z góry. – Montagist

3

Użyłem (próbowałem użyć) i Rendr na projekcie i poddałem się. Istnieje tylko wiele ograniczeń (obecnie), a brak dokumentacji nie pomaga. Skończyło się na tym, że trzeba przepisać kod źródłowy, aby osiągnąć pewne rzeczy, które uważałbym za trywialne w innych frameworkach, na przykład przekazywanie wielu kolekcji do widoku. Po prostu nie było to możliwe (kiedy go używałem) i był to przełom w interesach. Brak możliwości przekazania zbioru kategorii i wyników do strony był dużym ograniczeniem.

nie mam wątpliwości, będzie ostatecznie gotowy do użytku produkcyjnego, ale teraz chciałbym powiedzieć, chyba że jesteś inżynierem w Airbnb i wiedzieć, jak włamać źródło potem nie, to nie jest gotowy.

Jeśli naprawdę chcesz wiedzieć, czy to będzie działać w twoim przypadku, spójrz na issue list na github. To da ci dobry pomysł, gdzie są projekty.

+2

Nie jestem pewien, co dokładnie zmieniło się od czasu Twojego komentarza, ale jestem prawie pewien, że możesz przekazać tyle swoich kolekcji lub modeli do swoich widoków (używam 0.4.10). Oto link do przykładu: https://gist.github.com/muffs/6241532. Moduł pobierania aplikacji asynchronizuje pobieranie modeli i kolekcji wymienionych w specyfikacji, jeśli nie są one buforowane lub brakuje im niezbędnych kluczy zdefiniowanych w tablicy secureKeys. – muffs

+1

Po prostu nie wywołuj modeli "model' lub kolekcje' kolekcji' podczas pobierania; w przeciwnym razie domyślna funkcja 'getTemplateData' obsłuży je w specjalny sposób i nie będzie eksportować innych modeli/kolekcji do widoku: https://github.com/airbnb/rendr/blob/55e4854080e1424f0ddb9952c7361001d03690cd/shared/base/view.js # L112-L124 – Benjie

Powiązane problemy