Co decyduje o tym, aby utworzyć nowy kontroler, zamiast dodawać więcej czynności do istniejącego kontrolera? Gdzie narysujesz linię i DLACZEGO?Więcej kontrolerów, ale mniej akcji lub mniej kontrolerów, ale więcej akcji
Odpowiedz
To, co na pewno daje , a nie, to liczba akcji¹ - przynajmniej w tym sensie, że "och, mam ponad 50 akcji w tym kontrolerze, zacznijmy następny".
Wytyczną² powinno być: kontrolery są grupą logiczną dla działań, które działają na tym samym typie obiektu (ten sam typ modelu model może być lepszą definicją). Jeśli tak się składa, że masz model tak bogaty w funkcje, że istnieje 30 oddzielnych akcji, które można na nim wykonać, możesz je umieścić w tym samym kontrolerze.
Po drugiej stronie medalu: jeśli masz proste modele i piszesz kontrolerów z zaledwie kilkoma działaniami, to powinieneś być powodem, aby czuć się dobrze, mając na uwadze łatwość obsługi aplikacji, a nie powód do zmartwień. .
Uwagi:
¹ oczywiście, że kontroler z wielu działań jest czerwona flaga dla ewentualnych nadużyć kodu więc liczba powinny bierze się pod uwagę - nie tylko jako pewnego rodzaju twardej reguły .
² I jest to naprawdę wytyczna - celem jest zbudowanie systemu, który można utrzymać, a nie przestrzeganie niektórych pism religijnych.
Głównym czynnikiem, który powinien określać, kiedy należy utworzyć nowy kontroler, jest logika/funkcjonalność, którą wykonują. Będziemy chcieli, aby upewnić się separate concerns:
public class ProfileController { }
public class MainController { }
public class AccountController { }
public class ShoppingCartController { }
Każdy z poprzednich kontrolerów są wykorzystywane do koordynowania komunikacji między odpowiednimi usługami domena/modeli i ich poglądów.
Zgodnie z ogólną zasadą, zachowuję wszystkie czynności tak proste, jak to tylko możliwe, jeśli są duże lub zbyt duże, wtedy widzę, czy mogę tworzyć funkcje pomocnicze.
Mam kontroler na jednostkę DB, jeśli to konieczne.
Tak na przykład, że mam kontrolera użytkownika, regulator Cart, pozycja kontroler itp itd
nie sądzę są jakieś szczególne zasady. Chodzi o to, żeby wszystko było logiczne. Jeśli jest to dla ciebie logiczne, to na ogół wszystko, co ważne, chyba że jesteś w zespole, musi być logiczne dla wszystkich.
Mam nadzieję, że to pomoże.
- 1. std :: set wybierz mniej lub więcej komparatora w czasie wykonywania
- 2. popping i pchanie kontrolerów widoku w tej samej akcji
- 3. Mniej znane, ale użyteczne funkcje w Eclipse
- 4. Zdobądź listę wszystkich kontrolerów i akcji w laravel 5
- 5. Jaka jest odległość między 2 lub więcej ruchomymi przyciskami akcji?
- 6. wiersza polecenia sqlite3 - Jak wyświetlić mniej/więcej wyjścia
- 7. plik znalezisko według wielkości więcej MIN i mniej MAX
- 8. Wybierz coś, co ma więcej/mniej niż znak x.
- 9. Dostęp do kontrolerów z innych kontrolerów
- 10. Ograniczanie tempa dla kontrolerów szyn
- 11. Jak uzyskać mniej lub więcej rozpoznawania naciśnięć klawiszy podczas instalacji ze skryptu cli php?
- 12. Projektowanie aplikacji internetowych: sesja lub sesja mniej
- 13. mniej lub less_equal korzystając ustawić
- 14. Tworzenie łącza akcji w kontrolerze
- 15. Jeden lub więcej projektów nie może być załadowanych, ale VS, ale nie mówi, który
- 16. Jak wymusić lub wyłączyć orientację interfejsu dla niektórych, ale nie wszystkich kontrolerów UIViewController?
- 17. Kiedy używasz vima lub mniej na ekranie gnu, opuszczenie vima lub mniej pozostawia długotrwały ślad
- 18. ValidateRequest = Fałsz, ale w akcji to nadal prawda i ignorowane?
- 19. Czy istnieje temat Holo, pełny ekran, ale z paskiem akcji?
- 20. kabel akcji subskrybujący lokalnie, ale nie na heroku
- 21. Skrypt bash do (mniej więcej) niezawodnie sprawdzaj, czy Internet jest gotowy.
- 22. Ruby spać lub opóźnić mniej niż sekundę?
- 23. Jedna fabryka dla wielu kontrolerów?
- 24. Kompas i SASS lub mniej i?
- 25. Identyfikatory ios bez kontrolerów nawigacji
- 26. Obowiązki Delegatów i Kontrolerów w Cocoa Touch?
- 27. Jak wykonać mniej niż/więcej niż porównania na obiektach niestandardowych w javascript
- 28. JPQL Sprawdź więcej niż mniej niż dzisiaj data w dopisku @Query
- 29. Przypisywanie wielu kontrolerów w $ stateProvider.state
- 30. MNIEJ Client dla Windows
"Kontrolery są grupą logiczną dla działań, które działają na tym samym typie obiektu (ten sam typ modelu może być lepszą definicją)". Czy to brzmi jak jedna jednostka kontrolera 1? – Elisabeth
@Elisa: To brzmi tak, ale istnieje również możliwość, że podmioty są tak blisko powiązane, że naprawdę należą do tego samego kontrolera. – Jon
Co sprawia, że 2 podmioty są tak zamknięte, że dostają się do tego samego kontrolera? – Elisabeth