Il punto è classi di modelli dovrebbe contenere tutta la logica, in base al modello di progettazione Model-View-Controller. Ricorda -
Viste più sottili, controller sottili, modelli di grasso.
Tutorial
Così, da quel principio di ogni logica di business dovrebbe essere contenuto nei modelli. In tal modo, i modelli dovrebbero essere accuratamente testati. Inoltre, i dati sono il componente più importante in qualsiasi progetto web. In tal modo, assicurando che i modelli abbiano convalide sufficienti e non consentano che i dati indesiderati in db siano estremamente cruciali.
Ecco cosa dice MVC. Anche se sono d'accordo sul fatto che provare ad adattare tutto in costrutti MVC è un antipattern molto comune. Un approccio ancora migliore sarebbe quello di utilizzare classi distinte per mantenere la logica aziendale che non rientra in alcun costrutto MVC, sebbene debbano essere incapsulati anche nei modelli.
Inoltre, per quanto riguarda i test è generale, credo che qualsiasi pezzo di codice funzionante dovrebbe avere una suite di test atleast modest per loro. I test sono specifiche di lavoro del codice o piuttosto dovrebbero essere. Guidano qualcun altro su cosa sta facendo il tuo codice, come cambiarlo senza rompere nulla.
Nota: - Non testare le librerie se cioè non testare il codice Django o mongoengine
Atleast dire perché mi sono meritato un downvote? – hspandher
potresti citare quel mantra per dargli un po 'più di credibilità (non sono il downvoter, quindi questo non si applica alla tua domanda sul downvote). –
C'è spesso una differenza tra la logica di dominio che fa parte del modello di livello e i modelli di dominio che fanno parte del livello del modello. Spesso non vuoi accoppiarli troppo da vicino. – mason