Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

También puedes responder nuestra encuesta para saber en que estado vives!

Estimacion: Por que estimamos (Parte 1)

Hay quienes consideran que estimar es imposible y una perdida de tiempo, una inutilidad, hay quienes consideran que si puede hacerse, pero solo bajo ciertas condiciones y hay quienes piensan que el secreto en seguir un cierto método... Sin embargo yo quisiera antes de platicar al respecto de dichos puntos de vista, centrarme en una pregunta a menudo omitida en los artículos y libros de estimación:

Por que estimamos? Y no hablo de por que en el sentido teórico que típicamente se utiliza en los libros del tema, si no de, afuera, en el mundo real. No quisiera generalizar, asi que lo que diré a continuación lo digo acotado únicamente a mi experiencia.

No estimamos para saber cuanto tardara el proyecto, el cliente generalmente ya estableció un deadline que difícilmente moverá.

Por que estimamos entonces? Estimamos para ver si podemos hacer algo que quepa dentro del tiempo y presupuesto que ya están establecidos y que le suene al cliente a lo que pidió (por que si algo es cierto es que la mayoría de los clientes no sabe realmente lo que quiere hasta que no se le han hecho un par de demostraciones de avance )

El lenguaje de programación (casi) perfecto

1. Cero frameworks

Depender de un framework muchas veces no es nada bueno. Algunos dejan de ser actualizados o de plano dejan de existir. O la documentación es minima o nula.

Que el lenguaje tuviera lo necesario para crear aplicaciones web o de escritorio.

2. Documentación automática

Nos gusta tener (más no leer) documentación completa del lenguaje/proyecto que vamos a usar/modificar. Si al terminar de escribir nuestro código se generará la documentación de manera automáticamente mejor aun.

3. Manejo de dependencias

Algo así como @Grapes de Groovy, el programador solo se preocupa de escribir el código. Nada de andar viendo que librería o clase le hace falta a su proyecto.

4. Generador de pruebas automático

Al terminar de escribir el código se crearan las pruebas unitarias de manera automática. Aunque tal vez seriamos más flojos y dependientes.

5. Un IDE integrado

No tener la necesidad de instalar alguno. Que el lenguaje no tuviera tan solo el compilador sino también un editor de código.

Ejemplo de un equipo de fútbol

Pongo esto aquí por si a alguien le sirve.

import java.util.Scanner;

class Equipo {
    private String nombre;
    private int juegosJugados;
    private int juegosGanados;
    private int juegosEmpatados;
    private int juegosPerdidos;
    private int golesFavor;
    private int golesEnContra;

    public int calcularPuntos() {
        return juegosJugados * 3 + juegosEmpatados;
    }
    public int calcularBono() {
        return calcularPuntos() * 100
        + golesFavor * 500
        - juegosPerdidos * 500
        + (juegosJugados % 2 == 0 ? 5000 : 0);
    }
    public String toString()  {
        return String.format("Nombre: %-20s, Bono: %-10d, Puntos: %-10d", nombre, calcularBono(), calcularPuntos());
    }
    public static Equipo creaEquipo( String nombre, int jj, int jg, int je, int jp, int gf, int ge ) {
        Equipo e          = new Equipo();
        e.nombre          = nombre;
        e.juegosJugados   = jj;
        e.juegosGanados   = jg;
        e.juegosEmpatados = je;
        e.juegosPerdidos  = jp;
        e.golesFavor      = gf;
        e.golesEnContra   = ge;
        return e;
    }

}

JSE - Ejemplo básico de inyección de dependencias con CDI, DeltaSpike, Weld; persistencia: Batoo JPA con H2,Transacción incluida

Bueeeeeno... pues resulta que andando de ocioso, quise hacer algo en JSE que incluyera algo de inyección de dependencias. Estuve viendo opciones y me pareció buena idea hacer algo con CDI (de spring hay hartos ejemplos) y las casi recién nacidas extensiones de Apache Delta Spike y para la parte de persistencia, vagando por las internetes me encontré con Batoo que clama ser mucho más rápido que Hibernate (éso es ooooootro tema) y pues decidí incluirlo para mi ejemplo, para la base de datos usé H2; manos a la obra:

De entrada, como acá en el trabajo no puedo usar Maven, tuve que bajar y configurar todo casi a mano, la lista de jars queda así:

-guava-14.0.1.jar
-commons-lang-2.6.jar
-validation-api-1.0.0.GA.jar
-bonecp-0.7.1.RELEASE.jar
-h2-1.3.171.jar
-commons-dbutils-1.5.jar
-commons-io-2.4.jar
-asm-3.3.1.jar
-deltaspike-cdictrl-weld-0.3-incubating.jar
-deltaspike-core-api-0.3-incubating.jar
-deltaspike-core-impl-0.3-incubating.jar
-deltaspike-jpa-module-api-0.3-incubating.jar
-deltaspike-cdictrl-api-0.3-incubating.jar
-deltaspike-jpa-module-impl-0.3-incubating.jar
-weld-api.jar
-weld-spi.jar
-weld-se.jar
-batoo-annotations-2.0.1.0-RTM.jar

WaveMaker para la gente que les gusta los RADs

Aqui les dejo Wavemaker una herramienta de desarrollo agil para generar aplicaciones web con spring, hibernate y algunas otras monerías incluidas, es bastante sencillo su entorno ademas de que produce aplicaciones standard, .war que se pueden entregar en la nube mediante cloudfoundry o en servidores locales dentro de splices containers, la verdad es que esta bastante sencillo de utilizar, existe una comunidad en latica bastante buena, existe documentación en videos, tiene sus limitaciones pero para aplicaciones que requieran ABCE es bastante bueno, les recomiendo le echen un vistazo.

JAXWS con Spring 3

Hola a todos pues el motivo del post es comentarles que actualmente por hazares del destino jaja Ok ya a lo que vamos,
estamos empezando un proyecto estilo SOA, donde vamos a comuincar todo via jaxWs si los ws de Java jejee XD, pues resulta que para la parate de BackEnd usarmos spring3 con el poderosisimo JDBCTEMPLATE y pues necesito inyectar un servicio @service, en una clase de webService java @webService, segun la documentacion de spring hay que hacer un bean que consuma solamente la URL del endPoint pero nome queda claro como hacerlo y el ejemplo que ponen es algo ambiguo quiero preguntar si alguien ya lo ha hecho y si es asi como se hace? un ejemplito no caeria mal jeje XD, les dejo el codigo del o que tengo hecho en hasta el momento. deantemano gracias

@WebService
public class UsuarioWS  {
        @Autowired
        private UsuarioServico usuarioServico;
        /**
         * Método que expone el servicio de consulta de usuario por ID
         * @param id
         * @return
         */

        @WebMethod
        public Usuario consultarUsuarioPorId(int id){
                Usuario usuario= usuarioServico.consultarUsuarioPorId(id);
                return usuario;
        }

        /**
         * @param usuarioServico the usuarioServico to set
         */

Prueba tus conocimientos.

¿Que fin tiene el comando static{} en el siguiente codigo?

public class Demo extends{

static{

}
}

Drone.io, Integración Continua en unos cuantos pasos

Les quiero compartir lo fácil y sencillo que es usar Drone.io para Integración Continua (CI) de su proyecto.

En este caso lo usé como prueba en un repositorio donde se está gestando la v2 del portal de javaMexico.org, el cuál está en Github: https://github.com/javamexico/javamexico.org

Drone.io se integra automáticamente con tres servicios tanto para hacer login como para obtener el código de los proyectos que quieras construir:

  • Github
  • Bitbucket
  • Google Code

Esto es ventaja y desventaja, ya que es extremádamente fácil configurar un proyecto que esté en cualquiera de esas tres opciones, pero si tu proyecto no está en alguna de ellas Drone.io (al momento) no lo podrá construir.

La cuenta gratuita permite dar de alta cualquier cantidad de repositorios siempre y cuando sean públicos (proyectos de código libre), de lo contrario se puede adquirir un plan para repositorios privados.

Concurrencia en Java Parte 2

Hola,
Comparto la segunda parte de un tutorial que cree del API de concurrencia en Java, para quien le interese.

http://jrlq.blogspot.mx/2013/05/concurrencia-en-java-parte-2.html

Concurrencia en Java Parte 1

Hola,
Comparto la primer parte de un tutorial que cree del API de concurrencia en Java, para quien le interese.
http://jrlq.blogspot.mx/2013/04/concurrencia-en-java-parte-1.html

Distribuir contenido