This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Platon, maestro de maestros

El comienzo es la parte ms importante de la obra.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

miércoles, 30 de diciembre de 2015

Convención de Nombres

Aunque a la hora de escribir un programa cada uno lo puede hacer como mejor le venga, en el ecosistema de programación se han establecido unas bases, digamos de buena conducta, para que sea de fácil compresión y rápida lectura por todos los que quieran hacerlo. De esa manera hoy vamos a ver los puntos más básicos.

Valor de negocio


Por ejemplo, en el código a = b * c; es sintácticamente correcto y todos los que estamos aquí sabemos que es lo que está haciendo, pero si esto mismo lo representáramos con unos nombres de variables descriptivos nos quedaría de la siguiente manera.
weeklyPay = hoursWorked * payRate;
Esto ya nos implica la intención y el significado del código fuente, como mínimo para aquellos que estén familiarizados con el contexto del programa.

Elementos comunes

Aunque se haga un convenio que más o menos es aplicable en todas partes, se tiene que tener en cuenta que las empresas y/o clientes acostumbran a tener su manera de hacer, de todas maneras vamos a ver a grandes rasgos que es lo más normal que nos podemos encontrar.

Longitud de identificadores

Una de las reglas básicas que siempre se sigue en todos los convenios es el tamaño tanto en las variables como en los métodos y clases y aunque no son reglas como tal sí que pueden ser tomadas como unas directrices.
·        Las variables han de ser descriptivas, de tal manera que los identificadores cortos han de ser preferibles por su fácil lectura.
·        Los indicadores extremadamente cortos como pueden ser “x” o “y” han de ser evitados a toda costa; estos identificadores son muy difíciles de seguir, de difícil comprensión y casi imposibles de refactorizar.
·        No se tiene que tener miedo al escribir variables largas, si es necesario tener diversas variables que hacen referencia a un mismo objeto, pero con pequeños matices es bueno tener una variable descriptiva que se entienda con un sufijo que se comprenda bien.

Identificador de varias palabras

Como ya hemos comentado es recomendable la utilización de identificadores significativos. Una sola palabra acostumbra a no ser tan significativa, o específica, como lo puede ser un conjunto de palabras. Por esa razón en Java tenemos una convención denominada “CamelCase” que veremos un poco más adelante.
·        Palabras delimitadores separados.
En Java las variables, los métodos y las clases se tienen que formar con los caracteres alfanuméricos y con el guión bajo (“_”), pero hay que tener en cuenta que no se puede empezar con un guión bajo ni con un número.
·        Eliminar espacios entre palabras.
Otro enfoque sería el de eliminar los espacios existentes marcando la siguiente palabra con mayúscula, este tipo de delimitador de palabras es denominado como capitalización medial o “CamelCase”. Si seguimos estas directrices la frase “Radio externo de la pirámide”  quedaría como “RadioExternoDeLaPiramide” o bien como “radioExternoDeLaPiramide”. Pero si nos fijamos se tratan de dos palabras radicalmente diferentes ya que Java es “case sensitive”, o lo que es lo mismo, es sensible a la diferenciación entre mayúsculas y minúsculas en una palabra, de manera que como elegir cuando poner mayúsculas al inicio y cuando no ponerlo.
Para saber cuándo usar mayúscula y minúscula en Java grandes de la industria hicieron unas directrices de muy fácil aplicación que se basan en tan solo cuatro puntos.
·        Clases: Los nombres de clases han de ser escritos en sustanivo y seguir el patrón de “Upper CamelCase”, o lo que es lo mismo con la primera letra de cada palabra en mayúsculas y sin espacios  “RadioExternoDeLaPiramide”. Se tienen que usar palabras completas, evitando los acrónimos y abreviaturas a toda costa, siempre y cuando la abreviatura no este extendida y aceptada por la comunidad, en ese caso es mejor usar la abreviatura con tal de acortar la palabra. Ex: URL, HTML, XML, …
·        Métodos: Los métodos deben de ser verbos escritos en “lower CamelCase”, con la primera letra de cada palabra en mayúsculas excepto la primera que ira en minúscula y sin espacios “radioExternoDeLaPiramide”.
·        Variables: Las variables locales, de instancia y de clase también se escriben en “lower CamelCase”
o   No pueden comenzar por guion bajo ( _ ) ni por ( $ ), aunque ambos son caracteres validos en otras posiciones.
o   Los nombres deben de ser cortos pero significativos.
o   El nombre tiene que ser mnemónico, es decir, el nombre tiene que ser diseñado para indicar al programador la intención de su uso.
o   Las variables de un solo carácter se tienen que evitar, excepto en las que sean de usar y tirar, los nombres más comunes para estas variables temporales son:
§  i, j, k, m y n  para los enteros.
§  c, d y e para los caracteres.
·        Constantes: Las constantes tienen que estar escritas en mayúsculas, además las constantes pueden contener caracteres numéricos, pero jamás en la primera posición.



