Models controllers dubbel of enkel
Maar nu zit ik met de volgende dillema. Ik werk graag volgens MCV maar ik vraag me nu af wat het beste en het handigst is. Als je een module implementeerd is het dan handig om de front en back end goed te scheiden?
Dus twee models en controllers? (ik ga ervanuit dat je bij de view er niet echt onderuit komt dat je deze apart zijn)
Of een model en twee controllers?
Wat zijn jullie ideeen hierover.
Nee, dat is meestal erg onhandig. Als het goed is, hebben je objecten geen besef van de omgeving waarin ze gebruikt worden: ze doen gewoon wat van ze gevraagd wordt, ongeacht de context.
Ik ken inderdaad ook meerdere frameworks en applicaties waarbij ze hadden bedacht dat het "wel handig" was om frontend en backend "strikt" te scheiden. Maar dat leidt vroeg of laat altijd tot problemen bij updates en refactoring: zodra je één wijziging op twéé plaatsen moet doorvoeren, deugt je ontwerp niet.
Less is more.
Oke misschien domme vraag maar hoe hou ik binnen mijn controller de scheiding tussen front- en backend functies?
Zoals ik het nu heb is 1 model en 2 controllers. Voor backend en voor front end.
Gewijzigd op 25/11/2015 21:30:49 door Sander V
Dat kan, maar is vooral afhankelijk van hoe je alles aan elkaar hangt. De backend verschilt met name in drie opzichten van de frontend: de afwijkende routing, de complexere rechten en de extra functionaliteit. Dat kan (bijvoorbeeld) betekenen dat twee controllers niet gescheiden zijn, maar de backend-controller de frontend-controller extendt voor extra functionaliteit. Dus ja: twee controllers gebruiken is een goede oplossing, zolang je ze maar DRY (Don't Repeat Yourself) bouwt.
Dat is overigens makkelijker gezegd dan gedaan. Ik betrap mezelf er ook wel eens op dat ik iets dat ik eerder al heb gedaan nog een keer doe. Zo'n herhaling in je code is een moment om even rustig het geheel te overzien en te kijken of je het niet anders moet oplossen. Vaak betekent het dat een class te veel doet en je iets moet afsplitsen.