Estandares de Programacion

Anuncio
Sistema web Ayni
Sistema Web Ayni
ESTÁNDARES DE PROGRAMACIÓN
Versión 1.0
Sistema Web Ayni
Estándares de Programación
Versión:
1.0
Historial de Revisión
Fecha
23/08/2011
Versión
1.0
Descripción
Versión inicial
Autor
Jonathan Nieto,
Marco Martínez
04/10/2011
2.0
Se modifican descripciones de los
componentes
Marco Martínez
1
Sistema Web Ayni
Estándares de Programación
Versión:
1.0
Tabla de Contenido
1.
Introducción
3
2.
Referencias
3
3.
Notaciones
3.1
Camel Case
3.2
Notación C
3.3
Notación para Constantes
3
3
3
3
4.
Convenciones de Nombres de Controles
4
5.
Convenciones para Nombre de Elementos
5.1
Paquetes
5.2
Clases
5.3
Interfaces
5.4
Métodos
5.5
Variables
5.6
Constantes
5.7
Archivos
5
5
5
5
6
6
8
8
6.
Convenciones para Estructuras de Control
9
7.
Convenciones para Comentarios
7.1
Comentarios de Documentación
9
10
2
Sistema Web Ayni
Estándares de Programación
Versión:
1.0
Estándares de Programación
1.
Introducción
Este documento tiene como finalidad presentar los estándares de programación que se utilizarán
para la implementación del presente proyecto.
La aplicación de los siguientes lineamientos permitirá estandarizar la estructura y estilo de
codificación con el fin de tener un mejor orden y una clara visión, lo cual ayudará a facilitar la
lectura y comprensión del código.
2.
Referencias



3.
Java Programming Style Guidelines, 2008. Geotechnical Software Services.
The Code Conventions for the Java Programming Language document, Oracle, 1999.
Java Language Specification, Sun Microsystems.
Notaciones
Se presentan las siguientes notaciones:
3.1
Camel Case
Esta notación indica que un conjunto de palabras se escribirán utilizando solo letras mayúsculas y
minúsculas para diferenciarlas entre ellas. Por ejemplo, si se desea colocar una variable que indique
un “detalle de documento venta”, se obtendrá: detalleDocumentoVenta
Se distinguen dos clases, UpperCamelCase en la cual la primera letra de la palabra siempre
comienza con mayúscula como: GrupoManejadorBean. Y LowerCamelCase en la cual la primera
letra siempre empieza con minúscula como: manejarOperacionSuma.
3.2
Notación C
Esta notación indica que un conjunto de palabras se escribirán utilizando solo letras minúsculas y
sub-guiones para diferenciarlas entre ellas. Por ejemplo, si se desea colocar una variable que
indique un “detalle de documento venta”, se obtendrá:detalle_documento_venta.
3.3
Notación para Constantes
La notación para las constantes es semejante a la notación C con la diferencia de que las letras
siempre son mayúsculas. Por ejemplo, si se desea colocar una constante que haga alusión al
coeficiente del hielo, se tendría: ROZ_HIELO.
3
Sistema Web Ayni
Estándares de Programación
4.
Versión:
1.0
Convenciones de Nombres de Controles
Tipo de Control Prefijo
Check box
chk
Ejemplo
chkActions
Commandbutton cmb
cmbExit
CommandLink
cml
cmlExit
Dialog
dlg
dlgFileOpen
DataTable
dtb
dtbUsers
DragDrop
drp
drpGroups
Editor
edt
edtMsg
FileUpload
fup
fupDoc
FileDownload
fdw
fdwDoc
GraphicText
gra
graEdit
Growl
grl
grlMsg
InputText
txt
txtName
InputTextTarea txa
txaDescription
InputSecret
pws
pwsSign
Layout
lyt
lytContent
LightBox
lgb
lgbImages
Menu
mnu
mnuOption
OutputText
lbl
lblName
Panel
pnl
pnlGroup
PanelGrid
pni
pniColum
PanelGroup
pno
pnoSpan
SelectOneMenu som
somItems
Schedule
sch
schTask
TabView
tbv
tbvWiki
ToolTip
ttp
ttpWarning
Tree
tre
treDocs
4
Sistema Web Ayni
Estándares de Programación
Versión:
5.
Convenciones para Nombre de Elementos
5.1
Paquetes
1.0
Paquetes
Formato General
Nombre del paquete en minúsculas.
Declaración
Los nombres de los paquetes deberán ser escritos en minúscula y normalmente inicializan con
el dominio de la empresa como prefijo, en este caso usaremos el dominio de la pucp seguido
del nombre de curso y por último se agrega el nombre que englobe y describa las clases que
serán contenidas en ese paquete.
Los nombres de los paquetes deberán ser escritos en el idioma inglés.
Ejemplo
pucp.edu.pe.dp2.groups
5.2
Clases
Clases
Formato General
Nombre de la clase en notación UpperCamelCase.
Declaración
El nombre debe reflejar la responsabilidad, función, entidad que cumple o representa la clase.
Los nombres de las clases deberán ser escritos en el idioma inglés.
Ejemplo
UDPListener
5.3
Interfaces
Interfaces
Formato General
Nombre de la interface en notación UpperCamelCase agregándole el sufijo “IF”
5
Sistema Web Ayni
Estándares de Programación
Versión:
1.0
Declaración
Aquella clase que implemente una interfaz tendrá que modificar su nombre agregándole un
sufijo “Impl” de esta manera rápidamente solo con ver el nombre de la clase se podrá saber
que está implementando algún tipo de interfaz.
Los nombres de las interfaces deberán ser escritos en el idioma inglés.
Ejemplo
RemoteClientIF.
5.4
Métodos
Métodos
Formato General
Nombre del método en notación LowerCamelCase
Declaración
El nombre del método consistirá consistirá en un verbo en infinitivo y la entidad sobre la cual
recaiga la acción.
Se utiliza la notación LowerCamelCase.
Los nombres de los métodos deben ser escritos en idioma inglés.
Ejemplo
/**
* Inserta un título en la clase.
* Al ser el título obligatorio, si esnulo o vacío se lanzaráuna excepción.
*
* @paramtitulo El nuevo título
* @throwsIllegalArgumentException Si título es null, está vacío o contiene solo espacios.
*/
public void setTitle (String sTitle) throws IllegalArgumentException
5.5
Variables
Variables
Formato General
Nombre variable en notación LowerCamelCase
Declaración
- El Nombre de la variable nos da la descripción de la misma y se dará utilizando la notación
LowerCamelCase.
- Las variables deben representar lo que van a significar dentro del código para indicar al casual
lector la intención de éstas. Las excepciones podrían ser las variables que van dentro de los loop
(bucles) como por ejemplo i, j y k.
6
Sistema Web Ayni
Estándares de Programación
Versión:
1.0
Además se debe considerar como prefijo de las variables una o varias letras que identifiquen
explícitamente el tipo.
char
String
c
s
byte
short
b
Sh
int
long
i
l
boolean
double
float
bl
d
f
List(herencia)
HashMap
lst
hm
String[]
as
int[]
ai
a->
arreglo
a->
arreglo
s-->
String
i--> int
Clases propietarias
UserBean
usr
Grupo
grp
Los nombres de las variables deben ser escritos en idioma Inglés.
Ejemplo
 Auto autActual