miércoles, 16 de diciembre de 2015

Estructura de un programa en Java

La clase principal y el método main.

Un programa puede construirse empleando varias clases. En su estructura más simple tendríamos una clase principal que contendría el programa, rutina o método principal: main() en el cual se incluirían las sentencias del programa principal. De esta manera la estructura de un programa simple en Java seria el siguiente:
public class ClasePrincipal {
        public static void main(String[] args) {
                 sentencia_1;
                 sentencia_2;
                 //...
                 sentencia_N;
        }
}

Comentarios

Una parte importante de los programas son sus comentarios ya que estos nos permiten saber cuál se supone que tienen que ser el funcionamiento de una sentencia en concreto. Los comentarios no son almacenados a la hora de compilar de manera que el compilador los detecta y los ignora, haciendo que el código sea más ligero.
En Java disponemos de tres tipos de comentarios, entre los cuales podemos encontrar los comentarios clásicos de C y C++ tales como // y /* … */. De esta manera el compilador de Java ignorara todo lo que escribamos desde // hasta el final de la línea:
System.gc(); // Esta parte será ignorada, pero realizara el Garbage collection.
Con el tipo de comentario /* … */ tendremos un comentario multilinea, en este caso solo tendremos que marcar el inicio”/*” y el final “*/”  para que todo lo que se encuentre en su interior sea ignorado por el compilador.
public class suma {
        public static void main(String[] args) {
                 int numero = 1;
                 numero++;
                 int multiplicador = 2;
                 numero *= multiplicador;
                 System.out.println("salida 1: " + numero);
                 numero++;
                 numero *= multiplicador;
                 System.out.println("salida 2: " + numero);
        }
}
c:\>javac suma.java

c:\>java suma
salida 1: 4
salida 2: 10
public class suma {
        public static void main(String[] args) {
                 int numero = 1;
                 numero++;
                 int multiplicador = 2;
                 numero *= multiplicador;
                 System.out.println("salida 1: " + numero);/*
                 numero++;
                 numero *= multiplicador;
                 */System.out.println("salida 2: " + numero);
        }
}
c:\>javac suma.java

c:\>java suma
salida 1: 4
salida 2: 4

Por ultimo tenemos el tipo de comentario que se usa para el documentador de Java, este se caracteriza por que comienza con “/**”  y termina con “*/” si nos fijamos en la diferencia con el comentario anterior este contiene dos * al inicio, en lugar de uno solo.
Este tipo de comentarios suele encontrarse al inicio de los métodos y nos indica varios parámetros del mismo así como una breve descripción.
/**
* Método que permite convertir una lista en un array
* @param list
* @return Array
*/
Hay muchos y muy variados tags para este API de JavaDocs, de manera que ya lo miraremos más adelante.

Tokens

               Un token es el elemento más pequeño que se interpretara en nuestro código por el compilador. En Java los tokens se pueden dividir en 4 grupos.
  •       Identificadores o nombres que se asignarían a las variables, constantes, clases, paquetes y métodos. Dentro de los identificadores se encuentran las palabras claves que son identificadores reservados por Java para cumplir con un objetivo específico en el código.

  •           Constantes literales: representan valores predefinidos que puede tomar una.

  •      Operadores: representan una operación que se aplica a un objeto o un dato, sobre una variable o constante (operando).

  •       Separadores: Son empleados para indicarle al compilador de Java donde se ubican los elementos de código. Por ejemplo: { } , : ;

