[pyar] Optimizacion vs (codigo limpio y generico)
Ezequiel Brizuela [aka EHB or qlixed]
qlixed en gmail.com
Mie Abr 23 08:22:01 ART 2014
Java es el mal.
Why?
Java te dice q lo simple lo hagas asquerosamente complicado.
La idea de usar getters y setters viene de otro lenguaje mas serio como C++
(Stop activistas del correctismo historico, se q viene de smalltalk e
incluso de antes, pero dejemoslo ahi) donde el operador = se puede
sobrecargar (Stop Java pseudofans, se que el op = se puede sobrecargar tmb,
pero no es tan comun hacerlo en java hasta donde pude ver) entonces a ve es
una asignacion requeria usar otro tipo de approach para hacerlo, tambien se
deriva principalmente del modelo de "proteccion" de atributos existente
(AKA public, private, protected, friend)
A su vez esto derivo tambien en el agregado de validacion de tipos y
estados de parametros en la asignacion y otras yerbas q se puede requerir
gracias al afable y nunca bien comprendido duck typing, atomicidad,
threading y otras cosas mas modernas, el get/setter se volvio un estandar
en la poo y sobre todo en la poo moderna multithread.
Creo que por el estilo de poo pythonica rara vez se necesita todo esto. El
tipado dinamico, la inexistente proteccion real de atributos, y otras
caracteristicas que no da para plantear porque veo demasiado largo ya este
mail, hacen q el uso de getter y setters sea por demas innecesario.
O "al menos asi lo veo yo" como diria el gran Nimo.
El abr 23, 2014 7:38 AM, "Pedro Jose Pezzarini" <jose2190 en gmail.com>
escribió:
> @FacundoBatista, gracias por tu respuesta, en consecuencia a esta, me topé
> con 2 buenos artículos (
> http://dirtsimple.org/2004/12/python-is-not-java.html y
> http://tomayko.com/writings/getters-setters-fuxors ).
>
> Necesito que mi objeto pueda variar con el tiempo en sus atributos, pero
> quiero seguir utilizando accessor y mutators de la misma forma, similar a
>
> myobject.accessor(attributeName)
> myobject.mutator(attributeName, value)
>
>
>
> @ClaudioOmarMelendrezBaeza, quizás desde un punto de vista más teórico (
> http://codebetter.com/raymondlewallen/2005/07/19/4-major-principles-of-object-oriented-programming/)
> la transición hacia la implementación se traduce mejor con la manera que
> Java lo hace. Pero me guardo el derecho a la duda, de suponer que varios
> pilares de la OOP fueron modificados, por la metodología de algunos
> lenguajes.
>
>
> Saludos y gracias por su respuesta.
>
>
> El 23 de abril de 2014, 0:03, Claudio Omar Melendrez Baeza <
> claudio.melendrez en gmail.com> escribió:
>
>> Viendo esto de getters y setters me hace preguntarme por qué se usa
>> preferentemente Java como lenguaje de iniciación a la POO... :S
>> Aguante Pascal. Ja.
>>
>>
>> 2014-04-22 22:46 GMT-03:00 Facundo Batista <facundobatista en gmail.com>:
>>
>> 2014-04-22 21:50 GMT-03:00 Pedro Jose Pezzarini <jose2190 en gmail.com>:
>>>
>>> > Estoy trabajando en un sistema, y tengo la cuantiosa duda de todo
>>> > desarrollador (almenos la mayoría), optimización vs codigo limpio.
>>>
>>> Siempre es mejor optimizar código correcto, que corregir código
>>> optimizado. Ergo, primero escribilo limpio y bien, después (si es
>>> necesario, y sólo si es necesario) lo optimizás.
>>>
>>>
>>> > Donde quiero utilizar un método generico "set" y "get", para ello
>>> utilizo
>>> > __map para mapear los attrs que son seteables.
>>>
>>> No, en Python no se usan getters y setters. Creo que lo explicó Fisa
>>> hoy o ayer en otro thread (y si no, ¿cómo es que no tenemos una
>>> entrada en la FAQ para este tema?).
>>>
>>> La idea, en pocas palabras, es: no usés setter y getter porque a
>>> priori son un paso innecesario, y si alguna vez lo necesitás, tenés
>>> "property".
>>>
>>>
>>> > Pregunta:
>>> > ¿Les parece correcto o es una medio monstuosidad? ... ¿Alguien tiene
>>> algo
>>> > más óptimo o lugar donde leer sobre esto?
>>>
>>> En esa clase hacés cosas muy... raras. ¿Cual es el comportamiento que
>>> estás buscando? ¿De qué maneras estás queriendo usar la clase?
>>>
>>> Creo que si nos pasás un par de lineas de ejemplo de cómo te gustaría
>>> usar la clase, te podemos ayudar mejor.
>>>
>>> LLAP,
>>>
>>> --
>>> . Facundo
>>>
>>> Blog: http://www.taniquetil.com.ar/plog/
>>> PyAr: http://www.python.org/ar/
>>> Twitter: @facundobatista
>>> _______________________________________________
>>> 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
>>
>
>
> _______________________________________________
> 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/20140423/24100d81/attachment-0001.html>
More information about the pyar
mailing list