Greach 2013

Todo lo que me hubiera gustado saber cuando empecé a desarrollar con Grails

Iván Lopez  · 

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

soy un drop es martín y lo mar en twitter llevo trabajando con grace y con grupo tres años más o menos y con java bastantes más soy el creador de box puntocom una red social ex and grace para tener con chapas premios y penalistas a tus compañeros cuando hacen

cosas buenas y malas pero con mucho sentido del humor os recomiendo que lea probes he creado un par de planning de the grace para comunicación con tax board y para generar ice looks para urls bonitas para acceder a usuarios y demás mi equipo quedó tercero

en el hackathon dejé creex 48 y bueno soy muy geek soy padre soy linuxeros y desarrollador y soy pro software libre y books y estoy trabajando actualmente en ellos entonces bueno la agenda esto es lo que vamos a hablar vamos a ver los artefactos y los elementos

que tenemos en una aplicación rails y cómo los podemos usar realmente cuando empiezas a desarrollar un framework haces cosas normalmente hace sus cosas bien las menos hace es algunas que están bastante bien y hay muchas que haces mal entonces yo con la experiencia

de los proyectos las cosas que estaban que hacíamos mal las iba apuntando para en los siguientes proyectos decir esto lo vamos a hacer mejor esto lo deberíamos cambiar esto bueno yo creo que hemos hecho bien esto es bueno realmente que ocurre que cuando empiezas

este es tu tiempo y te pasas la mitad del tiempo buscando en google buscando soluciones buscando tus problemas google te lleva hasta coverflow te lleva a la lista great to share te lleva a muchos blogs pasas muchas noches sin dormir y al final solo tienes

eso de trabajo efectivo el resto ha sido problemas problemas y problemas entonces en esta charla yo os quiero contar mi experiencia lo que aprendo estos años para intentar convertir esta gráfica en algo así que tengáis siempre vas a tener que llegar a google

y asia cover flow que tengáis mucho tiempo libre y que además tengáis tiempo joven ahora pasan para ver porno pero por favor no lo veáis en horas de trabajo dejarlo para casa y con esto ya empezamos clases de dominio yo soy muy partidario de poner toda lógica

relacionada de un objeto en la propia clase de dominio esto tiene mucho que ver con los modelos anémicos y ricos normalmente en java tendremos mucho va a tener ojos no nuestra clase nuestros atributos de tristes y poco más todos con grades podemos tener toda

la lógica que está relacionada con un objeto en el propio objeto de tal forma que él es el que mejor sabe cómo hacer su como de bolos información si tenemos un usuario y guardamos su fecha de nacimiento y queremos calcular queremos obtener un método que nos

dé la edad de ese usuario pues qué mejor sitio que ponerlo en you ser y obtener un punto gates grace nos permite hacerse una mera muy fácil usan amerise pues lo mismo podemos tener muchas queries y mucha lógica o acceso a datos en servicios pero si tienen

que ver sólo con la con esa clase de dominio deberían estar en en américa en el propio objeto esto nos permite por ejemplo tener voz de un blog y hacer post punto que no sé los últimos diez y luego hacer un listo ordenarlos para poder usar en toda la aplicación

esto bueno no es sólo de grace pero pasa y esto lo aprendes por las malas pones un día un booleana y decides que funciona con tu iphone pero luego resulta que más adelante necesitas que sea anulable ya estás muerto tienes que usar el ons de hecho incluso se

da casos tenemos unos compañeros que con otro frívolo incluso usaron para el sexo usaron vulgar true era hombre y falso de la mujer porque y también muy muy importante en grey's tener construir personalizadas tenemos las construí normales notables el tamaño

máximo o mínimo pero podemos poner nuestros propios validador es ponerlo en el propio objeto es muy bueno porque nos permite que siempre que hagamos un save e intentamos persistir ese objeto se ejecuta ese validador y no tengamos que poner toda esa lógica

en controles en servicios y en esparcida por tu aplicación a tenemos el único sitio controladores yo soy muy partidario de no poner nada de lógica de negocio a los controladores no es su función y no se debería poner nada hace un par de meses hubo un hilo

bastante interesante la lista de dirección español y bueno se estuvieron debatiendo hay gente que pone más gente con menos pero bueno yo creo que todos llegamos al acuerdo que lo que en contra lo tiene que hacer es recibir una request verificar los parámetros

llamar a un servicio o varios que procesen esos parámetros y que hagan lo que quieres hacer que tengo los datos y finalmente devolver la respuesta puede ser renderizar una página puede ser volume jason hacer un re direct si los parámetros no son correctos

pero poco más no debería haber nada de lógica también es muy importante o es muy flex es muy útil usar como nop dietz para hacer los data mining si recibimos un parámetro solo a partir de querido cero podemos declararlo en la acción del control pero si decidís

y recibimos muchos parámetros o las validaciones muy complejas usar como no pies nos permite que el código el control que es muy sencillo recibimos un comando quiet él se encarga de hacer las validaciones y en nuestro control lo tenemos que poner si el comando

no valida hacemos algo y si no tiramos para ti sabemos que todos los parámetros se han validado y esa variación no lo hallamos a otro sitio que además permite testear la independientemente de del controlador y bueno recordar que los comandos que se pueden

heredar unos de otros entonces podemos tener en la más alto de la jerarquía un comando que con los campos mínimos ha ido especializando hacia abajo de tal forma que cuando en una acción de un controller tengamos este comando que estamos heredando y usando

todas las validaciones también los comas no tiene nos permiten repetir las mismas validaciones en distintas acciones de los controles sin tener que poner siempre recibo liu saraid y voy a base de datos si no tengo yo sería un rey directo recibo el que será

digital pues poniendo el único sitio no tenemos que copiar ese fragmento de código en todos los controles y servicios pues la lógica que no está en una clase de dominio debería estar o en un servicio también deben estar en los servicios por la lógica que implique

varias clases de dominio y cómo se interrelacionan unos con otros es necesario revisar la transaccionalidad por defecto los servicios son transaccionales pero si nuestro servicio no lo necesita lo deberíamos desactivar esto si lo dejamos activado tiene un

overhead de del framework de bernake para mantener la sesión por si hay que hacer un roll back y puede que no sea necesario de igual forma si el servicio es transaccional no deberíamos hacer un frustró al al salvar porque nos estamos cargando la transaccionalidad

entonces puede que bajamos un 6 con un susto y más adelante hay una sección y no no se hagan los ropa como nosotros queremos que se deberían hacer esto también que lo ha comentado antes en su charla creo poner los parámetros en los métodos con grupo y podemos

hacer de el nombre del método a como ven pero los en una en un servicio que está tu lógica y que está todo el core de tu negocio deberíamos ser un poco más tirar a java poner public poner el tipo que devolvemos y poner los parámetros y usher y string cuando

tenemos hay muchos casos en los que es muy sencillo con el nombre las variables se entiende claramente lo que hay dentro lo mejor poner e ipar específicamente esos campos no aporta nada pero cuando tenemos muchos parámetros cuando no queda claro cómo se comportan

ayuda mucho también ayuda a los halos ides aires que completan muy bien hay otros que no completan tanto entonces bueno si lo ponemos también también ayudan y tener en cuenta que cuando hacemos una flor en un servicio esa clase no es transaccional que igual

esto lo aprendes por las malas y bueno como último todos los servicios está muy bien porque nos proporciona muchas cosas grace nos inyecta por defecto son singleton tenemos la transaccionalidad pero puede que en algún caso no queramos todo eso nuestra la estamos

[ ... ]

Nota: se han omitido las otras 3.910 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.