Los identificadores tienen que seguir una serie de normas a la hora de declararse.
  •       Los identificadores han de comenzar por una letra, o por un carácter de subrayado “_” o con el carácter de dólar “$”. Aunque se desaconseja utilizar el carácter dólar ya que el compilador lo utiliza de manera interna.
  •       A partir del segundo carácter se podrán usar además números u otros digitos. Estarian prohibidos los espacios en blanco, el signo de interrogación “?” y el signo del tanto por ciento “%”.
  •       No hay límite de caracteres.
  •       El identificador es case sensitive, lo que viene a significar, que los identificadores “casa”, “CASA” y “Casa” serian diferentes
  •       Se pueden incluir caracteres Unicode, con lo que se pueden emplear secuencias de escape \uxxxx para representar estos caracteres
  •       No puede emplearse el identificador de una variable o cualquier otro elemento del código fuente del programa para otro ya existente en el mismo bloque. Excepción: variable miembro y local con el mismo identificador.
  •       Las palabras reservadas no pueden emplearse como identificadores.


miércoles, 16 de septiembre de 2015

Configurando el entorno para trabajar con Maven

Instalar Maven en Windows es algo realmente fácil, solamente es necesario seguir unos sencillos pasos previos para configurar Java tal y como hemos explicado anteriormente, y tener en cuenta unas pequeñas precauciones.
  • Es necesario tener el JDK 5 o superior
  • Maven trabaja con el JDK no con el JRE
  • Seria recomendable configurar las variables de entorno solamente para nuestro usuario.
Si cumplimos todos los requerimientos para instalar nuestro Maven ya lo podemos instalar desde http://maven.apache.org/download.cgi y descomprimirlo. Personalmente prefiero tener todos los frameworks de trabajo bajo una misma carpeta.

Para configurar Maven iremos a las variables de entorno y dentro de las variables del Administrador introduciremos una nueva variable de usuario denominada "M2_HOME" el valor de la variable tiene que ser la dirección donde hemos instalado el programa en mi caso "C:\develop\apache-maven-3.2.1". 


Una vez tenemos el home de maven instalado lo que tenemos que hacer es que se cargue desde las variables de usuario los binarios de maven, para ello tenemos que asignarle al path la ruta "%M2_HOME%\bin" tal y como se muestra en la siguiente imagen.


Una vez puesto podemos comprobar si lo hemos realizado correctamente introduciendo el comando "mvn -version" donde nos daría la versión de maven y java que tenemos instalado.



jueves, 3 de septiembre de 2015

Que es Derby

Logotipo Apache fundation
Derby es una base de datos relacional escrito íntegramente en JAVA. Actualmente se encuentra bajo una licencia Apache 2.0.

Pero esta base de datos no siempre se llamó Derby, en el 1997 una empresa de Oakland, California denominada Cloudscape dio a luz, la que fue reconocida como primera versión de Derby, un motor de base de datos denominado JBMS. Posteriormente el producto adopto el nombre de la empresa Cloudscape y comenzaron a aparecer versiones cada seis meses, esto hizo que otra gran empresa se fijara en ellos y en 1999 Informix Software, Inc. adquirió Cloudscape, Inc. por diez millones de acciones, del paquete de acciones ordinarias para emisión; lo cual la verdad no se a cuánto ascendía, ahora mismo no soy capaz de encontrar el valor. Esta transacción no pasó desapercibida para la gigante IBM que en seguida se fijó en el paquete, o quizás orquesto él la compra, esto último nunca lo sabremos, la cuestión es que apenas dos años después, en Julio del 2001, IBM se hace con la BBDD de Cloudscape tras la compra de parte de Informix.
El motor de la base de datos fue renombrado a IBM Cloudscape y comenzaron a aparecer versiones enfocadas principalmente a los productos de IBM y su Middleware.

En el 2004 IBM cedió el código del "IBM Cloudscape" a la Apache Software Foundation para Derby, un proyecto patrocinado por el proyecto Apache DB. En Julio de 2005 el proyecto Derby continuó como un subproyecto de base de datos de alto nivel de Apache. Sun Microsystem se unió al proyecto para poder lanzar Derby como base de datos empotrada de Java, lo cual consiguió con el lanzamiento de Java 6 en diciembre de 2006, Sun comenzó empaquetando Derby en el JDK bajo el nombre Java DB.


