martes, 20 de mayo de 2014

Game Programming Patterns aplicado a aplicaciones de negocio.

Después de leerme el estupendo libro Game Programming Patterns, el cual recomendé encarecidamente a todo programador que se precie, voy a trasladar la aplicación de muchos de los patrones que se tocan en el libro a casos de aplicaciones de negocio.





Este patrón es aplicable a cualquier interfaz de usuario.

La característica principal de este patrón en aplicaciones de negocio es el soporte para "deshacer". Al tener guardado los comandos ejecutados en una pila LIFO es muy sencillo recuperar el último comando y deshacerlo.

Otras ventajas son:
  • Disponer de una interfaz común que permite la invocación de forma uniforme.
  • Facilidad de extender el sistema con nuevo comandos.
  • Construir cadenas de comandos.
  • Facilitar la grabación y reproducción de macros de UI.
  • Ayuda a adoptar Command Query Responsibility Segregation en la arquitectura. 

Poco hay que decir de este patrón. Ahorrarse memoria creando indirecciones a recursos comunes siempre es algo que hay que hacer en una aplicación que posiblemente pueda llegar a tener miles de usuarios a la vez.


Un patrón perfecto para los Modelos de Vista, Controladores y enlace a datos para la UI. También es perfecto para los Eventos de Dominio.

Lo mejor que se puede usar para el change-tracking de las entidades si estás implementado tu propio ORM.


Nada nuevo que decir. Estoy totalmente a favor de Bob Nystrom. Leete el capítulo. Los contenedores de inyección de dependencias han convertido los singleton en obsoletos y no encuentro la necesidad de utilizarlos.


Máquinas de estados finitas. Múltiples usos en una aplicación de negocio. Cualquier secuencia de estados en una UI o en una entidad (sea persistida o no) puede aprovecharse de una máquina de estados. En verdad, cualquier código en el que tengamos un buen montón de if's o switches suele ser una máquina de estados rudimentaria y prácticamente todos los programadores la hemos usado. Lo bonito de este capítulo es la implemtación de esta máquina de estados para no repetir código y conseguir un bajo acoplamiento.

Continuaré con el resto en otra futura entrada.

No hay comentarios:

Publicar un comentario