Mostrando entradas con la etiqueta Buenas Practicas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Buenas Practicas. Mostrar todas las entradas

3 de marzo de 2014

Log4j

Log4j es una libreria Java (algunos dicen Framework) que permite registrar (log) mensajes que se registran en un aplicativo.

Los mensajes tiene varios niveles de registro:
  • trace : maximo nivel de detalle, cualquier mensaje
  • debug :  para mensajes de depuracion
  • info : mensajes informativos
  • warn : mesajes de alerta por posibles problemas
  • error : errores en el aplicativo
  • fatal  : es igual que error, pero cuando el aplicativo ya no funciona mas.
Hay dos niveles que son para controlar la salida:
  •  off : para no mostrar lo mensajes.
  • all: mostrar todo los mensajes.
Ejemplo basico de uso y  configuracion:
+ + +
package org.andrexweb.logger; 

import org.apache.log4j.Logger; 

/**
 * Hello world!
 *
 */ 
public class App {
private static Logger LOGGER = Logger.getLogger(App.class);

public static void main( String[] args ) {
LOGGER.trace( "Hello World!" ); 
}
+ + +


27 de febrero de 2014

Service Layer Pattern

Es patron que define un capa de servicios en el cual limita un conjunto de operaciones disponibles para encapsular la logica de negocio de la de aplicacion, controlando las transaciones y coordinando la respuesta de las operaciones.

A modo de ejemplo podemos tener servicios para:
  • Guardar/Actualizar la informacion  DefaultRequestService (Servicio en cargado de actualizar la informacion)
  • Un servicio con las operaciones del negocio. DefaultOperationService (Servicio que se encargue de la logica del aplicativo, aprobar, rechzar cancelar... etc.)
  • Un servicio para integraciones. DefaultIntegrationService (servicio que se encargue de actualizar otros sistemas).
Con este patron de diseño se pueda duplicar un poco de codigo por intentar separar los servicios en capas.




Bibliografia:
Service Layer
Wiki - Service Layers Pattern


11 de febrero de 2014

FluentInterface


El termino FluentIterface es creado por Eric Evans y Martin Fowler, con el cual se crea un estilo de codigo mas fluido.

La intencion es que cuando se tenga que agregar multiples propiedades (no solo propiedades, tambien es aplicable a operaciones) a un objecto, este se haga de manera mas fluida.

Ejemplo:

    private void fluentInterface(Cliente cliente){
       
        cliente.nuevaOrden()
                .agregarItem(1, 20.3, "Peliculas Accion")
                .agregarItem(2, 10.4, "Pelicula Infantil")
                .procesar();

     }
    

     private void tradicional(Cliente cliente){
       
        Orden orden = new Orden();
        Item item1 = new Item(1, 20.3, "Peliculas Accion");
        orden.agregarItem(item1);
        Item item2 = new Item(2, 10.4, "Pelicula Infantil");
        orden.agregarItem(item2);
        cliente.agregarOrden(orden);
        orden.procesar();
    }



El ejemplo es basico, pero se da entender que significa FluentInterface, lo que se quiere hacer con esto es que el codigo sea facil de leer y entender. Y que todo se vea como una unidad.