Ruby On Rails para Programadores Java

Documentos relacionados
MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Ruby on Rails: la revolución del desarrollo web

Sesión 20. MVC en ruby on rails. Luisa Fernanda Rincón Pérez

Empleo. CURSO FORMATIVO Desarrollo de portales WEB en Liferay. Coordinador Académico Antonio José Martín Sierra

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Java Avanzado Facultad de Ingeniería. Escuela de computación.

ASP.NET MVC 3 ofrece una serie de herramientas y funciones para construir una aplicación utilizando sólo la definición de los objetos del modelo.

Agenda..NET C# Laboratorio #1

Herramienta Páginas amarillas. Manual de Desarrollo

%& %)& '$!%*+ $, %%%&$ %%

Ruby on Rails. Agustín Cuenca (ASP Gems) Luis Villa (The Cocktail)

Sesión 17. FRAMEWORKS

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

FUJITSU Java Development Framework

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Modulo 11. Clases y Objetos en Java

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

Desarrollador de Aplicaciones Web Java 2do Nivel Profesor: Arón Elías HERRERA PONTE. JAVA WEB 2 do Nivel

LENGUAJES JÓVENES PROGRAMADORES

Tutorial rápido de ObjectDB

Aprender a desarrollar con JavaScript

JAVA 7 Los fundamentos del lenguaje Java

1

Curso JAVA EE

Técnico Superior en Programación con Microsoft Visual Basic 2010

Curso: Programación con Microsoft Visual C SHARP 2010.

PATRON:DAO LENGUAJE DE PROGRAMACION: JAVA IDE: ECLIPSE FRAMEWORK: STRUST2. -Permite Abstraer y Encapsular los accesos a un repositorio de datos.

Java Básico. Métodos estáticos

VISUAL BASIC.NET. NIVEL COMPLETO

Experto en Desarrollo de Aplicaciones Windows con Visual Studio 2015 C# 6

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos Introducción... 24

Curso: Programación con Microsoft Visual Basic 2010.

Developing ASP.NET MVC 4 Web Applications

Programa de actualización profesional ACTI.NET. Desarrollo de aplicaciones empresariales con ASP.NET MVC y Visual Studio 2010

040 - IFC04CM16. ACCESO A DATOS

Guía - Taller # 2 (JAVA)

Proyecto Fin de Carrera

ANEXO A: CATÁLOGO DE REQUERIMIENTOS

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Esquema de Integración Externa Aranda Versión 8.0

Arquitectura de aplicaciones

Principios de Computadoras II

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Clase Práctica Nº 1 ED 2015

Java para no Programadores

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

La Herencia: Teoría (1)

Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Tema 2. El lenguaje JAVA

Selenium RC, Selenium GRID y JUnit

Framework para el desarrollo ágil de aplicaciones

2.2.- Paradigmas de la POO

FUNDAMENTOS DE INFORMÁTICA

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

Introducción. Curso de Middleware. Práctica 6. 1 de 9

ESCUELA DE INFORMÁTICA

Sistema Automatizado para la Firma y el Estampado Electrónico de Tiempo (Safet)

Patrones de diseño. Sesión 1: Introducción y patrones básicos. Especialista Universitario Java Enterprise

Especialista TIC en Programación con Microsoft Visual Basic 2010 (Online)

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

Prácticas de Programación

Lenguaje Java Avanzado

Java para programadores

Visual Basic.net Completo

Tema: Introducción al IDE de Microsoft Visual C#.

Testing. Contenidos. Proyectos de tests. Curso 13/14

Curso: Programación con JAVA SE Estándar Edition.

Técnico Superior en Programación con Java SE Standard Edition

Instituto Schneider Electric de Formación

Curso 13/14. Desarrollo de aplicaciones Android. Testing

Ruby on Rails: Porque hay mejores maneras de cortarse las venas que escribiendo PHP

Especialidad en Programación de Sistemas con Visual C# y Objective-C

EUROPIO ENGINE LAB: FORMULARIOS WEB Y TABLAS HTML EN SOLO

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

Experto en Diseño, Programacion y Creación Web

Programación Java SE 7

Universidad ORT - Arquitectura de Software. Requisitos

Validación de normas de codificación de código java

ACADEMIA DDW TEMARIO

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Introducción n a Apache Tomcat 5.5

Symfony. Framework para el desarrollo de aplicaciones Web con PHP

Curso librerias Web 2.0. Aplicaciones Web Serv Inf UA JSON

Transcripción:

Ruby On Rails para Programadores Java

A quién va dirigida? Buenos Programadores Java Web

Ya sabes Rails MVC Programación Orientada a Objetos Convenciones sobre configuraciones

MVC Java.Configuración Rails ::Convención

Orientación a objetos Objetos, mensajes Clases Interfaces Instancias Variable/métodos de instancia Métodos/variables de clase (static)... Herencia la misma terminología

Mapeo O/R Active Record JDO, Hibernate, Toplink... Envoltura sobre filas de BD Encapsula el acceso a BD Métodos de clase para obtener instancias

Testing Usas Junit? Con Rails podrás hacer: Tests unitarios (modelos) Tests funcionales (controladores) Test de integración (acciones) Rails incluye el mejor entorno para testing del 'mercado'. Sin discusión.

Ayuda para tareas de desarrollo? Usas Ant? Usarás Rake sin problemas

Resumen Todas las convenciones que asume Rails te parecerán naturales. Rails te proporciona mecanismos simples para las funcionalidades de las herramientas Java que estás acostumbrado a usar. Rails agrupa funcionalidades que estas acostumbrado a encontrar por separado.

No sabes Ruby Rails no podría existir sin Ruby Rails 'hereda' de Ruby su elegancia y simplicidad Ruby es un lenguaje dinámico orientado a objetos Si llego desde Java qué diferencias me voy a encontrar?

Ruby: Tipado dinámico Java: int x=2; x=x^100; System.out.println(x); => -831846303 (!) Ruby: x=2 x.class => Fixnum x=x**100 => 1267650600228229401496703205376 x.class => Bignum

Ruby: No hay tipos básicos! Java: String.valueOf(33); Integer.parseInt( 33 ); Ruby: 33.to_s => No wrappers! 33.to_i 11.zero? 7.class => Fixnum 6+2 6.+ 2 6.+(2)

Ruby: Todo son objetos Java: null => Referencia erronea a un objeto Ruby: x=nil x.nil? => true x.class => NilClass No NullPointerException!!

Ruby: Manejo simple de Fechas Java: Date fecha = new GregorianCalendar(2006,11,25,16,0).getTime(); Ruby: 2006-11-25 16:00.to_time Java: new Date(new Date().getTime() - (30*60*1000)) RoR: 30.minutes.ago

Ruby: Simplicidad de código Java: Ruby: getter/setter se generan automáticamente

Ruby: Contenedores Java: Arrays Collections Framework: ArrayList Stack List HashSet HashMap... Funcionalidades repartidas (Clases, Interfaces, Metodos estáticos...) Ruby: Array Hash Set a[1]=x h[a]=b Todas las funcionalidades es un solo contenedor.

Ruby: Iteradores Java: for (Enumeration e=parent.getchildren(); e.hasmoreelements(); ) { Element child = (Element)e.nextElement(); } Ruby: // Hacer algo con child parent.each_child { child } # Hacer algo con child

Ruby: Asignación múltiple Java: int a=2; int b=3; Ruby: a=2 b=3 int aux; aux = a; a = b; a,b = b,a b = aux; titulo, autor = Libro.getInfo

Ruby: es (muy) Dinámico Puedo añadir métodos a CUALQUIER clase ( y en CUALQUIER momento) class String def spanish? include? ñ end end Du hast mich.spanish? => false

Ruby: No hay interfaces No hay herencia de interfaz Y si necesitamos tener métodos comunes? Módulos Agrupación de métodos Un módulo no se instancia Se incluyen en las clases (include) Se convierten en metodos de instancia

OK. Qué consigo a cambio? Menos código No XML innecesario No aprender lenguajes de configuración de apps Acceso fácil a buenas prácticas: Test, REST,... Menos sufrimiento Comunidad efervescente ++ PRODUCTIVIDAD

ENSÉÑAMELO!!

Ejemplos de tareas comunes No hacer nada Mapear una tabla de BD Hacer una consulta a BD Crear un archivo XML Añadir filtros a una petición web Hacer una llamada Ajax

Un programa que no hace nada Java: Ruby On Rails:

Mapeo O/R Java: Ruby On Rails:

Consultar la Base de Datos Java: Ruby On Rails:

Crear un archivo XML Java: Ruby On Rails: Método.to_xml!

Añadir un filtro Java: clase Filter, dofilter, xml Ruby On Rails:

Realizar una llamada Ajax Java: Ruby On Rails:

EXTRAS: Migraciones RJS irb

Migraciones Control de versiones de la BD No utiliza SQL, utiliza Ruby!

RJS Plantillas Javascript No se programa en JS sino en Ruby!

irb: interactive ruby Consola de ejecución Acceso a todas las clases de la aplicación Rails

Resumen Transición fácil Aumento de la productividad Haz feliz al carbono, no al silicio!

Gracias! Licencia: Este documento se presenta bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike, versión 2.5. Es decir, se puede copiar, distribuir o crear trabajos derivados bajo las siguientes condiciones: * Atribuir el crédito al autor original (Juanjo Bazán @ www.kflink.com ) * No utilizar este trabajo para usos comerciales. * Distribuir cualquier trabajo derivado usando esta misma licencia. (Detalles en: http://creativecommons.org/licenses/by-nc-sa/2.5/ ) License dudas? jjbazan@kflink.com