domingo, 14 de septiembre de 2008

"Las cruzadas vistas por los árabes" por Anim Maalouf

Enlace en una tienda web (no está disponible en Amazon): abebooks.com

El ISBN del libro es: 84-487-0636-6

Este libro narra la historia de las cruzadas (1096-1291) basándose en los testimonios y descripciones de historiadores árabes. Ha sido muy interesante conocer esta parte de la historia prácticamente ignorada en las clases de Historia de todos los niveles de enseñanza desde la primaria hasta el pre.

Aún lo estoy leyendo.

jueves, 31 de julio de 2008

"Applying Domain-Driven Design and Patterns" de Jimmy Nilsson

Enlace en Amazon

Me lo estoy leyendo en estos momentos, y parece muy prometedor. En las primeras páginas ya me ha dado seguridad en muchas de las cosas que he estado implementando con DDD, me ha aclarado dudas.

Algo que me parece muy importante es que el autor explica su proceso de pensamiento, lo que creo que es la mejor manera de enseñar a alguien.

Actualización:

- No propone una arquitectura definitiva.
- Se muestran varias soluciones a los problemas y me ha servido para ver que otros arquitectos y desarrolladores se encuentran con las mismas dificultades, y que las soluciones a las que llegan son similares.
- Tengo que estudiar con más profundidad el patrón de "Domain Rules" que se comenta. Parece muy útil para resolver el problema de reutilizar las reglas de negocio en varias capas.

jueves, 10 de julio de 2008

"Domain Driven Design: Tackling complexity in the heart of software" de Eric Evans

Enlace en Amazon

Trascendental. Aclara y guía en muchos aspectos de la construcción de software en los que habían demasiados agujeros.

Tengo que extenderme más en este post, el libro es realmente importante y me gustaría resumirlo aquí como un ejercicio individual de comprensión.

lunes, 19 de mayo de 2008

"The inmates are running the asylum" de Alan Cooper

Enlace en Amazon

El libro trata sobre la mala calidad de la interacción entre humanos y tecnología en general partiendo de la base de que "tecnología" significa computadoras (ordenadores).

Me lo estoy leyendo en este momento...

"1984" de George Orwells

Enlace en Amazon

Excelente continuación de Animal Farm. Se adentra un poco más en la motivación y los mecanismos utilizados por aquellos que están en el lado del poder, los que saben lo que está pasando.

No comparto la opinión de que haya tanto desconocimiento entre los que gobiernan y que lo hagan sólo porque crean que hacen lo correcto, pero sí de que el objetivo primordial es mantenerse en el poder.

Me encanta el análisis de la historia de la humanidad hecho. No es históricamente estricto y no es aplicable en general, pero da muchísimo en qué pensar. No soy historiador ni filósofo ni leo demasiado sobre esos temas así que pudiera ser que haya puntos de vista y análisis más interesantes y estrictos sobre lo mismo, pero no los conozco.

El hecho de que se defina que siempre han habido 3 clases: poderosos, sirvientes y manipulados, y no sólo 2 como me habían enseñado tan bien: explotados y explotadores, ha sido toda una revelación para mi, como también lo es la forma en que esas 3 clases interactúan y sobre todo, la forma en que los manipulados no cambian nunca y que siempre son los que peor viven, quizás merecidamente.

"Coder to Developer: Tools and Strategies for Delivering Your Software" de Mike Gunderloy

Enlace en Amazon

Comentario en Amazon: Pendiente de publicar. Recordar copy&paste.

"Refactoring: Improving the Design of Existing Code" de Martin Fowler

Enlace en Amazon

No puede compararse la importancia de este libro con "Patterns of Enterprise Application Architecture" pero aún así es un libro que me alegro de haber leído.

Siguiendo el estilo del autor, brinda muchos consejos basados en su experiencia sobre cómo debe afrontarse un proceso de refactorización, cómo valorar si vale la pena refactorizar y la importancia que tiene refactorizar el código sobre la marcha.

Yo me permito añadir a sus consideraciones que la refactorización es mucho menos importante cuando la calidad del código que se está generando no representa un valor añadido. Este es el caso de la mayoría de proyectos hechos por consultoras para clientes externos, al menos según el modelo que se utiliza en España.

En este tipo de proyectos, mi experiencia indica que los desarrolladores "rasos" deben limitarse a hacer refactorizaciones a nivel de métodos, y que sólo el arquitecto o alguien con una visión global de los objetivos de la aplicación y con un excelente juicio sobre el impacto en el proyecto deben acometer una refactorización más compleja.

Como regla general, las refactorizaciones deben estar orientadas a lograr una disminución de la complejidad del proyecto y a un adelanto de la fecha de terminación.