viernes, 30 de octubre de 2009

Cuarto Podcast de la CDSA

Nos hemos divertido mucho, como en todas las reuniones de la comunidad hablamos sobre muchas cosas como, Patrones de Diseño, Frameworks de Desarrollo, Herramientas para desarrollar videojuegos y Muchas cosas mas.

CDSA PODCAST 4 [Sesión del 29 Oct 2009]



mp3

Esperamos tus comentarios !!!


Producciones  @runaperdida

viernes, 23 de octubre de 2009

Domain Driven Design Parte 2

 En la entrada anterior de este tema intente aterrizar algunas ideas respecto a lo que es el dominio, Aprovechando la reciente reunión de la Comunidad seguiré con el asunto.

Quedamos que el dominio es aquella situación del mundo real en la que el software llegara a aportar algún aspecto de mejora.


El dominio es el ambiente natural donde se desenvuelven los usuarios potenciales de nuestro software.

Un experto del Dominio es aquella persona que a desarrollado suficiente conocimiento acerca del Dominio que sabe cómo funciona éste y sabe operarlo, hacerlo funcionar.

Como desarrolladores de software enfrentamos el hecho de tener que aprender a comunicarnos con expertos de diversos Dominios, incluso siendo nosotros mismos especialistas en el Dominio del desarrollo de Software.



Hay un "choque de dominio"s en el momento en el que el Desarrollador-Analista esta frente a frente al Experto de algun Dominio.

Se da un choque entre el Experto del Dominio y el Desarrollador que debemos aprender a resolver mediante una de las recomendaciones de DDD y consiste en construir un Lenguaje Ubicuo.

Pero se me acabo el tiempo, eso lo veremos en la próxima entrada de este blog.

Saludos.

martes, 20 de octubre de 2009

Tercer Podcast de la Comunidad

En esta ocasion nuestro compañero @xlarsx nos hizo una presentación introductoria del framework Python

CDSA PODCAST 3 [Sesión del 15 Oct 2009]



mp3

La presentación usada en el podcast : pdf

Esperamos tus comentarios !!!




Producciones  @runaperdida

martes, 13 de octubre de 2009

Segundo Podcast de la Comunidad

Aqui les ponemos la grabación de la segunda reunion, hablamos sobre silverlight, saludos a todos...


CDSA PODCAST 2 [Sesión del 8 Oct 2009]


mp3


Esperamos tus comentarios !!!

Producciones  @runaperdida

martes, 6 de octubre de 2009

Domain Driven Design Parte 1

Empezaremos una serie de artículos relacionados con Domain Driven Design, con la finalidad de introducir al tema del desarrollo de software a todos aquellos que quieran mejorar sus técnicas de desarrollo, o bien actualizarse con técnicas de primer nivel o incluso aprender a programar.

Empecemos por reconocer que hacer software es un Arte por lo cual no puede ser definido por teoremas y formulas en su totalidad, existen componentes “no exactos”. Sin embargo podemos descubrir principios y técnicas útiles para ser aplicadas en el proceso de construcción de software, pero probablemente nunca podremos establecer la ruta exacta que va desde un requerimiento del mundo real hasta el código que lo resuelve. De alguna manera el software siempre tendrá ese toque especial de quien lo codifica o lo diseña.

Durante los ultimo 20 años el diseño de software ha evolucionado notablemente y una de sus últimas cristalizaciones es el denominado Domain Driven Design (DDD) [1].
Para introducirnos al tema de DDD el primer concepto que hay que incluir en nuestro vocabulario es el de dominio.

¿Qué es el Dominio?

El dominio es toda aquella situación del mundo real que se pretenden mejorar, automatizar o solucionar. Estos procesos de negocio o problemas del mundo real en general, son el motor que mueve al desarrollo de software.
Esto es muy importante porque se refiere a que hacemos software porque queremos solucionar problemas del mundo real, porque queremos contribuir a los objetivos de una sociedad, empresa, familia, etc. Es decir el software es útil porque busca integrarse a los procesos de la vida cotidiana y facilitar o mejorar la forma en cómo se hace actualmente. Así que el diseñador de software debe aprender a estar en contacto con esa realidad!
Aquí cabe que nos preguntemos: ¿Como diseñadores y desarrolladores de software estamos en contacto con la realidad que nos rodea?

En los siguientes artículos, profundizaremos en temas que nos permitan ir modelando ese dominio para convertirlo en una solución de Software.

Saludos.


[1] .-Para una referencia completa ver el libro de Eric Evans “Domain-Driven Design: Tackling Complexity in the Heart of Software”, publicado por Addison-Wesley, ISBN: 0-321-12521-5.
Así como una introducción al tema en el Libro gratuito: “Domain Driven Design Quickly” de Abel Avram, en el cual se basan estos comentarios.

sábado, 3 de octubre de 2009

JDK7

Ya se acerca la salida del tan esperado JDK 7 por parte de Sun, les recomiendo ampliamente el siguiente enlace donde se tratan los 5 puntos que más sobresalen para este gran lenguaje de programación.


Por parte del destacado Programador y Arquitecto de Software Danny Coward

