kikoGregoris wrote:
> Ok, entiendo o creo entender a donde vas. La implementación
funciona,
> solo me parecía que no era muy apropiada o que no estaba modelada
de
> una forma muy a la objetos. A menudo me pasa que hago algo que
> funciona, y luego empiezo a pensar que el modelo implementado no es
> del todo correcto o que no tiene un estilo OO, por decirlo así.
Esto
> me causa cierta insatisfacción con lo producido, y pienso si mis
> conceptos de base, de lo que es o no un objeto son correctos.
Yo creo que al programar pasa lo mismo que al escribir. Cuando uno
empieza a escribir,
hay dos posibilidades: o está convencido de que todo lo que escribe es
excelente
y se lo da a leer a familia y amigos, y no tiene autocrítica (y
generalmente escribe mal)
o, el otro extremo, está convencido de que todo lo que escribe es
basura, también se
lo da a leer a la familia y amigos pero interpreta que sus críticas
están torcidas porque
lo quieren y no le ven los defectos. Corrige y corrige veinte veces lo
mismo (a veces estropeándolo).
Con suerte, con tiempo, con práctica y probablemente con un buen taller
literario donde
pueda interactuar con otros en su situación y un poco mejor, se puede
llegar a un equilibrio
con un saludable nivel de crítica, una buena apreciación de la calidad
de lo que escribe
y hasta dónde conviene mejorarlo.
Casi siempre que leemos código, incluso el nuestro (o sobre todo el
nuestro) encontramos
cosas para mejorar. Tienen que pasar muchos años de uso y muchas
revisiones para que
no quede algo por mejorar en una pieza de software.
No te preocupes entonces si lo que escribís no está del todo correcto,
ya pasarás de nuevo
por ahí y lo escribirás mejor cuando haya más tiempo, más ganas o la
necesidad te lleve.
No te preocupes por el estilo OO. Para empezar, si usás Smalltalk, el
estilo es otro.
OO es "orientado a objetos"; en Smalltalk no estamos orientados, usamos
objetos.
Eso hace que la mayoría de las cosas que dicen los libros (que sí están
orientados)
no se apliquen exactamente así.
Por otro lado, vos tenés un estilo OO "en tu cabeza", imaginado.
Distinto es cuando
trabajás con un equipo y el equipo tiene un estilo, pero tratar de
satisfacer las expectativas
de lo que imaginás que es la "buena programación con objetos" con poca
experiencia,
no tiene mucho sentido.
Mientras sigas trabajando solo, practicá mucho. Escribí la misma cosa
de dos o tres maneras,
si no te gusta. Probá cada una, cómo impacta en el resto, cómo encaja y
elegí la que
te deje trabajar más cómodo. Las correcciones no deberían venir de un
prurito de corrección
ímaginaria, sino por necesidades de uso. Es tu código, vos tenés que
convivir con él y te tiene
que quedar cómodo. Tiene que permitir y alentar tu desarrollo, es una
herramienta de exploración.
Por supuesto, hay una parte estética también, pero eso es algo que
tarda en desarrollarse.
> No sé si le pasa o les pasó a todos los que trabajan con objetos o
si
> se lo plantean.
Sí, a todos nos pasa en algún momento. Ojo, que también es bueno
escuchar las alarmas:
muchas veces, cuando "sentimos" que algo no está del todo bien, cuando
hay una pequeña molestia,
un pequeño ruidito, nos advierte de algo malo en el diseño. Pero si no
podemos determinar en
ese momento qué es o cómo corregirlo, es mejor dejarlo para más
adelante y no obsesionarse.
> Seguramente esto tiene que ver con la experiencia y los años de
> trabajar con ST.
No sé, creo que el sentimiento aparece siempre y lo que te da la
experiencia es más cancha
para ver cuándo conviene darle bola y hacer algo al respecto (y cómo) y
cuando no.
Saludos
--
carlos e. ferro* *| senior developer* *| *caesar systems *| *see
clearly. decide smarter.*
ceferro@... <mailto:ceferro@...>
| t:
+1.281.598.8790 | t: +54.11.4389.0126 | www.caesarsystems.com
<http://www.caesarsystems.com/>
**This message and any attached documents contain information from
Caesar Systems LLC that may be confidential/trade secret and/or
privileged. If you are not the intended recipient, you may not read,
copy, distribute or use this information. If you have received this
transmission in error, please notify the sender immediately by
telephone or by reply e-mail and then delete this message.