La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Curso de introducción a Fundeweb

Presentaciones similares


Presentación del tema: "Curso de introducción a Fundeweb"— Transcripción de la presentación:

1 Curso de introducción a Fundeweb

2 Índice de contenidos ¿Qué es Fundeweb?
Eclipse como entorno de desarrollo El servidor Weblogic El lenguaje de programación Java Tipos de datos y organización de código Clases e instancias Interfaces, implementaciones y herencia Punteros y referencias Polimorfismo Recolector de basura Tratamiento de excepciones Buenas prácticas de programación. Javadoc

3 ¿Qué es Fundeweb? Framework de desarrollo de aplicaciones J2EE diseñado por MNCS y con inicio en el año 2008. Facilita el proceso de desarrollo de software. Abstrae a los programadores de las dependencias de las tecnologías que se usan. Provee de un conjunto de facilidades que adaptan el desarrollo a las características del Framework. Abstrae de la base de datos sobre la que se trabaja. Automatiza las tareas de despliegue de proyectos.

4 ¿Qué es Fundeweb? Automatiza el despliegue en servidores de desarrollo y/o producción. Provee ayudas para el control de calidad y supervisión de código. En resumen: Fundeweb es un framework de desarrollo de aplicaciones que facilita a los programadores la gestión y despliegue de proyectos. Incorpora un conjunto de tecnologías suficientes para el desarrollo de aplicaciones J2EE.

5 ¿Qué tipo de aplicaciones desarrolla?
Aplicaciones J2EE. Uso del patrón MVC. Aplicaciones de ServiciosWeb. Capa de servicios. Sin interfaz gráfica. Aplicaciones de EJB. Aplicaciones J2EE + ServiciosWeb + EJB Combinación de anteriores.

6 Índice de contenidos ¿Qué es Fundeweb?
Eclipse como entorno de desarrollo El servidor Weblogic El lenguaje de programación Java Tipos de datos y organización de código Clases e instancias Interfaces y herencia Punteros y referencias Polimorfismo Recolector de basura Tratamiento de excepciones Buenas prácticas de programación. Javadoc

7 Eclipse IDE de desarrollo de aplicaciones.
Basado en un core y un paquete de extensión o plugins. Eclipse se puede adaptar mediante la instalación de plugins a diferentes lenguajes de programación. Concentra toda la funcionalidad necesaria para que los programadores desarrollen sus proyectos. Contiene un gestor de plugins que permite instalar nuevos o actualizar los existentes.

8 Eclipse: Plugins Maven:
Permite la gestión de las librerías que requiere el proyecto. Especifica cuando se deben cargar las librerías: En Compliación. En runtime. En test. No cargar: existente en el servidor de antemano. Gestiona la construcción de proyectos. Requiere tener acceso a un repositorio Maven donde buscar las dependencias del proyecto.

9 Eclipse: Plugins Subclipse: Cliente de Subversion para eclipse.
Permite comparaciones entre ficheros locales y del servidor SVN. Ayuda a la resolución de conflictos entre ficheros desincronizados. Visualiza de manera rápida las diferencias entre nuestro contenido local y el del repositorio.

10 Eclipse: Plugins Ant: Nos permite ejecutar tareas concretas para manejar nuestros proyectos. Puede interactuar con todos los componentes de nuestro entorno: Código fuente Servidores Test Creadas tareas Ant en Fundeweb para automatizar tareas de despliegue y empaquetados de proyectos.

11 Eclipse: Plugins TestNG: Framework de testing para Java.
Basado en Junit (realización de pruebas unitarias). Permite paso de parámetros. Nos permite comprobar que nuestro código hace lo que debe. Permite Cubrir todo tipo de pruebas: Unitarias. Funcionales. End-to-end. Integración. Etc…

12 Eclipse: Plugins CheckStyle:
Permite chequear si el código programado tiene defectos de forma. Comprueba: Que se programa de acuerdo a estándares. Que el código producido sea eficiente. Que los comentarios sean correctos y adecuados. Que el código sea legible para otros desarrolladores.

