Libro: Clean Code

Hace mucho que no comento libros. Lo más curioso es que el libro que os traigo hoy siempre fue, en mi cabeza, el primero que debí haber traído. Esa fue la idea originalmente, pero después decidí omitirlo porque, aplicado al desarrollo de puro X++ no tenia tanto sentido. Lo tenía, de hecho, pero sólo podía apreciarse después de leerse el libro, así que era un mal aliciente para fomentar su lectura.

“You are reading this book for two reasons. First, you are a programmer. Second, you want to be a better programmer. Good. We need better programmers.”

Sin embargo me he visto últimamente consultándolo a menudo (y otros que comentaré también) al pensar e investigar sobre Dynamics 365 for Finance and Operations, el nuevo modelo de Extensiones, y el esfuerzo que el equipo de producto está haciendo para hacer el sistema más “extensible“. Os lo resumo: están haciendo el código más limpio, más Clean Code, porque el código limpio es extensible por definición:

Así que me viene al pelo, por fin, hablar de este libro (está traducido como Código Limpio, aunque es más caro que el original en inglés):

La verdad es que es difícil comentar este libro porque prácticamente cualquier desarrollador en cualquier tecnología debería leerlo antes de hacer ninguna otra cosa. Si tienes unas pocas horas de formación al año, leer este libro es probablemente la mejor inversión de ese tiempo, sea cual sea el lenguaje o la plataforma para la que desarrollas, y eso incluye por supuesto Microsoft Dynamics y en particular X++ (y sobre todo en la nueva versión).

El libro trata todos los aspectos de la tarea de escribir código de manera profesional (esto es, código que debe ser mantenido, actualizado, ampliado y rentable), como el propio Martin (también conocido como Uncle Bob) escribe:

“One difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand.

Sobre todo la primera parte cubre todos los niveles de la tarea de escribir código que sea fácil de entender (y por tanto, de mantener). Esto es muy importante porque es la base para que después funcione la técnica de extensiones (que hemos heredado de C#):

“Functions should do one thing. They should do it well. They should do it only.”

Incluye todos los aspectos del código, incluyendo los comentarios:

“Redundant comments are just places to collect lies and misinformation.”

Y también los test, acuñando términos como los Clean Tests: F.I.R.S.T (Fast, Independent, Repeatable, Self-Validating, Timely). Durante este recorrido, el texto va profundizando en la forma de pensar que después nos llevara a conceptos más complejos como los patrones de diseño, o los principios del diseño orientado a objetos como S.O.L.I.D.

Si has leído la documentación sobre Extensiones en Dynamics 365 for Finance and Operations, te sonarán al menos dos de esos principios: la O (Open-Clossed Principle) y la L (Liskov Substitution Principle). Tanto si te suenan como si no, pásate por el Dynamics Saturday de Madrid el 19 de Mayo porque hablaremos de ellos y de más cosas interesantes 🙂

También profundizaré sobre estos principios y patrones en los próximos artículos de este blog y el de mi departamento en Microsoft: Dynamics AX in the Field.

Stay tuned!

Libro: Desarrollo en Microsoft Dynamics AX 2012

Estoy muy ilusionado de poder anunciar el proyecto en el que he estado trabajando este último año, causa principal (probablemente no la única) de que haya publicado con menor intensidad en el blog. Se puede adquirir ya mismo el libro “Desarrollo en Microsoft Dynamics AX 2012“, publicado por Krasis Press en su “colección de las frutas” 🙂

PORTADA Desarrollo en Microsoft Dynamics AX 2012

Es el único libro del mercado escrito en castellano sobre desarrollo en Dynamics AX en general, y también lógicamente sobre desarrollo en AX 2012. Además, está actualizado con las novedades de la reciente versión AX 2012 R3.

Está escrito de manera didáctica y progresiva, de manera que sirve tanto como manual para aprender a desarrollar en Microsoft Dynamics AX, así como de manual de consulta o material de referencia para desarrolladores con experiencia, para buscar algún aspecto concreto utilizando el índice (muy detallado) y el glosario de términos. El índice, el glosario y los dos primeros capítulos se pueden descargar  GRATIS desde la página de compra, además del prólogo que debo agradecer a Salina Marí, de Microsoft.

Se puede adquirir en versión impresa (gastos de envío incluidos en el precio!!) y también en formato electrónico para leer en cualquier dispositivo, en cuyo caso se descarga inmediatamente tras la compra. Esta última quizás sea la mejor opción para los amigos de latinoamérica, que me consta son muchos y fieles 😀

Se puede comprar en los siguientes enlaces:

Si lo has comprado, estaré muy agradecido de recibir cualquier comentario al respecto por cualquiera de las vias habituales (twitter, linkedin, comentarios del blog, etc.) o bien en portales específicos como:

Si tienes dudas sobre el contenido descarga GRATIS los primeros capítulos en la página de compra.  Recuerda, es el único libro sobre desarrollo en AX 2012 en español. Espero sinceramente que puedas adquirirlo, que el contenido te permita mejorar y aprender, y que después me cuentes tu opinión para seguir mejorando.

Libro: Microsoft Dynamics AX 2012 R2 Services

Después de un parón en la publicación de contenidos, debido a un gran proyecto que verá la luz en los próximos días/semanas, vuelvo a la carga con la revisión de un libro escrito por Klaas Deforche y Kenny Saelen y publicado por Packt Publishing, quienes me han echo llegar una versión digital. Tiene este aspecto:

Microsoft Dynamics AX 2012 Services

Este libro es una especie de segunda parte del que ya mencioné (y recomendé encarecidamente) hace algún tiempo titulado Microsoft Dynamics AX 2012 Services. El contenido es muy parecido e igual de recomendable. Esta segunda versión es más larga que el primero, por lo que abunda más en ciertos contenidos aportando más detalles, aunque el contenido en general es prácticamente el mismo, salvo algunos detalles propios de la revisión R2, que en cuanto a servicios web no son muy numerosos.

Aún así, como digo, es un libro muy recomendable, igual que lo era la primera parte. Cuenta con dos autores ya reconocidos y con la experiencia previa de la primera versión, y con un equipo de revisores de primera, así que el contenido esta bien escrito y bien estructurado, sobre un tema que es obligatorio para cualquier implantación de Microsoft Dynamics AX 2012, como son los servicios web.

Si ya compraste la primera versión, probablemente esta última no te aporte grandes novedades, salvo los detalles en los que profundiza más, y las escasas novedades de la R2. Si en su día no lo compraste, claramente recomiendo comprar esta segunda versión porque la lectura es muy interesante.

Libros: Reporting con SSRS en Microsoft Microsoft Dynamics AX 2012

Continúo con la serie de comentarios de libros sobre Microsoft Dynamics AX, y esta vez traigo dos a la vez publicados en un breve periodo por Packt Publishing sobre el reporting en Microsoft Dynamics AX 2012 basado en SQL Server Reporting Services.

Developing SSRS Reports for Dynamics AX   Microsoft Dynamics AX 2012 Reporting Cookbook

El primero, Developing SSRS Reports for Dynamics AX escrito por Mukesh Hirwani es una introducción al reporting en SSRS para AX muy completa y bien ordenada. El libro está estructurado para ser leído y es una lectura interesante para conocer todos los componentes que intervienen en este “nuevo” sistema de reporting. Entrecomillo nuevo porque, a pesar de ser novedad el uso de la herramienta desde Dynamics AX, el producto ya existía y es ámpliamente utilizado de manera independiente. Explica de manera casual algunos detalles propios de SSRS y explica de manera bastante clara los componentes que se han agregado en AX 2012 para posibilitar y facilitar la integración.

El otro es Microsoft Dynamics AX 2012 Reporting Cookbook escrito por Kamalakannan Elangovan (y recientemente actualizado para R3) es un libro de “recetas“, también interesante, aunque de utilización diferente. Este libro entra en menos detalle teórico sobre los componentes, pero baja muy a lo práctico detallando de manera muy práctica casos que sin duda se nos dan en el día a día de la elaboración de informes. Es un libro para tener cerca cuando se trabaja con informes para ir a consultar propiedades o trozos de código que son muy reutilizables y prácticos.

Si tuviera que elegir sólo uno creo que me quedaría con el segundo pero lo cierto es que leerlo sin conocer antes ciertos conceptos previos es complicado así que para una buena formación en reporting los leería los dos, por ese orden, que es lo que acabo de hacer 😉

Más comentarios sobre libros aquí.

Libro: Extending Microsoft Microsoft Dynamics AX 2012 Cookbook

Vuelvo a la serie de comentarios de libros sobre Dynamics AX y tecnologías relacionadas, con uno escrito por Murray Fife (conocido por su blog y sobre todo por su cuenta de Slideshare) y publicado por Packt Publishing recientemente, quienes amablemente me lo han hecho llegar.

El libro en cuestión se titula Extending Microsoft Dynamics AX 2012 Cookbook. A pesar del título, es importante comentar desde el principio que este NO es un libro sobre programación. Yo pondría como potenciales lectores de esta obra a consultores de integración, preventa y consultores técnicos que quieran conocer las diversas tecnologías que permiten integrar Microsoft Dynamics AX 2012 con sistemas externos como Microsoft Office, Sharepoint, WorkFlow Foundation o cualquier aplicación mediante Servicios Web (ya comenté un libro especializado en este tema concreto).

Extending Microsoft Dynamics AX 2012 Cookbook

El subtitulo elegido por Packt en la portada es un estupendo resumen del contenido en general del libro. Es una guía eminentemente práctica sobre las maneras de ampliar la funcionalidad de Microsoft Dynamics AX 2012 integrándolo con sistemas externos utilizando tecnologías de Microsoft, entre las que se incluyen:

  • Integración con Sharepoint, por ejemplo para tareas de gestión documental, enlace de funcionalidades como Sharepoint My Sites con los Role Pages de Dynamics AX, etc.
  • Integración con WorkFlow Foundation.
  • Integración con Microsoft Office Word y Excel para la creación de informes desde plantillas, y con Outlook para sincronizar contactos y tareas.
  • Integración con las herramientas de Business Intelligence para la creación de reports y scorecards mediante PerformancePoint.
  • Integración con herramientas de comunicaciones como Microsoft Lync.
  • Integración con la seguridad de Windows Server mediante Active Directory para el acceso a determinadas carpetas.
  • Integración con sistemas externos mediante web services.

Una lectura rápida y agradable para conocer integraciones desconocidas para la amplia mayoría de la comunidad y que añaden un potencial enorme a la funcionalidad estándar del producto sin requerir apenas modificaciones desde el estándar. Sólo en un par de capítulos se incluye código X++, el resto puede hacerse sólo con parametrizaciones.

Libro: SQL Server 2012 SQL, Transact SQL

Vuelvo a las andadas con la colección de revisión de libros con una grata sorpresa. No conocía la firma Ediciones ENI pero han tenido el detalle de enviarme una copia del libro que nos ocupa y la verdad es que ha sido una lectura muy refrescante. 

Ediciones ENI es una editorial especializada en libros técnicos y material de formación que publica en España traducciones de sus títulos originales en francés. Este libro en concreto está escrito por Jérôme Gabillaud y traducido por Ángel María Sánchez y el resultado es muy satisfactorio.

SQL Server 2012, Transact SQL - Ediciones ENI

En este libro (450 páginas, tapa blanda) se cubren con soltura todos los detalles del lenguaje SQL de SQL Server 2012 (Transact SQL o T/SQL) por lo que resulta adecuado para principiantes, como libro de referencia en cuanto a sintaxis y posibles comandos, y para refrescar las particularidades de este lenguaje introducidas en esta versión (y por desgracia algunas novedades de versiones anteriores, en mi caso).

El libro está escrito con la fluidez suficiente para poder ser leído de principio a fin, pero con el detalle necesario para utilizarlo como referencia. También creo que es válido para preparar el nuevo examen 70-461: Querying Microsoft SQL Server 2012 a un precio bastante más razonable que las guías oficiales de estudio, para quien no se las pueda permitir.