Normalnie staram się unikać subiektywnych odpowiedzi, ale to jest naprawdę ważna debata. Najpierw polecam przeczytanie Meteor Methods vs Client-Side Operations z bloga Discover Meteor. Pamiętaj, że w Edthena używamy metod wyłącznie z powodów, które powinny stać się oczywiste.
Metody
pro
-
Metody mogą poprawnie wymusić schemat i reguły walidacji o dowolnej złożoności bez potrzeby korzystania z zewnętrznej biblioteki. Uwaga dodatkowa – check to doskonałe narzędzie do sprawdzania struktury danych wejściowych.
-
Każda metoda jest pojedynczym źródłem prawdy w Twojej aplikacji. Jeśli utworzysz metodę „posts.insert”, możesz łatwo upewnić się, że jest to jedyny sposób wstawiania postów w Twojej aplikacji.
kon
- Metody wymagają stylu imperatywnego i zwykle są szczegółowe w stosunku do liczby walidacji wymaganych dla operacji.
Operacje po stronie klienta
pro
allow
/deny
ma prosty styl deklaratywny.
kon
-
Sprawdzanie poprawności schematu i uprawnień w
update
operacja jest nieskończenie trudna. Jeśli potrzebujesz wymusić schemat, będziesz musiał użyć zewnętrznej biblioteki, takiej jak collection2. Już sam ten powód powinien dać ci spokój. -
Modyfikacje mogą być rozsiane po całej aplikacji. Dlatego może być trudne określenie, dlaczego doszło do określonej operacji na bazie danych.
Podsumowanie
Moim zdaniem allow
/deny
jest bardziej estetyczny, jednak jego podstawową słabością jest wymuszanie uprawnień (szczególnie w przypadku aktualizacji). Polecam operacje po stronie klienta w przypadkach, gdy:
-
Twoja baza kodu jest stosunkowo niewielka - więc łatwo jest pogrepować we wszystkich przypadkach, w których występuje określony modyfikator.
-
Nie masz wielu programistów, więc nie musisz zgadzać się, że jest jeden i tylko jeden sposób na wstawienie do X kolekcja.
-
Masz proste zasady uprawnień – m.in. tylko właściciel dokumentu może modyfikować dowolny jego aspekt.
Moim zdaniem korzystanie z operacji po stronie klienta jest rozsądnym wyborem podczas budowania MVP, ale przestawiłbym się na metody we wszystkich innych sytuacjach.
aktualizacja 22.02.15
Sashko Stubailo stworzył propozycję zastąpienia zezwól/odmów metodami wstawiania/aktualizowania/usuwania.
aktualizacja 6.01.2016
Przewodnik po meteorach zajmuje pozycję, w której allow/deny
należy zawsze unikać.