Showing 2 slides

La arquitectura de MVC ofrece al M - Models (no de Manuel) como el primer componente fundamental, pero muchas veces en Rails nos olvidamos de los Modelos y hacemos que los Controllers sean gordos y pesados que tengan de hecho toda la lógica de negocios y los modelos son meramente un mapa con las tablas en la base de datos. Ese estilo y enfoque es EQUIVOCADO, ERRONEO y NO SUSTENTABLE, por lo que en esta presentación se mostraran técnicas basadas en DDD (Domain-driven design) y principios como SOLID y conacimiento (connascence) para tener un modelaje efectivo y apropiado de la realidad lo que permita tener sistemas mantenibles con intefaces claramente definidas y responsabilidades, colaboraciones y roles de objetos que den verdadero valor a nuestros clientes. Se revisará como se implementa esto en la nueva versión de Rails3 por medio de Active Model y aplicación de patrones de diseño y mejores prácticas de Ruby y de RoR

ruby activerecord bdd rails 3 arel activemodel railsmx activerelation spanish rails finders domain driven design

El BDD se presenta como una opción para poder desarrollar de forma más efectiva al permitirnos especificar los requerimientos de nuestros clientes de forma precisa y que su verificación una vez implementados sea de forma automatizada. Mejora nuestras prácticas al forzarnos a pensar en el código que desearíamos tener para satisfacer los requerimientos de nuestros clientes, esto germina en que tengamos aplicaciones mejor organizadas con APIs más claras y que implementemos a las interfaces/contratos de responsabilidad y colaboraciones entre los diversos objetos del sistema. Pero el contar con herramientas no es suficiente, el desarrollar una técnica efectiva es fundamental para que se tengan los beneficios del BDD. En alguna época los médicos no se lavaban las manos antes de una cirugía por que lo consideraban una perdida de tiempo, ahora esto es impensable. Llegará el día en que se hará impensable el desarrollar un sistema sin BDD, hagamos que muy pronto sea ese día.

ruby rails bdd rspec cucumber software development railsmx agiltec solid principles