13 Eclipse: Plugins FindBugs:
Chequea el código generado para prevenir errores en tiempo de ejecución. Para ello hace uso de patrones de error buscando en el código las ocurrencias de los mismos. Algunos ejemplos de comprobaciones: Null pointers. Clases no serializables cuando el contexto requiere que se serialicen. Posibles divisiones por cero. Comparaciones entre clases que no sobrescriben equals. Etc…

14 Índice de contenidos ¿Qué es Fundeweb?
Eclipse como entorno de desarrollo El servidor Weblogic El lenguaje de programación Java Tipos de datos y organización de código Clases e instancias Interfaces y herencia Polimorfismo Punteros y referencias Recolector de basura Tratamiento de excepciones Buenas prácticas de programación. Javadoc

15 Servidor Weblogic Oracle WebLogic es un servidor de aplicaciones Java EE y HTTP. Desarrollado originalmente por BEA y comprado posteriormente por ORACLE. Compatible con cualquier base de datos que se ajuste al estándar JDBC. Integra un portal web de gestión integral de los diferentes componentes. Provee plugins para Eclipse para el despliegue de aplicaciones.

16 Índice de contenidos ¿Qué es Fundeweb?
Eclipse como entorno de desarrollo El servidor Weblogic El lenguaje de programación Java Tipos de datos y organización de código Clases e instancias Interfaces y herencia Punteros y referencias Polimorfismo Recolector de basura Tratamiento de excepciones Buenas prácticas de programación. Javadoc

17 Java Lenguaje de programación orientado a objetos.
Diseñado para tener las mínimas dependencias con una implementación concreta. El objetivo es programar para cualquier dispositivo independientemente de su arquitectura. Las aplicaciones java se ejecutan sobre una máquina virtual (JVM) instalada en cada dispositivo. Actualmente Java es uno de los lenguajes de programación más extendidos cubriendo el ámbito: Web, móvil y de aplicaciones de escritorio. Importante: Java es sensible a mayúsculas y minúsculas por lo que no es lo mismo “Hola” que “hola”.

18 Java: Tipos de datos y organización de código
Java nos permite organizar el código (ficheros) en lo que denomina paquetes. En cada fichero deberemos poner en la primera línea y de manera obligatoria a qué paquete pertenece. Esta estructura es simbólica y la decide el desarrollador. El nombre del paquete ha de coincidir con la ruta en disco de la carpeta que contiene al fichero. Esta ruta será relativa al proyecto. Algunas propiedades de Java nos permiten aplicar características sobre un paquete determinado, lo que afecta a todos los ficheros que referencia.

19 Java: Tipos de datos y organización de código

20 Java: Tipos de datos y organización de código
Los tipos de datos primitivos en Java son

21 Java: Tipos de datos y organización de código
Los tipos de datos no primitivos, pero que provee Java son

22 Java: Tipos de datos y organización de código
Java provee de un tipo de dato especial llamado enumerado. Este tipo de dato provee una lista fija de valores, no variable. Se suele emplear cuando entre conjuntos de datos del mismo tipo iguales queremos representar un subtipo o bien un estado. Este tipo de dato se da de alta de la siguente manera public enum AuthenticationType { RADIUS, SSO, CARNE, DNI }

23 Java: Tipos de datos y organización de código
Java permite que nos podamos crear nuestros propios conjuntos de tipos de datos de manera indefinida. Es responsabilidad del programador analizar y decidir qué debe ser un tipo de dato y qué no. Normalmente, los tipos de datos que queramos crear, representarán entidades de nuestra aplicación o bien un registro de base de datos. Estos “tipos de datos” toman entidad propia en Java llamándose clases.

24 Java: Tipos de datos y organización de código
Los operadores Java son: Operadores Aritméticos: + - * / Operadores Incrementales = -= Operadores Relacionales > < >= <= != == Operadores lógicos && || ! Operador de concatenación de cadenas +

25 Java: Clases e instancias
Define todas las propiedades concretas de una entidad que queremos modelar. Agrupa toda la funcionalidad (métodos) que podemos ejecutar sobre esa entidad. Define relaciones entre entidades diferentes. Han de tener un método especial llamado "constructor" encargado de inicializar las nuevas clases.

26 Java: Clases e instancias
Una variable se define de la siguiente manera: Ámbito (calificativos) tipoDeDato nombre: private int numero; El ámbito puede ser: public: accesible por cualquier otra clase de la aplicación. private: sólo accesible dentro de la clase en la que se declara. protected: accesible por todas las clases que estén en el mismo paquete. Si no se indica ámbito este es el por defecto. Los calificativos (opcionales): static: se podrá acceder sin necesidad de que la clase esté creada. final: no se podrá modificar el valor. Se deberán inicializar en su declaración.

27 Java: Clases e instancias
Una método se define: Ámbito tipoDeDatoRetorno nombre (variables){} public int suma(int numero1, int numero 2){} El ámbito puede ser: public: accesible por cualquier otra clase de la aplicación. private: sólo accesible dentro de la clase en la que se declara. protected: accesible por todas las clases que estén en el mismo paquete. Si no se indica ámbito este es el por defecto. Los métodos que no devuelven valor deben tener como tipo de dato de retorno “void”.

28 Java: Clases e instancias
Un ejemplo: package action.vehiculos; public class Coche { private int puertas; private String modelo; private String matricula; private boolean tieneSeguro; public Coche() { } public int getPuertas() { return puertas; public void setPuertas(int puertas) { this.puertas = puertas; Nos indica a qué conjunto de clases pertenece Inicio de la definición de la clase "Coche" Propiedades de la clase coche Constructor de la clase coche (vacío) Método para obtener el parámetro "puertas" Método para asignar valor al parámetro "puertas" Importante: Java es "case sensitive" por lo que no será lo mismo “coche” que “Coche.”

29 Java: Clases e instancias
Nomenclartura: Las clases siempre empiezan por mayúsculas. Los nombres pueden contener letras y números pero siempre han de empezar por letra. Los métodos y variables siempre empiezan por minúsculas. Cuando un nombre contenga varias palabras, no se usan ni espacios ni guiones para separar, se pone la siguiente letra en mayúsculas public void generar_resultado() ¡Incorrecto! public void generarResultado() ¡Correcto! Adaptarnos a los estándares permite que las herramientas de terceros funcionen correctamente sobre nuestro código.

30 Java: Clases e instancias
Una clase es la definición de una entidad junto con todos sus propiedades y acciones posibles. Una instancia u objeto es cuando esa definición se transforma en una entidad concreta. Contiene por lo tanto los valores y el estado de una clase en un instante determinado. public class Coche{ private int puertas; private int tipoCombustible; } Coche{ puertas = 5; tipoCombustible=“diesel”; Ejemplo de clase Instancia de la clase

31 Java: Clases e instancias
Una clase puede contener variables que sean otras clases. Desde una clase se puede llamar a los métodos de cualquier otra clase, siempre que se tenga una instancia. Existen objetos especiales, llamados colecciones que forman listas de objetos, permitiendo recorrerlas y almacenar en memoria sus elementos. Programando definimos las clases. En ejecución se accede a instancias.

32 Java: Interfaces, implementaciones y herencia
Interfaz: Una interfaz pretende definir un "índice" de métodos que deben implementar las clases que quieran ser consideradas acorde a esa interfaz. Es una clase especial que sólo contiene una definición de métodos. Sólo se incluye el encabezado de los métodos, no su contenido. Una interfaz representa algo más genérico que una clase concreta.

33 Java: Interfaces, implementaciones y herencia
Implementación: Se dice que una clase implementa a una interfaz, cuando dicha clase contiene todos los métodos que define la interfaz. La clase está obligada a cumplir con toda la funcionalidad que expone la interfaz. Una clase puede implementar más de una interfaz a la vez. Para indicar que una clase implementa una interfaz se especifica poniendo "implements NombreInterfaz" en el encabezado de la clase.

34 Java: Interfaces, implementaciones y herencia
Cuando una clase hereda de otra, obtiene todas sus propiedades y métodos de la clase “padre”. La clase "hija" puede: Definir nuevas propiedades y métodos propios. Redefinir los métodos heredados de la clase "padre". Una clase sólo puede heredar de una única clase padre. Java no posee herencia múltiple. Cuando una clase hereda de otra se indica poniendo "extends NombrePadre" en el encabezado de la clase hija.

35 Java: Interfaces, implementaciones y herencia
Cuando una clase quiere sobrescribir un método del padre, se marca el nuevo método con la El método de la clase hija ha de tener la misma definición que el de la clase padre. En caso de no sobrescribirse un método, se ejecutará el de la clase padre. Si una clase padre quiere obligar a que los hijos implementen un método, lo marca con la palabra "abstract" y no implementa su contenido. En este caso la clase padre ha de marcarse también como "abstract".

36 Java: Interfaces, implementaciones y herencia
Ejemplo: package action.interfaces; public interface Vehiculo { public boolean tieneSeguro(); public void recorreDistancia(int numKilometros); public double getCombustibleRestante(); } Nos indica a qué conjunto de clases pertenece Inicio de la definición de la interfaz "Vehiculo" Definición de un métodos

37 Java: Interfaces, implementaciones y herencia
Ejemplo: //Clase padre public abstract class VehiculoMotor { public abstract void echarGasolina(double litros); } //Clase hija public class Coche extends VehiculoMotor{ public Coche() { @Override public void echarGasolina(double litros){

38 Java: Interfaces, implementaciones y herencia
Cuando tenemos un objeto de una clase concreta, pero queremos queremos usar las propiedades del objeto padre o de la interfaz que implementa hacemos un “cast”. Un “cast” es decirle a Java que el objeto que tenemos lo utilice como si fuera el que le estamos indicando. (ObjetoDestino)miObjeto ObjetoDestino es la clase a la que queremos transformar miObjeto. Haciendo uso de “instanceof” podemos preguntar si un objeto es de un tipo concreto. miObjeto instanceof Clase

39 Java: Interfaces, implementaciones y herencia
¿Cuándo debemos heredar y cuando aplicar una interfaz? El desarrollador decide, pero la referencia es: Herencia: Cuando entre los objetos hay una relación conceptual entre sí. “Un coche es un vehículo”. En este caso se comparten métodos y propiedades Interfaz: Cuando un objeto indica que puede realizar unas determinadas acciones que tienen en común un grupo de objetos aunque sean muy diferentes. “Un coche genera calor” pero también una estufa, el sol, una reacción química, etc.

40 Java: Punteros y referencias
Cuando creamos un objeto Java internamente se está creando un puntero que apunta a una posición de memoria donde está su valor. La asociación de un puntero con una posición de memoria se llama referencia. Si asignamos ese objeto creado a otra variable, lo que realmente se está copiando es la referencia. Es decir, el dato es el mismo pero se apunta a él desde dos sitios diferentes. Si modificamos un objeto, esa modificación afecta a todas las variables que lo referencien. Si queremos copiarlo, debemos clonarlo en un objeto nuevo y que la nueva variable apunte a él. Mientras que un objeto tenga alguna referencia, no se liberará de memoria su contenido.

41 Java: Punteros y referencias
Ejemplo Coche seat1 = new Coche(); seat.setGasolina(40); Coche seat2 = new Coche(); seat2.setGasolina(40); seat2.quitaGasolina(20); seat1.getGasolina(); seat2,getGasolina(); Coche seat1 = new Coche(); seat.setGasolina(40); Coche seat2 = seat1; seat2.quitaGasolina(20); seat1.getGasolina(); seat2,getGasolina(); seat1 seat2 seat1 seat2 20 Memoria 40 20 Memoria

42 Java: Polimorfismo Hasta ahora hemos definido clases concretas que representan conceptos concretos. El polimorfismo nos permite indicar para una clase concreta varios tipos de conceptos. Esto se consigue gracias a las interfaces y a la herencia. Si nos basamos en el ejemplo de herencia podemos ver que un mismo objeto puede ser varias cosas a la vez.

43 Java: Polimorfismo Ejemplo: //Clase padre
public abstract class VehiculoMotor { public abstract void echarGasolina(double litros); } //Clase hija public class Coche extends VehiculoMotor{ public Coche() { @Override public void echarGasolina(double litros){

44 Java: Polimorfismo En este ejemplo si tuviéramos una instancia de coche. Podríamos decir lo siguiente: Un coche es un coche (obvio) Un coche es un vehículo de motor. Esta doble definición que parece trivial nos permite realizar acciones diferentes según el tipo que queramos aplicar. Si tuviésemos otra clase hija de VehículoMotor, por ejemplo Ciclomotor. Veríamos que conceptualmente son diferentes, pero ambos tienen un punto común.

45 Java: Polimorfismo Gracias al polimorfismo podríamos recorrer todos los VehiculoMotor y ejecutar sus métodos sin necesidad de saber qué tipo de vehículo son concretamente. Adicionalmente, siempre podemos bajar un nivel e ir al tipo concreto de vehículo y aplicar sus métodos concretos. En nuestro ejemplo tendríamos que una instancia concreta: Siempre será un VehiculoMotor. Podrá ser un Ciclomotor o podrá ser un Coche, pero nunca los dos a la vez.

46 Java: Recolector de basura
Es un mecanismo de Java para gestionar de manera automática la memoria. Abstrae a los programadores del proceso de reserva y liberación de memoria. Cuando crea un objeto reserva memoria en función de sus características y la amplia cuando sea necesario. Cuando detecta que un objeto no tiene ninguna referencia (nadie apunta a él) lo elimina liberando la memoria ocupada. Gran parte de los problemas de memoria se producen por acumulación de objetos que ya no se usan, pero existe aún alguna referencia en el código hacia ellos.

47 Java: Tratamiento de excepciones
Cuando en nuestro código Java, el compilador nos indica que puede saltar una excepción deberemos hacer uso del bloque try{ … }catch(NombreExcepcion ex){ … } Este bloque nos permite que si se produjera una excepción dentro del código situado en el “try” se nos ejecutará lo indicado dentro del catch. En el bloque catch se nos pasará la excepción lanzada y la información disponible.

48 Java: Tratamiento de excepciones
También podemos lanzar nuestras propias excepciones para que la clase que llama a nuestro método la maneje. Para ello debemos: Crear una clase que represente a nuestra excepción y hacer que herede de la clase Java Exception. Añadir en la cabecera de nuestro método la cláusula throws NombreExcepcion. Dentro del código lanzar la excepción de la siguiente manera: throw new NombrExcepcion(“texto que se quiera poner”);

49 Índice de contenidos ¿Qué es Fundeweb?
Eclipse como entorno de desarrollo El servidor Weblogic El lenguaje de programación Java Tipos de datos y organización de código Clases e instancias Interfaces, implementaciones y herencia Punteros y referencias Polimorfismo Recolector de basura Tratamiento de excepciones Buenas prácticas de programación. Javadoc

50 Java: Buenas prácticas
Las variables se han de crear siempre al principio de la clase o método. Los métodos get y set siempre deben ir al final. Nunca usar variables públicas. Se crean privadas y se implementan sus métodos get y set. Si varias clases comparten muchas propiedades hacer uso de la herencia. No usar la salida estándar de consola para mostrar texto. Definir y usar los logs en su caso. Respetar los estándares. Minimizar el uso de estructuras complejas siempre que sea posible. Comentar los métodos y los trozos de código largos.

51 Java: Buenas prácticas
Si tenemos una clase con demasiadas líneas de código, revisar si realmente son necesarias ahí o se puede reestructurar. En los constructores sólo asignar valores, no ejecutar métodos. Utilizar método “equals” cuando se comparan objetos en vez de “==“.

52 Índice de contenidos ¿Qué es Fundeweb?
Eclipse como entorno de desarrollo El servidor Weblogic El lenguaje de programación Java Tipos de datos y organización de código Clases e instancias Interfaces, implementaciones y herencia Punteros y referencias Polimorfismo Recolector de basura Tratamiento de excepciones Buenas prácticas de programación Javadoc

53 Java: Javadoc Para introducir comentarios en el código haremo uso de la doble barra // cuando sea una línea. Cuando sean varias líneas haremos uso de la estructura /* todo el comentario */ Para generar javadoc de los métodos, nos situaremos en el encabezado del método, escribiremos /** y le daremos al enter para que se nos genere automáticamente el encabezado y podamos completarlo.

54 Java: Javadoc Es importante generar el Javadoc adecuado pues se mostrará a los que usen nuestros métodos. Si las clases implementan interfaces el Javadoc debe ir en la interfaz y no en la implementación concreta. Lo mismo pasa en caso de la herencia con los métodos que se sobreescriben.


Descargar ppt "Curso de introducción a Fundeweb"

Presentaciones similares


Anuncios Google