¿Por qué escribir código legible?


La razón por la cual debemos escribir código legible es muy sencilla, es para que otros programadores o desarrolladores nos entiendan, inclusive nosotros mismos después de volver a leer el código que escribimos hace tiempo.

Al escribir código nos convertimos no solamente en creadores de software también nos convertimos en escritores, ya que en cada línea de código demostramos nuestro estilo narrativo y nuestra prosa como tal. A manera de ejemplo, podemos pedirle a varios desarrolladores que resuelvan un problema o necesidad del mundo real y lo harán en la gran mayoría de forma diferente, esto se debe en gran medida a que el código que escribimos  es un reflejo de nuestros pensamientos y del proceso mental que se lleva a cabo.

Así que necesitamos dar a entender nuestras historias plasmadas en el código de forma clara, concisa y evitando la redundancia.

Consejos para escribir  código legible:

  • Haz que tu código se describa a sí mismo. Si haces eso no será necesario documentar tu código.
  •  Los nombres de las variables deberán ser descriptivos.
  • Sigue las pautas y convenciones de tu lenguaje.
  • Evita las abreviaciones en los nombres de variables, métodos, etc., con el cuento de ahorrar espacio o código.
  • Siempre indenta tu código, esto hará que sea más claro y legible.
  • Haz de cuenta que estás escribiendo para alguien más. Pasamos más tiempo leyendo y entendiendo código que escribiéndolo.
  • No intentes reinventar la rueda. Utiliza la biblioteca de clases o api de los lenguajes de programación.
  • Documenta solo cuando realmente sea necesario. Esto tiene que ver con la primera regla.
  • Utiliza estándares de programación.
  • Sé autocrítico con tu código.

Hay que tener siempre presente que el código legible hace que sea más fácil entenderlo, depurarlo y darle mantenimiento, con lo cual un buen código que sea legible cumple con las buenas prácticas de desarrollo de software.




En primer lugar los atributos son las cualidades o características que posee un objeto y los métodos son las acciones asociadas al objeto, es decir que es lo que puede hacer un objeto en concreto.
Ejemplo:


package com.unaprendiz.ejemplo;

public class Persona
{
    /* Atributos */
    private String nombre;
    private String apellido;
    private int edad;
    private String nacionalidad;
 
    /*Inicializa las variables de instancia */
    public Persona(String nombre, String apellido, int edad, String nacionalidad)
    {
      /*this es una referencia a si mismo
      * Es utilizado para hacer referencia a los atributos 
      * de nuestra clase en este caso la clase Persona
      */
      this.nombre = nombre;
      this.apellido = apellido;
      this.edad = edad;
      this.nacionalidad = nacionalidad;
    }
 
    /*Comportamientos*/
    public void Caminar(int direccion)
    {
       //código
    }
 
    public void Correr(int distancia)
    {
       //código
    }
 
    public void Saltar()
    {
      //código
    }
}


Es importante mencionar que a los atributos también se los conoce como variables de instancia, debido a que están asociadas a un objeto en particular, si instanciamos o creamos varios objetos de nuestra clase persona, cada uno de ellos tendrán asociado una copia de las variables de instancia.
Cuándo ejecutamos un programa Java, es posible pasarle parámetros mediante el comando java seguido del nombre de nuestro programa y una lista de parámetros.

Ejemplo:


1. package argumentos;

2. 

3. public class Saludo {

4. 

5.    public static void main(String[] args) {

6. 

7.       System.out.println("Hola: " + args[0] +" " + args[1]);

8. 

9.    }

10. }



Por convención al arreglo de String en el método principal se le llama args, aunque cabe destacar que se le puede poner cualquier nombre. Para ejecutar el programa lo harámos de la siguiente forma siempre y cuando lo hagamos desde la terminal, primero compilamos con el comando javac y después ejecutamos con el comando java:

java Saludo Maycc Suarez

La salida que muestra el programa es:

Hola: Maycc Suarez

Si utilizamos un ide como eclipse para pasarle parámetros a nuestro programa lo haríamos de la siguiente forma:
  • Hacemos clic en Run: 


  • Luego le damos a Run Configurations.. y escribimos los parámetros que vayamos a utilizar como en la siguiente captura:


  • Finalmente le damos a Run y listo:

Por regla general todos los programas escritos en java pasan por las siguientes fases: 
  
  • Edición: En esta fase creamos nuestro programa con cualquier editor de texto plano. Nuestro archivo tendrá la extensión .java; lo cual significa que es un archivo de código fuente. 
  • Compilación: Esta fase se lleva a cabo cuando compilamos nuestro archivo .java y posterior a ello se genera otro archivo con extensión .class,  el mismo que también es conocido como bytecode, que es un código intermedio que la JVM puede ejecutar. 
  • Carga: Una vez compilado nuestro programa se carga en memoria a través del cargador de clases. 
  • Verificación: Una vez que nuestro programa se encuentre en memoria el verificador de códigos de bytes, comprueba que dicho código sea valido, es decir que este bien escrito respetando la sintaxis del lenguaje  y lo más importante que no viole las restricciones de seguridad de Java. 
  • Ejecución: Una vez que todo este bien la ultima fase es la ejecución, en la cual nuestro programa será ejecutado en la JVM que es la encargada de llevar a cabo una compilación JIT (justo a tiempo).
