Continuando el post anterior vamos a ver sobre convención de nombres.

Convenciones del uso de Mayúsculas y minúsculas

Muchas convenciones de nomenclatura hacen uso de las mayúsculas y minúsculas en sus identificadores.

Entre ellas tenemos:

1. Estilo Pascal (PascalCase)
La primera letra del identificador y la primera letra de las siguientes palabras concatenadas están en mayúsculas. El estilo de mayúsculas y minúsculas Pascal se puede utilizar en identificadores de tres o más caracteres, por ejemplo:
ImageSprite

2. Estilo camelCase
La primera letra del identificador está en minúscula y la primera letra de las siguientes palabras concatenadas en mayúscula, por ejemplo:
imageSprite

3. Estilo Mayúsculas (ALL_CAPS)
Todas las letras del identificador se encuentran en mayúsculas ejemplo
IO

4. Estilo minúsculas (small_caps)
Todas las letras del identificador se encuentran en minúsculas ejemplo
system

Esta designación de la convención se utiliza muy poco

Cada lenguaje de programación hace uso de estos estilos según el identificador que use y de acuerdo a su convención.

En la siguiente tabla tenemos, las convenciones usadas por cada lenguaje de progragramción

TipoPHPC#Java
ClasePascalCasePascalCasePascalCase
ConstanteALL_CAPSPascalCaseALL_CAPS
MétodocamelCasePascalCasecamelCase
Namespace / Packagesmall_caps (5.3x)PascalCasesmall_caps
PropiedadescamelCasePascalCasecamelCase
ParámetrocamelCasecamelCasecamelCase
Variable localcamelCasecamelCasecamelCase
InterfacePascalCasePascalCasePascalCase

Convención de Nombres

La convención de nombres es un conjunto de normas y reglas para la escritura de nombres, código fuente, identificadores y comentarios dentro de la programación, que facilitan y hacen más comprensible su lectura.

1. Clases

  • Las clases representan “cosas” y no “acciones”, por tal motivo evitar verbos como nombre de clase.
  • El nombre de la clase debe estar en singular, salvo que la clase represente multiplicidad de cosas.
  • Las Nombres de las clases deberían ser Sustantivos: ejemplo carro, hombre, tienda, pais, empleado, proveedor
  • Cada clase debe tener un bloque de documentación según la norma del lenguaje.

EN PHP

/**
* Bloque de Documentación
*/
class SampleClass
{
     //contenido de la clase
}

En C#

///
/// Bloque de Documentación
///
public class SampleClass
{
    //contenido de clase
}

En Java

/**
* Bloque de Documentación
*/
public class SampleClass
{
     //contenido de la clase
}

2. Métodos

  • Los nombres de los métodos deberían ser un verbo, dado que describe una acción ; ejemplo remover(), enviar(), cargar()
  • Los Métodos dentro de las clases siempre debe declarar su visibilidad tales como privadas, protegidas, públicas, etc

3. Variables

  • Evitar variables que sean de un solo carácter, Los nombres comunes para las variables temporales son i, j, k, m, y n para los números enteros; c, d, y e para los caracteres.
  • Nombres de variables sólo pueden contener caracteres alfanuméricos
  • Nombres de variables deben ser camelCase

4. Constantes
Según el tipo de lenguaje tenemos algunos ejemplos

PHPC#JAVA
MIN_WIDTH

 

LOCAL_CONSTANT

COLUMNS

LocalConstant

 

MinWidth

Colums

MIN_WIDTH

 

LOCAL_CONSTANT

COLUMNS

4. Comentarios
Según el tipo de lenguaje que estemos usando podemos guiarnos de sus reglas y convenciones establecidas:
php phpDocumentator
c# MDSN guia
java javadoc

Conclusiones
Hay muchas cosas mas que se quedan en el tintero, pero creo que con esta miniguía podemos empezar hacer que nuestro código sea mas elegante, profesional, fácil de entender y que nuestras aplicaciones puedan ser mas rápidos de mantener

Links Relacionados
http://java.sun.com/docs/codeconv/html/CodeConventions.doc10.html#182
http://framework.zend.com/manual/en/coding-standard.coding-style.html
http://msdn.microsoft.com/en-us/library/ms229043.aspx
http://www.irritatedvowel.com/Programming/Standards.aspx

benjamin

CTO at GNBIT
Me llamo Benjamín Gonzales B, soy desarrollador de software con más de 15 años de experiencia, socio funduador de la empresa GNBIT.
Me apasiona todo lo relacionado a las nuevas tecnologías, me gusta investigar , leer y aprender cada día algo nuevo.
Desarrollo en PHP7+, JAVA, C#, JavaScript, entre otros y actualmente  estoy experimentando con lenguajes funcionales como: Erlang, Clojure y Scala 

Latest posts by benjamin (see all)

benjamin

Me llamo Benjamín Gonzales B, soy desarrollador de software con más de 15 años de experiencia, socio funduador de la empresa GNBIT. Me apasiona todo lo relacionado a las nuevas tecnologías, me gusta investigar , leer y aprender cada día algo nuevo. Desarrollo en PHP7+, JAVA, C#, JavaScript, entre otros y actualmente  estoy experimentando con lenguajes funcionales como: Erlang, Clojure y Scala 

2 Responses to “Estilo de programación y convención de nombres II”

  1. Me ha surgido una pregunta, los nombres de las variables tienen que estar en español o en ingles cual deberia ser el mas correcto??
    por que el mesclar los dos idiomas le quita estilo y comprencion..
    esto tambien se aplica a nombres de ficheros y carpetas
    cual seria tu recomendacion

  2. Hola Carlos
    Muy Buena pregunta, esa interrogante me vengo haciendo desde mucho, y he encontrado muchas opiniones a favor y en contra, estoy escribiendo un post sobre eso, espero tenerlo publicado pronto, pero te adelanto algo.

    Tal vez muchos dirán que lo ideal es hacerlo en el idioma que mejor se le acomode al programador, eso no habría ningún problema si el programador trabajara solo, pero si se empieza a trabajar en grupo y dentro del grupo hay programadores que hablan francés, ingles, español, etc, se haría muy difícil el desarrollo.

    Todo los que esta relacionado al desarrollo se trabaja con estándares, reglas, metodologías, entre otros, pero este caso en específico no se habla nada o casi nada.

    En lo personal prefiero y recomiendo a trabajar en ingles, puesto que mas adelante si se van integrando programadores a tu empresa, grupo, proyecto, etc puedan aportar, mejorar, modificar el código sin mayor problemas.

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.