Representa una variable que hace referencia al auto actual del tipo Auto.
 String[] asName
Representa a un arreglo de String que contiene nombres.
 List<Auto> lstCar
Representa a una lista que contiene objetos de tipo Auto.
7
Sistema Web Ayni
Estándares de Programación
5.6
Versión:
1.0
Constantes
Constantes
Formato General
NOMBRE CONSTANTE + ‘_’ + INDICADOR CONSTANTE
Declaración
- El Nombre de la constante nos da la descripción de la misma y se declarará totalmente en
letras mayúsculas.
-El Indicador de la constante nos indica el estado en el cual se encuentra la constante y se
declarará totalmente en letras mayúsculas.
- Si el nombre de la constante está formado por más de una palabra entonces dichas palabras
se separan con un guión bajo (‘_’). Utiliza la notación para constantes.
Los nombres de las constantes deben ser escritos en idioma inglés.
Ejemplo
5.7
TYPE_ACCEPT
'Representa un constante llamada TIPO, cuyo estado es Aceptado.
Archivos
Archivos
Formato General
Declaración
file + Nombre del archivo
- Los nombres de los archivos deberán ser escritos usando la nomenclatura Camel Case
particularmente el tipo lowerCamelCase, como prefijo se utilizará la palabra “file” seguida de
una palabra que describa su contenido.
Los nombres de las variables de archivos deben ser escritos en idioma inglés.
Ejemplo
filePrev
8
Sistema Web Ayni
Estándares de Programación
6.
Versión:
1.0
Convenciones para Estructuras de Control
Las estructura de control normalmente contienen una cantidad de una a más sentencias que
siempre deberán estar encerradas entre llaves( { } ). Además, si dentro de las sentencias contenidas
existiesen otras estructuras de control estas deberán tener un margen mayor izquierdo a la
estructura que la contiene. A este margen se le denomina “indentación”.
7.
Convenciones para Comentarios
Los comentarios a diferencia de las variables, clases, interfaces y métodos pueden ser escritos en
idioma español.
Tipo de Comentario
Descripción
Ejemplo
Comentarios de bloque
Permiten la descripción de ficheros,
clases, bloques, estructuras de datos y
algoritmos.
/**
* Esto es un comentario
* de bloque
*/
Comentarios de línea
Son comentarios cortos localizados en
una sola línea y tabulados al mismo nivel
que el código que describen. Si ocupa
más de una línea se utilizará un
comentario de bloque. Deben estar
precedidos por una línea en blanco.
Para colocar un comentario de una sola
línea se antepondrá dos slash (/) seguido
del comentario respectivo.
/* Esto es un comentario de línea */
Comentario situado al final de una
sentencia de código y en la misma línea.
contador++; // se incrementa contador
Comentario a final de
línea
// Esto es otro comentario de línea
9
Sistema Web Ayni
Estándares de Programación
7.1
Versión:
1.0
Comentarios de Documentación
Se utiliza como método de documentación las etiquetas de la API de javadoc. Estas etiquetas se
escriben al principio de cada clase, miembro o método, dependiendo de qué objeto se desee
describir, mediante un comentario iniciado con "/**" y acabado con "*/".
Algunos ejemplos de etiquetas tenemos a continuación en la imagen 7.1:
Imagen 7.1. Etiquetas de Javadoc
Ejemplo
/**
* Clase que representa la entidad Cliente
*
* @author Jonathan Nieto<[email protected]>
* @packageayni
* @version 1.0
*/
classClienteBeanimplementsSerializable{
}
10
Descargar