Logotipo Apache Derby En su modo embebido Derby sólo soporta un hilo, lo cual puede ser un problema para grandes proyectos, pero hay que tener en cuenta que esta base de datos no está pensada para ser utilizada en proyectos de larga duración ya que su consumo de memoria lo haría inviable. Derby más bien lo podríamos utilizar para demos, presentaciones, bases de datos auxiliares durante la instalación o cuando se sabe de antemano que la carga va a ser nula y los registros que se van a cargar van a ser pocos.

domingo, 13 de julio de 2014

Configurando entorno para trabajar con Java en Windows

Para poder trabajar con Java™ lo primordial es bajarnos la ultima versión del mismo, lo normal es trabajar con la versión de Oracle™ que es la oficial. Otras personas son más amigas de trabajar con versiones no oficiales, pequeños "forks" con los que nunca he trabajado, siempre he ido por la rama oficial SUN/Oracle.


1.    Variables de entorno JAVA_HOME y PATH.

Java requiere de unas configuraciones para que pueda ser usado en nuestro equipo. Puede haber pequeñas diferencias entre las diferentes versiones de Windows, pero la siguiente imagen es prácticamente igual siempre.
Tenemos dos zonas donde podemos poner las variables que vamos a utilizar, en la primera zona podemos poner las variables solamente para el usuario activo, en la zona inferior podemos hacer que las variables sean visibles para todos los usuarios. Personalmente no doy por hecho que todos los usuarios van a querer utilizar mis mismas variables, por lo que acostumbro a usar la primera zona.

Existen una gran variedad de variables, cada una con su propósito. Nos vamos a centrar en solo dos, las más importantes para nuestra configuración. Con estas variables se informa al Sistema Operativo dónde y cómo ubicar Java dentro del mismo. Estas variables se denominan por convención "JAVA_HOME" y "PATH".


2.    Configurar la variable JAVA_HOME.

JAVA_HOME es una variable que informa al sistema operativo sobre la ruta donde se encuentra instalado Java. Para configurar esta variable seguiremos la siguiente secuencia:

·       Abrimos el “Explorador de Windows” o pulsamos sobre “Mi PC”
·       Pulsamos el botón derecho del mouse y hacemos click sobre propiedades.
·       Configuración avanzada / Cambiar configuración
·       Opciones avanzadas
·       Variables de entorno
·       Nueva (Variable de usuario o variable del sistema)

Ahora en las cajas tenemos que escribir el nombre de la variable y la ruta donde la podemos encontrar:

Nombre de la variable
JAVA_HOME
Valor de variable
Ruta donde se haya instalado Java

Personalmente siempre instalo Java en
C:\Java\jdk1.7.047_x64
Ya que en ocasiones se detectan errores por culpa de la ruta


3.    Configurar la variable PATH.

PATH es una variable de entorno, por lo que en esta ocasión, si queremos modificarla solamente para nuestro usuario tendremos que seguir los siguientes pasos:

·       Abrimos el “Explorador de Windows” o pulsamos sobre “Mi PC”
·       Pulsamos el botón derecho del mouse y hacemos click sobre propiedades.
·       Configuración avanzada / Cambiar configuración
·       Opciones avanzadas
·       Variables de entorno
·       Nueva (Variable de usuario o variable del sistema)

3.1.Configurar la variable PATH como variable de sistema.

Si escogemos la opción de modificar la variable para todo el entorno, tendremos que andar con cuidado, cualquier modificación que hagamos puede hacer que dejen de funcionar otros programas.

Nombre de la variable
PATH
Valor de variable
Valor anterior + “; %JAVA_HOME\bin%”

En este caso siempre aconsejo abrir el Notepad
Copiar todo el contenido de la variable
Y añadirle lo que necesitamos
Con eso nos aseguramos de no borrar nada por error

3.2.Configurar la variable PATH como variable de usuario.

Si escogemos la opción de modificar la variable solamente para nuestro usuario tendremos que crear o modificar la variable PATH, pero en esta ocasión como podremos ver el PATH a nivel de usuario no es igual que a nivel de entorno. A nivel de usuario lo que hacemos es cargar todo lo que nos da la variable de entorno y sumarle las variables que necesitamos, para ello la variable PATH nos quedaría de la siguiente manera:

Nombre de la variable
PATH
Valor de variable
%PATH%;%JAVA_HOME%\bin


 De esta manera recogemos todas las variables que se hayan depositado en el entorno, ya sea por nosotros o por otros usuarios del PC