[pyar] [Discusión] Django y Single Responsability Pattern

Luis Masuelli luismasuelli en hotmail.com
Mar Jul 29 11:00:06 ART 2014


¿Debemos suponer que te hiciste tu propio template loader para que busque carpetas que se llamen "views" en lugar de "templates"? (por fumón que parezca tendría sentido)

Date: Mon, 28 Jul 2014 18:22:33 -0500
From: 1000ton.lab en gmail.com
To: pyar en python.org.ar
Subject: Re: [pyar]	[Discusión] Django y Single Responsability Pattern

Por eso yo desde el primer día las llamé controlers.py en vez de views.py

El 28 de julio de 2014, 15:49, Jose Selesan <jselesan en gmail.com> escribió:

Hola Maxi. Lo de MVT en django y que la vista en realidad es un controlador de MVC ya me parecía. 

Está claro que la arquitectura cada uno la puede armar a gusto, a lo que apuntaba justamente es a si hay una lista de "buenas prácticas". A mi me gusta separar la persistencia de la lógica de negocios, pero a su vez me gusta que cierta lógica de negocios esté en las clases (por ejemplo, si tengo una clase cuenta corriente, yo lo que hago es tener la lista de movimientos, el método para calcular el saldo y para hacer un depósito o extracción en la misma clase, pero no es la clase la que sabe como persistirse (el ORM es el encargado, las clases son agnósticas de la persistencia), y para hacerlo así, el modelo ofrecido por django no sirve.


José


2014-07-28 17:18 GMT-03:00 Maxi <maxirobaina en gmail.com>:



El día 28 de julio de 2014, 16:52, Jose Selesan <jselesan en gmail.com> escribió:

> Buenas gente!. Estoy leyendo sobre Django (empecé por Django, si no me gusta

> veré Flask o algún otro web framework) y una de las primeras cosas que me

> llamó la atención es que los modelos son más bien modelos de datos, ya que

> especifican los campos y heredan el comportamiento para almacenar en la base

> de datos.

>

> Ahora bien, en los ejemplos que vi, desde la vista misma (ya sea una Class

> View o una función) se persisten las entidades. Esto está bien en ejemplos

> sencillos, pero en casos más complejos, ¿no viola el principio de

> responsabilidad única? Por ejemplo cuando creo una factura, debo hacer las

> validaciones de negocios (que el cliente tenga saldo, que haya stock

> suficiente, etc), actualizar el stock de los productos, actualizar el saldo

> del cliente y persistir la factura con sus items. ¿Donde ponen ese código?

> ¿En la vista? ¿O se crea una clase de de servicio como suele usarse en Java

> o .Net?





Hola José,



Lo que generalmente confunde en django es que al patrón MVC, django lo

llama MVT (Model, View, Template), en donde la vista (view) es en

realidad el controlador, y el template la vista.

Independientemente de esto, la forma en que vos diseñes la

arquitectura de tu aplicación corre un poco por tu cuenta, no siempre

tenés que atarte a este modelo. Para mi la capa de persistencia

debería estar siempre separada de la lógica del modelo de negocios,

por lo tanto me resulta incomodo tener por ejemplo una clase Cliente

con un método "facturate" y que ese método resuelva la lógica de la

facturación. En todo caso tendría una clase Facturador la cual

recibiría el cliente (o lista de clientes) a facturar. Pero ya te digo

va en en la estructura que cada uno quiera imponer no necesariamente

tiene que ser así. Si vos querés poner esa lógica en los módelos

tampoco estaría mal. No se como será en java o .net



Saludos.

_______________________________________________

pyar mailing list pyar en python.org.ar

http://listas.python.org.ar/listinfo/pyar



PyAr - Python Argentina - Sitio web: http://www.python.org.ar/



La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar




_______________________________________________

pyar mailing list pyar en python.org.ar

http://listas.python.org.ar/listinfo/pyar



PyAr - Python Argentina - Sitio web: http://www.python.org.ar/



La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar


-- 

/\/\;/-----------------------------------------------------
Milton  Labanda  [miltonlab]
Distro:        Debian GNU/Linux 6.0 Squeeze
Blog:          http://1000tonlab.wordpress.com
jabber:        miltonlab en jabber.org
"... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su  verdadero bien...".  Karol Wojtyla
(:\ Usa Software Legal, usa Software Libre /:)


_______________________________________________
pyar mailing list pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140729/55c9e300/attachment-0001.html>


More information about the pyar mailing list