Enlaces de Interés:

Saludos

Primer Podcast CDSA

Si quieres enterarte de lo que hablamos en la segunda reunión de la Comunidad de Desarrolladores de Software de Aguascalientes. Aquí esta el primer podcast:



CDSA PODCAST 1 [Sesión del 1 Oct 2009]


mp3


Esperamos tus comentarios !!!

Producciones  @runaperdida

viernes, 2 de octubre de 2009

Propuesta de logo para CDSA


Silverlight 3

Aqui esta una liga a una Conferencia SilverLight 3 FireStarter en el cual vienen distintos videos sobre las capacidades de silverlight 3 y las herramientas para su uso, como Expression Blend 3, espero les sirvan de mucho para darse una idea de lo que se puede hacer con esta tecnologia

jueves, 1 de octubre de 2009

Detalles sobre el taller de hoy...

Hoy hablaremos sobre temas comunes a cualquier tecnología web independiente del lenguaje y aspectos particulares.

Son temas a nivel introductorio pero muy necesarios para que en siguientes sesiones profundicemos en frameworks como Grails, ASP.NET, Ruby on Rails, Java Server Faces y otros que puedan ser de interés:
  • MVC
  • I18N
  • ORM
  • TESTING
  • TEMPLATES/VIEWS
Nos vemos en la tarde!!!

martes, 29 de septiembre de 2009

Reunión del 1 de Octubre

Hola amigos aqui esta la agenda propuesta para el próximo jueves 1 de Octubre!!!

domingo, 27 de septiembre de 2009

Diseño Dirigido por el Dominio

En la Comunidad de Desarrolladores de Software de Aguascalientes profundizaremos en aspectos clave del desarrollo de software, buscando conocimiento aplicable a múltiples lenguajes y tecnologías. Uno de esos aspectos clave es el llamado Diseño Dirigido por el Dominio (DDD) el cual tiene dos premisas:
  1. Qué el diseño de dominios complejos debe basarse en un modelo.
  2. Qué para la mayoría de los proyectos de software el enfoque principal se debe basar en el dominio y la lógica del dominio, en oposición al uso de una tecnología en particular para su implementación. [1]
En la próxima reunión de la comunidad comentaremos más detalles sobre la aplicación de este enfoque para el desarrollo de software.

Puedes ir leyendo este libro para empezar: http://www.infoq.com/minibooks/domain-driven-design-quickly.

Saludos Amigos!!!

Paradigma Orientado a Objetos

Como Desarrolladores de Software requerimos construir software adaptable al cambio, capaz de evolucionar fácilmente a la par de la empresa o proceso a la que da servicio.

El problema principal del software es la complejidad que le es inherente. Esta complejidad esta dada por:
  • Siempre es parte de otros sistemas, por consecuencia hereda su complejidad.
  • Es de naturaleza abstracta.
  • Es el resultado de una actividad intelectual.
Toda esta complejidad la podemos enfrentar con:

  • Descomposición: "Divide y vencerás", dividir un problema en varios subproblemas más sencillos de solucionar.
  • Abstracción: Simplificar la visión que tenemos de un objeto complejo, ignorando las características no relevantes al problema, enfocando nuestros esfuerzos en las características esenciales.
  • Generalización: Clasificando los objetos en grupos de abstracciones relacionadas, podemos distinguir explícitamente las propiedades comunes y distintas de diferentes objetos.

Ante esta problemática resurge el paradigma orientado a objetos como una solución al problema de la complejidad del software.

Los conceptos del paradigma orientado a objetos tienen sus orígenes en un lenguaje creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo, a finales de los 60’s, pero el impacto de estas ideas se sintió a principios de los 80’s, con la llamada “crisis del software” cuando hubo la terrible necesidad de modificar monstruosas cantidades de código, que iban del orden de los miles ó mucho más.

El Paradigma Orientado a Objetos enfrenta el problema del desarrollo de software desde la perspectiva humana de la comprensión de problemas a diferencia de los otros paradigmas que lo enfrentan desde el punto de vista de la computadora. Entonces este paradigma ofrece las herramientas para “modelar problemas”, que permiten usar la comprensión natural de las situaciones que se quieren sistematizar. Este paradigma pone atención en objetos, atributos y comportamientos de los objetos.

Aprovechando concepciones semánticas desarrolladas desde el preescolar esto es:





Existe un concepto que no parecería tan natural pero que es fundamental en el paradigma orientado a objetos, este es el de la abstracción. Esta ha sido una herramienta fundamental de la mente humana para resolver problemas altamente complejos como lo hace el desarrollo de software, que en pocas palabras significa, eliminar todo aquello que no sea significativo para la resolución del problema, por ejemplo en el programa que realiza café, puede no importarnos la marca de la taza donde se sirve o la cantidad de moléculas que la conforman, a lo más lo que nos interesaría sería su capacidad en mililitros. Todo un concepto que puede llegar a ser muy complejo como el del objeto taza, se transforma en un objeto que tiene un solo atributo que es capacidad. El diseño final quedaría representado por la siguiente estructura: