likendIn

lunes, 17 de septiembre de 2018

Domain Driven Design




El Diseño Guiado por el Dominio (DDD) es un enfoque de diseño de software que enlaza el modelado del dominio y el diseño del software, con el objetivo de crear un modelo del dominio rico que evolucione a través de sucesivas iteraciones del diseño.

La mejor forma de entender los conceptos de este enfoque de desarrollo, es olvidar por un momento todo lo que conocemos sobre programación y pensar en el mundo real, ya que el desarrollo de software se aplica más a menudo a la automatización de procesos que existen en el mundo real. entonces, ¿deberíamos enfocarnos en el dominio del negocio sobre el cual vamos a trabajar,  para crear un buen software?, por supuesto que si!.
No podemos simplemente sentarnos y hacer código. ... bueno, podemos hacerlo, y funcionaria bien en muchos casos triviales, pero no es la manera y menos si queremos crear software complejo y de calidad. Para crear un buen software, tienes que saber lo que ese software es, y todo acerca de el.

DDD se enfoca en identificar el núcleo del dominio y la lógica del dominio, hacer un análisis del dominio de problema bajo un contexto y trabajar sobre ese contexto, trabaja con diseños complejos sobre diferentes modelos del dominio

Por ejemplo. No se puede crear un software bancario a menos que usted tenga un buen entendimiento de lo que es la banca, entonces uno debe entender muy bien el dominio de la banca, este conocimiento podría extraerse de las fuentes disponibles (libros, manuales de procedimientos de negocio,...), pero para hacerlo bien, se necesita un experto en la materia, es ahí donde es nos aliamos con un domain expert, con ellos se crea el lenguaje ubicuo, que es un término que introdujo Eric Evans en su libro sobre DDD (Domain Driven Design) como propuesta para crear un lenguaje común entre los programadores y los usuarios. Son ellos los que conocen a profundidad el dominio y nos acompañaran en el proceso de construcción del modelo de dominio.

Actualmente los sistemas de software se caracterizan por su complejidad, dinamismo y gran importancia estratégica, entonces tomar en cuenta DDD, agarra gran importancia.

martes, 17 de julio de 2018

¿Qué es Polyglot Persistence?


Polyglot Persistence o Persistencia Políglota, es un termino sofisticado y bastante interesante, consiste en el uso de diferentes tecnologías de almacenamiento de datos para dar respuesta a las diferentes necesidades de almacenamiento, no se trata de sustituir una tecnología por otra, si no de utilizar dentro de un mismo proyecto/aplicación la tecnología más apropiada para cada necesidad o tarea.


Con la persistencia políglota definimos la utilización de diferentes tecnologías de base de datos (como por ej. relacionales, clave valor, orientada a datos, documentales, etc.), dentro de un mismo proyecto.

Una plataforma de e-commerce es un ejemplo muy acertado para mostrar el uso de muchos tipos de datos como carrito de compra, inventarios, pedidos, etc.



Esto puede tener un costo en complejidad, ya que cada solución de almacenamiento de datos es una tecnología diferente y se requiere conocimientos de cada una, pero vale la pena pagar el costo.

Saludos!


miércoles, 11 de octubre de 2017

Resumen del Mobile Development Boocamp 2017


Hay días que se esperan con muchas ansias y el 30 de septiembre fue uno de ellos para mi, se llevo a cabo el "Mobile Development Bootcamp 2017" en la Universidad Privada de Santa Cruz (UPSA), es el primer evento del cual estoy a acrgo de la organización y junto a toda la comunidad que me colaboraron, lo hicimos! Fue una experiencia genial, quedan muchas ganas de aportar mucho más a la comunidad y bueno les muestro una pequeña recopilación de lo que se vivió ese día.

Orientado al desarrollo Movil

El evento estuvo orientado al desarrollo de sitios y aplicaciones Móviles, con la participación de especialistas en tecnologías Google, tales como AMP (Accelerated Mobile Pages), PWA (Progressive Web Apps), SPA (Single Page Aplication), Android, Firebase, Angular, UX/UI, entre otros.

Charlas y Codelabs

Se realizaron charlas técnicas y codelabs de capacitación en diferentes tecnologías, además de actividades de socialización, networking, concursos y premios.
Los amigos del GDGTarija vaya que supieron darle un toque genial al evento, tanto en su aporte con conocimientos tech, como en toda su buena onda!.
Se hablo también de tecnologías alterativas a los lenguajes nativos, para el desarrollo de soluciones en base a las necesidades de los clientes.
Podemos Ver la nota, que realizó el periódico El Deber.

Speakers

Se contó con la presencia de Speakers de diferentes empresas además de miembros del GDG Santa CruzGDG Tarija y GDG Cochabamba, que nos compartieron un poco de su experiencia con las diferentes tecnologías.

Presentaciones:

  • "Descubriendo Android Oreo 8.0" - Jorge Antonio Muñoz (Dualbiz S.R.L.)
  • "Desarrollo seguro de aplicaciones Móviles" - Guido Rosales (Yanapti SRL)
  • "Progressive Web Apps" ¿moda pasajera o amenaza para las aplicaciones Nativas? - Jorge Montellanos Díaz (GDG Tarija)
  • "Soluciones Efectivas para el E-Comerce" - Eduardo Sandino (Sistesis S.A.)
  • "UX Design for Mobile Developers" - Andres Jordan Zeballos (GDG Cochabamba)
  • "Apps SPA Ionic con Angular 4, una alternativa más" - Elias Franklin Negrete (GDG Santa Cruz)

Presentación de Aplicaciones

Se dieron a conocer soluciones del programa de especialidad de desarrollo de aplicaciones web, apoyadas por la alcaldía de Tarija, aplicaciones locales y aplicaciones ganadoras de nivel colegio en Santa Cruz.
La idea es mostrar lo que se está realizando #MadeInBolivia y queda mucho por mostrar.

Lo mejor del los eventos es la gente que esta ahí, la oportunidad de compartir la pasión que cada uno tiene por lo que hace, un amigo que invité, me dijo "gracias por sacarme de mi cueva de programación", fue genial escuchar eso!.


Gracias a todos los que estuvieron en el Mobile Development Bootcamp 2017 

con el #GDGSantaCruz !!!