Guia Estilo JAVA

Share Embed Donate


Short Description

Descripción: Guia Estilo JAVA...

Description

Guía de estilo de programación en Java  Pequeños consejos sobre sobre cómo escribir programas programas más legibles.

Índice Guía de estilo de programación en Java....................................................................................... Java...............................................................................................1 ........1 1Introducción................................. 1Introducción............................................................... ............................................................... ............................................................... ...................................3 .....3 2Indicaciones generales........................................... generales................................................................................. ........................................................................3 ..................................3 3Identificadores................................................ 3Identificadores................................................................................................. ...............................................................................5 ..............................5 3.1Identificadores 3.1Identificadores de clases.......................................................................................... clases........................................................................................................5 ..............5 3.2Identificadores 3.2Identificadores de atributos y variables locales.....................................................................6 3.3Identificadores 3.3Identificadores de constantes...................................................................... constantes.................................................................................................6 ...........................6 3.Identificadores 3.Identificadores de ob!etos..................................... ob!etos................................................................................................. ................................................................." ....." 3.5Identificadores 3.5Identificadores de m#todos................................. m#todos............................................................................................... ..................................................................." ....." 3.5.1Identificadores 3.5.1Identificadores de variables locales en m#todos............................................................" 3.6$efinición de variables locales..............................................................................................% locales..............................................................................................% &omentarios................................. &omentarios............................................................... ............................................................... ............................................................... ...................................' .....' .1&omentarios de inicio de blo(ue.......................................... blo(ue...................................................................... ..................................................' ......................' .2&omentarios aclaratorios..................................... aclaratorios............................................................ ................................................ ..........................................1) .................1) .3&omentarios sobre m#todos..................................................... m#todos.............................................................................................. ............................................1) ...1) 5$isposición de elementos............................................................................................ elementos............................................................................................................11 ................11 5.1&lases.................................................... 5.1&lases................................................................................................... ...............................................................................11 ................................11 5.2$isposición de elementos en cada fic*ero...........................................................................12 fic*ero...........................................................................12 5.3+#todos........................... 5.3+#todos..................................................... ................................................... ................................................... ..................................................13 ........................13 5.3.1,structuras de decisión y repetición..................................................... repetición.............................................................................1 ........................1 6-ibliografía............................................. 6-ibliografía................................................................................. .................................................................... .................................................15 .................15

Guía de estilo de programación en Java

2

Guía de estilo de programación en Java 1 Introducción ,n este documento se eplica brevemente/ y con e!emplos/ cómo escribir programas m0s sencillos de entender.  lo largo de su vida profesional/ cual(uier programador se plantea la pregunta de cómo escribir sus programas de manera (ue sean m0s legibles/ y por tanto (ue puedan ser  mantenidos corrección de errores/ ampliación de funcionalidad con facilidad/ tanto por #l mismo como por otros programadores una situación típica en cual(uier empresa. $ado (ue la misma situación en cuanto a legibilidad de código suele ser resuelta por  distintos programadores de la misma forma/ pero con distintos matices de diferenciación/ es interesante seguir una guía de estilo (ue nos epli(ue como otros resolvieron ese mismo problema/ *asta (ue dic*a solución se convirtió en un est0ndar. 2 Indi Indica caci cion ones es gene genera rale les s ,l propósito de seguir una norma de estilo es *acer (ue el código fuente de un programa sea tan legible como sea posible. sí/ *ay tres puntos b0sicos (ue se deben cuidar4 el espaciado *oriontal/ el espaciado vertical y la indentación. ,l espaciado *oriontal consiste en (ue las líneas en las (ue est# dividido el código fuente deben ser de una longitud m0ima lo m0s próima posible a ") caracteres/ ya (ue al imprimir el código en papel cual(uier línea superior a %) columnas se corta autom0ticamente. no de los problemas (ue se puede encontrar al codificar es la manera m0s correcta para dividir una línea muy larga. 7espuestas comunes a esta pregunta son4 despu#s de una coma en una llamada a un m#todo/ por e!emplo. antes de una subepresión/ antes de un operador/ o antes de un  par#ntesis. 8or 8or e!emplo4 int x = ( (a * b + c ) / ( c * d * d ) )

+ ( a / ( b * c ) ) + ( ( 3.1451927 * b ) + d );

9e recomienda separar las palabras reservadas  if / while.../ los operadores/ así como los  par#ntesis/ mediante espacios para mayor claridad/ a ecepción *ec*a de operadores unarios como el incremento o decremento/ tanto postfi!o como prefi!o/ (ue suelen colocarse pegados al operando al (ue modifican. ,l uso típico incluye adem0s el separar con un espacio los argumentos en las listas de par0metros formales y de argumentos/ los corc*etes del operador de subíndice/ y los operadores como :/ ;. . int x = a + b; int z = Math.pow( x, y );

n!"#$%&t'o& = .&%z#() + '#$%&t'o&ab#c#'a % ; if ( x  - ) 

// !& co&a&... 0

,l espaciado vertical consiste en cu0ntas líneas ocupa un m#todo/ o una clase/ en el código fuente. ,n general/ es ?til autoimponerse un límite de una *o!a por cada m#todo. ,s etra@o/ siempre (ue la función miembro no consista en multitud de acciones repetitivas como escribir en 3

Guía de estilo de programación en Java un arc*ivo/ o realiar una serie de incialiaciones/ (ue una función miembro bien dise@ada ocupe m0s all0 de un folio. ,n caso contrario/ ser0 conveniente considerar (ue posiblemente sea interesante subdividirlo en varios m#todos privados. dem0s/ en el espaciado vertical intervienen las llaves (ue se emplean para marcar el comieno y fin del cuerpo de una función/ de un bucle/... cada una de esas llaves puede llegar a consumir una línea por sí sola/ incluso dos. sí/ para salvar algo de espacio vertical/ se suelen mantener las llaves de apertura y cierre/ cada una en una línea/ para el cuerpo de las funciones miembro y funciones/ y en cambio colocar la llave de apertura en la misma línea para bucles y estructuras de decisión a esto se le conoce como estilo  Kernighan&Ritchie. 8or e!emplo4  public class class  Mat#&   public static static int  d%%d#(int a, int b)

 if ( b = - )  return  a / b;

0 return  -; 0 // !& co&a&...

0

...si bien en un programa real ser0 muc*o m0s adecuado responder a la contingencia (ue supone dividir un n?mero entre cero/ (ue responder con cero AsilenciosamenteB/ lo cual supone un error no detectado. sí/ por regla general la llave de apertura se coloca en la misma línea/ siempre y cuando no se trate de la llave de apertura de un m#todo/ o (ue en una sentencia if   se encuentren varias subcondiciones. Ca indentación es vital para poder comprender r0pidamente los elementos funcionales de un  programa. sí/ el cuerpo las instrucciones de una función o función miembro debe estar alineado en su margen i(uierdo m0s a la derec*a (ue la cabecera de una función/ de la misma forma (ue un  bucle dentro de esa función y así así sucesivamente. sucesivamente. 8or e!emplo4  public class class  Mat#&   public static static int  ##a(int x, int y)

 int to'#t = x; for(; y  1; y) 

to'#t *= x; 0 return  to'#t;

0 0



Guía de estilo de programación en Java 3 Iden Identi tifi fica cado dore res s Cos identificadores se utilian en varias innumerables ocasiones en programación4 clases/ atributos/ m#todos/ constantes/ variables locales .../ y son claves para entender (u# valores puede contener una variable/ (u# *ace una función miembro o a (u# ob!etos representa una clase. 8or eso/ *ay (ue poner especial cuidado en su elección. Dambi#n ser0 interesante seguir unas pe(ue@as reglas a la *ora de escribir un identificador (ue *agan (ue a su ve podamos obtener el m0imo significado del mismo si se est0 leyendo en un listado. ,n general/ los identificadores deben ser tan cortos como sea posible/ pero a la ve tan informativos como sea posible. ,n general/ las clases/ atributos y variables locales se nombrar0n con sustantivos  Coche/ Casa/ mientras para los m#todos se utiliar0n verbos en su forma imperativa divide/ compara. +uc*as veces/ adem0s/ es imposible utiliar un solo sustantivo para nombrar una clase/ atributo/ o variable localE en ese caso/ se concatenar0n todos para formar el identificador final/ poniendo cada inicial en may?scula. 9i bien algunos lengua!es modernos lo  permiten como Java/ a trav#s del soporte unicode/ evítense los acentos/ las di#resis... en los identificadores.

3. 3.11 Iden Identi tifi fica cado dore ress de de cla clase sess Cos identificadores de clases deberían corresponderse con sustantivos de la vida real o del concepto (ue se est0 modelando con el programa. sí/ identificadores de clases pueden ser4 Casa/ Coche/ Barco/ Cuenta... ,l identificador de la clase/ en caso de estar compuesto por m0s de una palabra/ se construye concatenando concatenando todas las palabras/ y poniendo la inicial de cada una de estas palabras en may?sculas. 8or e!emplo4 CuentaCorriente/ VehiculoConMotor/ VehiculoSinMotor.  public class class  "#ctan$o 

// !& co&a& ... 0  public class class  %'co 

// !& co&a& ... 0  public class class  och# 

// !& co&a& ... 0  public class class  #ntao''%#nt# 

// !& co&a& ... 0

5

Guía de estilo de programación en Java

3.2 Ident Identifi ificad cadore ores s de atribut atributos os y variabl variables es locale localess Cos identificadores de datos miembro siguen las mismas normas (ue los de las clases/ pero con la  primera inicial en min?scula. sí/ por e!emplo/ identificadores v0lidos son identificadorompleto/  precio!uros  precio!uros/ ...  public class class  #ntao''%#nt#   private double double  &ado'o&;  public #ntao''%#nt#(double &ado)

 &ado'o& = &ado; 0  public double double  $#tado()

 return  &ado'o&;

0 // !& co&a& ... 0

3. 3.33 Iden Identi tifi fica cado dore res s de const constan ante tess Cos identificadores de constantes siguen un formato muy especial4 siempre en may?sculas/ y en caso de contener varios nombres/ estos se concatenan utiliando el car0cter subrayado FF. ,sto incluye las constantes de los enumerados.  public class class  #ntao''%#nt#   public static static final double double  6"88: = 1"" ); y&t#!.ot.p'%ntn( DadoE D + c#nta.$#tado() ); 0 0

3. 3.!! Iden Identi tifi fica cado dore res s de m"t m"tod odos os Cos identificadores de funciones miembro siguen las mismas reglas de may?sculas y min?sculas (ue para atributos/ variables locales y ob!etos. 9in embargo/ deben escogerse verbos de manera (ue sugieran de manera intuitiva (u# *acen. sí/ el identificador debe ser un verbo en imperativo o al menos contener uno. Cos m#todos (ue sirven para obtener el valor de un atributo deben llevar el  prefi!o get . int $#tdad();  boolean #&:a%nd'o!o(t'%n$ &);

,vítensen identificadores como los siguientes4 int p'  p'oc#&a'(F%# G); t'%n$ t'%n$ pa&o pa&ox% x%%a' %a'(t (t'%n '%n$ $ ax); ax); void   p'  p'oc#&aI#nta();

// MaE %d#nt%G%cado' no %nt%t%o // MaE MaE %d#nt% %d#nt%G%c G%cado ado' ' #''Hn# #''Hn#o o // MaE J%%d%' #n do& Gnc%on#&

&uando un identificador contiene una con!unción como  "/ es signo ine(uívoco de (ue la función (ue nombra realia m0s de una tarea y debe ser por tanto separada en dos funciones separadas. Cos me!ores identificadores son a(uellos (ue describen con un identificador m0s corto/ y a la ve de manera m0s específica lo (ue *ace el m#todo. dem0s/ es interesante seguir ciertas pautas4 en el caso de funciones miembro (ue devuelven un booleano un valor verdadero o falso/ es interesante nombrarlos con un prefi!o formado por los verbos ser o estar/ como4  boolean #&:a%nd'o!o(t'%n$ &);  boolean #&:a'(int x);  boolean G#Mod%G%cada(:#'&ona p);

3.5.1 3.5.1 Identif Identificad icadores ores de de variabl variables es local locales es en métod métodos os

,n el caso de variables locales de funciones miembro/ eisten varias particularidades. 8or e!emplo/ a las variables locales empleadas en bucles se les suele asignar identificadores de una letra tipo FiF y F!F/ tambi#n en el caso de algunos argumentos simples de m#todos como FsF o FF/ si bien este caso es me!or/ sin embargo/ evitarlo/ cuando sea posible/ y asignar identificadores descriptivos.  public class class  ad#na&   public static t'%n$ cap%ta%za?n%c%a(t'%n$ &)

"

Guía de estilo de programación en Java   &.to6pp#'a&#().cha't( t( - ) return  &.to6pp#'a&#().cha' + &.toCow#'a&#().&b&t'%n$( 1 ); 0 0

Cos identificadores de variables tambi#n pueden informar sobre para (u# se utilia esa variable/ y no restringirse a tan solo información sobre (u# valores alberga. 8or e!emplo/ en el código siguiente toret  a  a retornar es una variable (ue se utilia en todas las funciones para devolver  un valor.  public class class  ad#na&   public static static  t'%n$ #xt'a#on&onant#&(t'%n$ &)

 final  t'%n$ oca#& = Da#%oK; t'%n$B%d#' t'%n$B%d#' to'#t = new t'%n$B%d#'(); for (int % = -; % L &.#n$th(); ++%)  final char  ch = &.cha't( % ); if ( oca#&.%nd#xG( ch ) L - ) 

// @o #ncont'ado #n oca#&, %n&#'ta' to'#t.app#nd( to'#t.app#nd( ch ); 0 0 to'#t.tot'%n$(); return to'#t.tot'%n$(); 0 0

3.# $efini $efinició ción n de variab variables les locale localess 9e debe colocar cada variable en una línea/ incluso siendo del mismo tipo/ para maimiar la legibilidad. Cas variables locales siempre se colocan al comieno de cada blo(ue/ (ue siempre va delimitiado por llaves FHF y FF. Dambi#n Dambi#n debe tratarse de inicialiar las variables lo antes posible.  public class class  :pa   x, y;  private int x,

// MC

  !a%n(t'%n$ a'$&)  !a%n(t'%n$  public static static void   int x = -; int y = 1;  c, c2; char  c,

// MC

t'%n$ to'#t = DK; // !& co&a& ... 0 0

%

Guía de estilo de programación en Java 4 Comentarios n comentario debe ser siempre clarificador/ ?til/ y/ en cambio/ cuanto m0s corto me!or. ,n  particular/  particular/ debe cuidarse en no insultar la inteligencia del lector en determinadas ocasiones/ comentando secuencias de código obvias y desesperarlo al encontrarse con construcciones comple!as (ue no tienen ning?n comentario. a'#a"#ctan$o = ado1 * ado2; int a'#a"#ctan$o

// caca '#a // caca '#a d# c'co // :? #& 3.1415927

a'#a%'co = :? * ' * ';

,n el conteto del e!emplo anterior/ el tercer comentario es absolutamente innecesario/ mientras (ue los dos primeros son cuestionables/ siempre (ue los identificadores *ayan sido escogidos cuidadosamente/ cuidadosamente/ como es el caso. &uando los identificadores son tan significativos (ue el  propósito es obvio/ el código se conoce como autocomentado. ,sto no (uiere decir (ue los comentarios sean siempre opcionales. a'#a"#ctan$o = ado1 * ado2; int a'#a"#ctan$o

// caca # '#a #n c!&N2

4.1 %oment %omentari arios os de inici inicio o de de blo& blo&ue ue ,isten dos tipos b0sicos de comentarios/ los (ue podríamos denominar comentarios encima/ y los (ue podríamos denominar comentarios a la derecha. Cos m0s recomendables son los primeros/ pues suelen eplicar un blo(ue de código/ a modo de p0rrafo/ aclarando muc*o la lectura.  public class class  :#'&ona   public :#'&ona(t'%n$ n, int #)

 no!b'# = n; #dad = #; 0  public t'%n$ $#t@o!b'#()

 return no!b'#;

0  public int $#tdad()

  #dad; return #d

// n aOo&

0  public t'%n$ tot'%n$()

 // Fo'!at#a' no!b'# t'%n$ no!b'# = ad#na&.cap%ta%za?n%c%a( $#t@o!b'#() ); // on&t'%' %nGo d# p#'&ona t'%n$ to'#t = $#t@o!b'#() + DE D + $#tdad(); '#t'n to'#t; 0 0

'

Guía de estilo de programación en Java

4. 4.22 %ome %oment ntar ario ioss acl aclar arat ator orio ioss Cos comentarios a la derecha deben emplearse como mensa!es aclaratorios/ intentando mantener  especialmente en ellos la concisión/ pues es f0cil (ue se alcancen r0pidamente m0s de oc*enta caracteres en esa línea. gravando a?n m0s este ?ltimo problema/ deben colocarse ale!ados del código (ue aclaran para (ue sean visibles. // co& p'#%o& a '#nd#'%n$ a'#a"#ctan$o a'#a"#ctan$o = ado1 * ado2;

// #n c!&

4. 4.33 %ome %oment ntar ario ioss sob sobre re m"to m"todo doss $esde la llegada del lengua!e Java/ y su *erramienta de documentación/  #avadoc/ se *an generaliado los comentarios formateados con un determinado estilo/ y aceptando unos determinados par0metros de documentación embebidos en ellos. sí/ cuando un comentario/ en lugar de empear por
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF