Вы находитесь на странице: 1из 11

Estndar de

Programacin
Web
Versin 1.0
Fecha de Revisin: 10 de July de
2014
Estndar de Programacin Web
TABLA DE CONTENDO!
NT"OD#CC$N
El presente documento tiene el propsito de entregar recomendaciones para la
programacin que ayuden a obtener cdigos ms legibles! me"or estructurados! ms
portables! y por tanto #cilmente mantenibles! para los propios desarrolladores $eb%
&abe aclarar que este documento ser un ane'o al Estndar de Programacin! por
lo tanto lo e'puesto aqu( esta basado en )l%
Universis, Sistema de Informacin Acadmico 2
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
CONVENC$N DE NO%B"E!
*e mantienen las reglas del Estndar de Programacin! pero se agregan las
siguientes
Nombre de &ariab'es(
+ebe ser un sustantivo ,simple o compuesto-%
+ebe representar el dato que contendr la variable sin que el nombre sea
demasiado largo%
Es recomendable usar min.sculas para cada una de las palabras que #orme el
nombre% /ambi)n se puede usar el carcter de subrayado ,underscore- para
separar las palabras% *i el nombre es una abreviatura o una palabra corta! o est
#ormado por varias palabras separadas con el underscore! entonces el nombre
puede ser todo en min.sculas%
*i son usadas en ms de una pgina! sern de tipo )'oba' y se iniciar con una
g su nombre%
*i son usadas en una sola pgina! sern de tipo instancia y se iniciar con una
i su nombre%
*i son usadas en una #uncin! sern de tipo arg*mento y se iniciar con una a
su nombre%
0as cone'iones o consultas se iniciarn con una + y se les agregar el nombre
del procedimiento al que hace re#erencia ,sin su nemot)cnico inicial- o un
nombre representativo de la consulta%
1niciar el nombre de la variable con un nemot)cnico en min.sculas que
represente el tipo de dato de la variable% +e esta #orma! es muy #cil saber
siempre el tipo de dato de la variable%
*e pueden usar palabras de diversos idiomas ,espa2ol e ingl)s pre#eriblemente-!
pero evitar el uso de ms de un idioma en el nombre de una variable ya que
puede generar con#usin%
3unque el lengua"e lo permita! en los nombres de variables no se debe usar
caracteres que no sean los del al#abeto ingl)s% ,e"emplo: caracteres con acentos
diacr(ticos: ! )! (! ! .! 2! etc%-% Esto evita problemas de portabilidad a otros
lengua"es%
E,em-'os(
3lcance /ipo de dato 4ombre 5ariable
6lobal 0ong gl7ruta7acceso
1nstanci
a
*tring is7Ruta
Functio
n
argume
nt
1nteger ai7dv
Universis, Sistema de Informacin Acadmico 3
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
8uery
0lamar al procedimiento
979034E*714F:R;3&1:47<3*1&3
q7
9034E*714F:R;3&1:47<3*1&3
Nombre de .*nciones(
+ebe comen=ar con la letra . seguido de un verbo o #orma verbal que indique
accin o interrogacin%
0as #unciones 9o>erdynamo y Javascript deben estar de?nidas al inicio de la
pgina que la utili=a%
+ebe representar lo que hace la #uncin sin que el nombre sea demasiado largo%
Es recomendable usar may.scula inicial y el resto en min.sculas para cada una
de las palabras que #orme el nombre%
4o utili=ar el carcter de subrayado ,underscore- para separar las palabras%
*e pueden usar palabras de diversos idiomas ,espa2ol e ingl)s pre#eriblemente-!
pero evitar el uso de ms de un idioma en el nombre de una #uncin%
0as palabras que #ormen el nombre pueden ser en abreviatura! pero no abusar
de esto% 0as abreviaturas deben ser ampliamente conocidas%
3unque el lengua"e lo permita! en los nombres de #unciones no se debe usar
caracteres que no sean los del al#abeto ingl)s y el underscore ,e"emplo:
caracteres con acentos diacr(ticos: ! )! (! ! .! 2! etc%-% Esto evita problemas de
portabilidad a otros lengua"es%
E"emplos
#7Eliminar9arra#o,-
#7@nir9arra#o&on*gte,-
#76et4umberFor4e>9aragraph,-
Universis, Sistema de Informacin Acadmico 4
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
CONVENCONE! PA"A C$D)O /#ENTE
Comentarios a' cdigo
En los comentarios se puede usar cualquier carcter incluyendo caracteres con
acentos diacr(ticos ,! )! (! ! .! 2! etc%-! s(mbolos! etc%
/oda #uncin debe tener una e'plicacin de lo que hace% Esta e'plicacin debe
describir los parmetros de entrada y salida! as( como los requisitos que deben
cumplir los mismos% En ocasiones! el nombre usado en la #uncin es tan
descriptivo que hace obvio el #uncionamiento de la misma y no es necesario
incluir documentacin para la #uncin%
E,em-'os(
AA BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBC
#unction #7EsR@/5alido,ai7rut! ai7dv-
D
E
AA BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBC
AF ;ostrar los enlaces de pginas que contiene la seccin%
9armetros de entrada:
a7id : id de la seccin
a7claseFor0inGs : nombre de la clase de estilos a usar en los linG FA
#unction #73rticulo2H,ai7rut!ai7carrera!ai7periodo!ai7plan!ai7version-
D AAReali=a una b.squeda para saber si al
alumno AAse le aplica el 3rt% 2H y muestra en AApantalla
dichas resoluciones% AA9armetros de entrada:
AAa7rut: rut del alumno AAa7carrera: carrera a la cual pertenece
el AAalumno AAa7periodo: periodo que se
quiere consultar AAa7plan : plan del alumno AAa7versin:
versin del decreto
D
Universis, Sistema de Informacin Acadmico 5
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
*e ha acordado que las #unciones "avascript sean documentadas al principio de
la pgina para que no haya ?ltracin de cdigo%esto se har en lengua"e de
servidor ,9I9! 9o>er+ynamo% E/&- (agregado el 24/06/2004)
E"emplo
/***
INICIO EXPLICACION FUNCIONES A!SC"IP#
F$ObtenerNota% &'ncin ('e b)ab)ab)a
Parmetros de entrada% ai$r't$a)'mno
Parmetros de sa)ida% no tiene*
F$obtener$&ic+a%,,*
FIN EXPLICACION FUNCIONES A!SC"IP#
***/
Es buena prctica tambi)n poner comentarios a las variables al declararla% Este
comentario puede re#erirse a los datos que contendr la variable as( como a los
posibles valores%
4o es necesario ni recomendable ponerle un comentario a cada instruccin%
*e deben documentar instrucciones comple"as o grupos de instrucciones que
realicen alguna accin representativa%
E,em-'os(
AA /E;903/E 8@E 6E4ER3 03 &:4*@0/3 +E 0:* 30@;4:* AA;3/R1&@03+:*
9:R 9ER1:+: 3&3+E;1&:!
AAE4/RE634+: 0:* RE*@0/3+:* E4 @4 3R&I15: EJ&E00%
AA &reado por Juan 9)re=
AA #echa creacin: 2 "unio 2001
El comentario a una instruccin espec(?ca debe quedar pegado a la misma! ya
sea por encima! por deba"o yAo al ?nal de la l(nea% &uando el comentario se
re?ere a un grupo de instrucciones! entonces es recomendable ponerlo antes de
Universis, Sistema de Informacin Acadmico 6
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
las instrucciones y de"ar una l(nea en blanco de separacin por encima yAo por
deba"o del comentario%
E,em-'os(
AA *i el curso e'iste en el diccionario
i# ,gi7&urso-
AA /omar los cr)ditos que tiene el curso
li7posibles7creds7curso K gi7&ursoL
else AA *i el curso no e'iste en el diccionario
AA 3signarle 10 cr)ditos por de#ecto
li79osibles7&reds7&urso K 10L
ndentacin
*e recomienda usar indentacin a 2 espacios% 0a indentacin a 1 espacio es casi
imperceptible y de ms de 4 espacios es vlida! pero cuando se tienen bloques
de instrucciones con varios niveles de indentacin! las instrucciones ms
indentadas quedan muy despla=adas a la derecha%
*iempre mantener la indentacin aunque se me=cle cdigo de varios lengua"es
,E"%: I/;0! 9o>er+ynamo! Java*cript-% %%%
0os bloques de instrucciones deben indentarse con relacin a la instruccin que
controla el bloque% 0os bloques comien=an con una marca de inicio ,D! begin!
etc%- y terminan con una marca de ?n ,E! end! etc%
Es ms legible colocar la marca de inicio de un bloque en una l(nea deba"o de la
instruccin que inicia el control del bloque! alineada verticalmente con la marca
de ?n del bloque%
1ndicar inicio y t)rmino de ciclos muy largos mediante sistema de n*meracin
0 comentarios% 0a idea de la numeracin consiste en indicar inicio y termino de
ciclos por niveles% 3 eso se le debe agregar un peque2o comentario de lo que
hace el ciclo al inicio%
E,em-'os(
Universis, Sistema de Informacin Acadmico 7
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
i# ,gi7cielo KK MnubladoM
D AA1:si el cielo esta nublado o no
ls7pronostico K MlluviaML
gs73gregar3&ompras,MparaguaM-L
E AAN1:?n
o >hile ,%%%-
D AAinicio >hile
i# ,%%%-
% % %
E AA?n >hile
*e deben indentar los case dentro de los s>itch y a su ve= las instrucciones
dentro de los case%
E,em-'o(
s>itch ,#ruta-
D
case 1:
document%>rite,M4aran"aM-L
breaGL
case 2:
document%>rite,M9ltanoM-L
breaGL
case O:
document%>rite,M;an=anaM-L
breaGL
de#ault:
document%>rite,MFruta
desconocidaM-L
E
)enera'es
En lengua"es! como Java*cript! donde no es obligatorio usar separador de
instrucciones ,generalmente el carcter punto y coma-! se recomienda usarlo
siempre%
0os parmetros de las #unciones se deben disponer de #orma que el separador
de parmetros ,generalmente la coma- quede pegado al ?nal de cada
parmetro pero con un espacio despu)s! o sea! antes del pr'imo parmetro!
Universis, Sistema de Informacin Acadmico 8
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
quedando la lista de parmetros #ormateada similar a como se debe escribir una
oracin del idioma natural%
E,em-'os(
o boolean #7R@/valido,a7rut! a7dv-
9oner siempre un espacio alrededor de los operadores ya que las instrucciones
son ms legibles%
E,em-'os(
o ' K yL
o ' K y P = F aL
*in embargo! no es recomendable aplicar esto en los atributos de los tags en
I/;0! ya que el espacio es tambi)n un separador de atributos y por tanto si se
agregan espacios entre los operadores! empeora la legibilidad del cdigo%
E,em-'o(
Es mas legible:
Q/3<0E <:R+ERK1 &E0093++146KO &E00*93&146K0 $1+/IKM100RMC
que:
Q/3<0E <:R+ER K 1 &E0093++146 K O &E00*93&146 K 0 $1+/I K M100RMC
&uando hay varias instrucciones de asignacin en #orma consecutiva! es
recomendable alinear verticalmente por el operador de asignacin%
E,em-'os(
o En $E<:
6i7&ant K SL
li 5eces K 12L
o En &**:
Universis, Sistema de Informacin Acadmico 9
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
3
D
te'tBdecoration :
noneL
color :
N<<0000L
#ontB#amily :
3rialL
#ontBsi=e : HptL
E
4o abusar de la precedencia de operadores% *e recomienda usar siempre
par)ntesis para agrupar%
E,em-'o(
0a e'presin:
' C 0 34+ y C S :R = KK 10
se lee me"or as(:
,' C 0 34+ y C S- :R = KK
10
o incluso as(:
,,' C 0- 34+ ,y C S-- :R ,=
KK 10-
Evitar el uso de consultas *80 e'plicitas% /ratar de usar siempre procedimientos
almacenados%
E,em-'os(
o En ve= de esto:
var l7c7periodo K T *E0E&/ /9E7+E*&R19&1:4
FR:; /79ER1:+: $IERE
/9E7/19:KTPv7t7periodoL
;y8uery7p K my&onn%&reate8uery,periodo-L
o Iacer esto:
var consulta K Te'ec 97$730@;4:7R:0 TL
consulta PK T U9734:KTPdocument%value%anoL
consulta PK T! U974@;ER:79ER1:+:KTPv7n7periodoL
consulta PK T! U97/79ER1:+:KTPv7t7periodoL
consulta PK T! U973&&1:4K1TL


Universis, Sistema de Informacin Acadmico 10
12 Febrero 21, Valparaso
032-273955 / 032-273926
Estndar de Programacin Web
my8uery K my&onn%&reate8uery,consulta-L

empty7query K Vmy8uery%6etEmpty,-L
!e recomienda +*e 'os -arametros +*e reciba cada -gina se
a'macenen en &ariab'es de1nidas 0 se dec'aren a' -rinci-io de 'a
-gina..
&rear un nombre de las pginads o scripts representativo de lo que haga y que
tal nombre comience con el nombre de carpeta donde se encuentra% 3dems
agregar una descripcin a trav)= de sus propiedades! utilidad que o#rece
9o>er+ynamo%
Escribir todas las etiquetas I/;0 en ;ayusculas%
E,em-'os(
var ii73no K document%value%anoL
ii79eriodo K document%value%v7n7periodoL
ii7/9eriodo K document%value%t7periodoL
N/O"%E 2 %APA DEL !TO.
*e deber entregar un in#orme que indique el mapa de navegacin del nuevo
mdulo creado y donde ser(a incluido en el 435E63+:R $eb% 3dems se recomienda
entregar los tiempos de respuesta de las pginas%

Universis, Sistema de Informacin Acadmico 11
12 Febrero 21, Valparaso
032-273955 / 032-273926

Вам также может понравиться