Los modificadores de acceso nos permiten determinar desde que clase o desde que parte de nuestro programa cierto elemento podrá ser accedido o utilizado, como por ejemplo: una variable, un método o una clase, etc.

En Java existen los siguientes modificadores de acceso:
  • Private: Es el más restrictivo de todos y los elementos que hagan uso de él, solo podrán ser accedidos dentro de la misma clase. (Se aplica a los atributos o miembros de una clase, interfaces y clases internas).
  • Protected: Los elementos podrán ser accedidos desde el mismo paquete y  desde cualquier clase que extienda o herede de la clase padre, independientemente si se encuentran en el mismo paquete o no. (Se aplica a los miembros de una clase como atributos, métodos, etc.)
  • Public: Es el menos restrictivo de todos ya que se puede acceder desde cualquier parte, es decir está abierto o disponible para todos (Se aplica a clases, métodos, atributos, interfaces, etc.)
  • Default: Es el nivel de acceso por defecto, cuando no declaramos de forma explícita un modificador (no especificado), los elementos solo podrán ser accedidos dentro del mismo paquete. 

Esto se entenderá mejor en la siguiente tabla:

MODIFICADOR
CLASE
PAQUETE
SUBCLASE
TODOS (otras clases)
Private
SI
NO
NO
NO
Protected
SI
SI
SI
NO
Public
SI
SI
SI
SI
Default
SI
SI
NO
NO

 
1. package saludo;
2.
3. public class HolaMundo
4. {
5.      public static void main( String[] args)
6.      {
7.
8.          System.out.println( "Hola Mundo!!!" );
9.  
10.     }
11.}




La línea 1 es una declaración de paquete, en java los paquetes son un contenedor de clases que nos sirven para agrupar nuestras clases, interfaces o archivos. Básicamente se trata de una carpeta o grupo de carpetas.

En la línea 3 declaramos nuestra clase llamada HolaMundo, nuestro archivo deberá llamarse de la misma manera (HolaMundo.java), dado que es una declaración de clase pública.

En la línea 5 declaramos el método principal, que es el punto de entrada para ejecutar una aplicación de Java. En este caso el método se llama main, no retorna ningún tipo de información (void), además es public static (es un método de clase), ( String[] args) es el bloque de construcción de nuestro programa, se trata de un arreglo de String llamado args que nos sirve para pasar información o argumentos, cuando ejecutemos nuestra aplicación con el comando java.

Finalmente en la línea 8 hacemos uso de System.out que es el objeto estándar de salida y llamamos a un método de este objeto llamado println, que nos sirve para desplegar o imprimir un mensaje en la consola con un salto de línea.

La clase System se encuentra en el paquete java,lang que se importa de manera automática o de forma implícita en nuestras clases que creemos. 



Java es un lenguaje de programación orientado a objetos, concurrente, multiplataforma y de propósito general, cuyo lema es: "write once run anywhere", escribe una vez tu código y ejecútalo donde quieras, sin hacerle ningún tipo de modificación en la mayoría de los casos, lo cual quiere decir que es independiente de la plataforma hardware así como del sistema operativo, debido a que posee una máquina virtual (JVM), que es la encargada de interpretar los bytecodes (.class).

Originalmente fue desarrollado por James Gosling, quien es conocido como el padre del lenguaje Java., en un inicio  era conocido como Oak, posteriormente cambio su nombre a java. En sus inicios fue pensado, para crear software para electrodomésticos inteligentes de uso doméstico. Las razones por la cual se le puso el nombre de Java son varias, unos argumentan que es debido a las iniciales de sus creadores; otros señalan que si nombre se debe a un tipo de café que vendían en la cafetería de al lado, de ahí que Java tiene como icono o logo una taza de café.

Su sintaxis deriva principalmente de C y C++ y su POO está basada en Smalltalk. En la actualidad Java es utilizado para desarrollar aplicaciones empresariales a gran escala, además es el lenguaje base para desarrollar apps para Android.

Características principales:
  • Orientado a objetos. (Aunque no en un 100%).
  • Multiplataforma.
  • Fuertemente tipado. (Es necesario declarar el tipo de dato).
  • Multitarea (Hilos o Threads).
  • Biblioteca de clases extensa. (Conocida como API, nos permite ahorrar tiempo de desarrollo, al no tener que reinventar la rueda).
  • Es robusto, escalable y seguro. (La JVM verifica los bytescodes, para comprobar que no rompan o infrinjan las normas de seguridad de Java).
Conclusión:

En definitiva Java no solamente es un lenguaje de programación, es mucho más que eso; es una plataforma robusta para el desarrollo de software como tal. Diría que es como una navaja suiza, ya que es multipropósito, prácticamente se puede utilizar para hacer cualquier cosa: desde aplicaciones desktop (Java SE), apps móviles (Android), aplicaciones empresariales (Java EE). Aunque al principio la curva de aprendizaje de java es un poco alta, a medida que nos vayamos adentrando más en el lenguaje y con la práctica se nos hará más fácil desarrollar nuestro software.
Recuerden en la vida con esfuerzo, dedicación y disciplina se logran muchas cosas, la disciplina tarde o temprano vencerá a la inteligencia.

Comenta con Facebook

 
© 2012. Design by Main-Blogger - Blogger Template and Blogging Stuff