Thursday, February 19, 2009

Descripción del proceso de aprendizaje: de "Novato" a "Experto"

Level 0: I overcame obliviousness
I now realize there is something here to learn.

Level 1: I overcame intimidation
I feel I can learn this subject or skill. I know enough about it so that I am not intimidated by people who know more than me.

Level 2: I overcame incoherence
I no longer feel that I’m pretending or hand-waving. I feel reasonably competent to discuss or practice. What I say sounds like what I think I know.

Level 3: I overcame competence.
Now I feel productively self-critical, rather than complacently good enough. I want to take risks, invent, teach, and push myself. I want to be with other enthusiastic students.

Obtenido de http://www.codinghorror.com/blog/archives/001226.html, que a su vez lo extrajo de una "Google conference" de James Bach http://video.google.com/videoplay?docid=6852841264192883219

Monday, February 2, 2009

DDDD, un paso adelante

Distributed Domain Driven Design me está pareciendo la arquitectura más completa y realista. Tiene una respuesta (en forma de patrón) para cada aspecto, y no permite que la arquitectura implique una seria afectación de la eficiencia, como es el caso del DDD que he venido aplicando hasta ahora.

El fórum de discusión es muy activo, y Udi Dahan y Greg Young aclaran todas las dudas con muchísima seguridad y lógica.

Estoy entusiasmado con esta nueva opción. Este es mi resumen:

From Udi:

"The problem is thinking about the form as editing the underlying entity.
Think of the form as the way the user tells the system which task they wish to perform.
A command from the user.
Push that command down through your architecture."

"No manipulating domain objects directly on the client in a distributed system.
Changing data involves sending a command to a “service” (not SOA)."

"Even if you went to the server, right then and there, and got the most up to
date data, a second after the user looks at it - it's already stale.
Somebody else may have changed it - unless you're doing pessimistic locking."

"Just use Guids to identify your entities and you’re all set in terms of correlation – no need to wait for the server to give you an Id back."