Você está na página 1de 3

BUENAS PRCTICAS DE PROGRAMACIN

1. Escriba sus programas de C sencillo y directamente. Esto a veces se conoce como


mantelo simple. No estire el lenguaje intentando usos raros.
2. Lea los manuales de la versin de C que est empleando. Consulte estos manuales con
frecuencia para asegurar que tenga presente el rico conjunto de caractersticas de C y
que est empleando correctamente estas caractersticas.
3. Su computadora y su compilador son buenos maestros. Si tras la lectura de su manual
del lenguaje C no est seguro del funcionamiento de alguna caracterstica de C,
experimente con un pequeo programa de prueba y vea lo que sucede. Ajuste las
opciones de su compilador para que le devuelva el mximo de avisos. Estudie cada
mensaje que aparezca al compilar sus programas y corrjalos para eliminar los
mensajes.
4. Cada programa debe comenzar con un comentario que describa su propsito.
5. Muchos programadores hacen que el ltimo carcter impreso por una funcin sea un
saldo de lnea (\n) Esto asegura que la funcin dejar el cursor al inicio de una nueva
lnea. Las convenciones de esta naturaleza promueven la reutilizacin del software, meta
clave en los entornos de desarrollo de software.
6. Dentro de los corchetes que definen el cuerpo de una funcin, sangre el cuerpo de la
funcin un nivel. Esto resalta la estructura funcional de los programas y ayuda a
simplificar su lectura.
7. Establezca una convencin para el tamao de las sangras y luego aplquela de manera
uniforme. La tecla Tab sirve para crear sangras, pero las tabulaciones pueden variar.
Recomendamos manejar tabulaciones de de pulgada o (de preferencia) de tres
espacios por cada nivel de sangra.
8. Algunos programadores prefieren declarar las variables en lneas separadas. Este
formato permite la fcil insercin de comentarios descriptivos junto a cada declaracin.
9. Para hacer ms legibles sus programas, ponga espacios despus de las comas (, )
10. La declaracin de variables con nombres significativos ayuda a que los programas
estn auto documentados, es decir, que resulte ms fcil entenderlos simplemente
leyndolos en lugar de tener que consultar manuales o hacer referencia a demasiados
comentarios.
11. Evite los identificadores que comiencen con uno o dos caracteres de subrayado, pues
podra ser que el compilador de C utilice nombres de este tipo para fines internos. Esto
evitar que los nombres que usted determine se confundan con los nombres que el
compilador seleccione.
12. Siempre inserte una lnea en blanco antes de una declaracin que aparezca entre
instrucciones ejecutables. Esto resalta las declaraciones y contribuye a la claridad del
programa.
13. Si prefiere poner declaraciones al inicio de una funcin, seprelas de las instrucciones
ejecutables de la funcin por medio de una lnea en blanco que resalte el punto donde
terminan las declaraciones e inician las instrucciones ejecutables.
14. Ponga espacios en ambos lados de los operadores binarios. Con esto se resalta el
operador y se simplifica la lectura del programa.
15. Como en lgebra, para hacer ms clara a una expresin es aceptable
agregarle parntesis innecesarios. Dichos parntesis se llaman parntesis redundantes.
Estos se emplean normalmente para agrupar subexpresiones de expresiones ms
grandes.
16. Sangre la instruccin del cuerpo de una estructura if para que resalte la estructura y
simplificar la lectura del programa.
17. En los programas no debe haber ms que una instruccin por lnea.
18. Es posible distribuir una instruccin grande sobre varias lneas. Si tiene que dividir una
instruccin sobre varias lneas, seleccione puntos de ruptura que tengan sentido, como
despus de una coma en el caso de una lista separada por comas o despus de un
operador en el caso de una expresin larga. Si necesita dividir una instruccin en varias
lneas, sangre todas las lneas subsecuentes.
19. Al escribir expresiones que contengan muchos operadores, consulte la tabla de
precedencia de los operadores. Confirme que los operadores de la expresin se
ejecutan en el orden que espera. Si no est seguro del orden de evaluacin de una
expresin compleja, coloque parntesis para forzar el orden, justo igual como lo
hara en una expresin algebraica. Adems, observe que algunos operadores,
como el de asignacin (=), se asocian de derecha a izquierda, y no de izquierda a
derecha.
20. La consistencia en la aplicacin razonable de convenciones de sangrado a sus programas
simplificar notablemente su lectura. Sugerimos una tabulacin fija de de pulgada o
tres espacios en blanco por cada sangra.
21. El seudo cdigo se emplea con frecuencia para pensar el programa durante el
proceso de diseo. Luego el programa en seudo cdigo se convierte a su equivalente en
C.
22. Sangre las instrucciones de ambos cuerpos de las estructuras if/else.
23. Si hay varios niveles de sangrado, todos deben sangrarse con espacios iguales.
24. Siempre ponga llaves en las estructuras if/else (y en cualquier estructura de control)
para ayudarle a evitar su omisin accidental, especialmente si despus le agrega
instrucciones a una clusula if o else.
25. Algunos programadores prefieren colocar primero las llaves izquierda y derecha y
despus introducir las instrucciones que van dentro de ellas. Con esto se evita la omisin
de alguna de dichas llaves.
26. Inicialice los contadores y totales.
27. Declare cada variable en una lnea diferente.
28. Al efectuar divisiones entre una expresin cuyo valor podra ser cero, busque
explcitamente esta condicin y manjela de manera adecuada (imprimiendo un
mensaje de error) en lugar de permitir que suceda el error fatal.
29. Mediante un mensaje pdale al usuario todas las entradas de teclado. Dicho mensaje
debe especificar la forma de la entrada y los valores especiales que pueda tener (como
el valor centinela que debe indicar el usuario para terminar algn ciclo)
30. En los ciclos controlados por un valor centinela, las solicitudes de entrada de
informacin deben recordarle explcitamente al usuario dicho valor centinela.
31. No compare la igualdad o desigualdad de los valores de punto flotante. En cambio,
pruebe que el valor absoluto de la diferencia sea menor que un valor pequeo
especificado.
32. La iniciacin de variables cuando se declaran ayuda al programador a evitar
los problemas provocados por datos no inicializados.
33. Los operadores unarios deben ponerse junto a sus operandos, sin espacios intermedios.
34. Controle los ciclos con contadores por medio de variables enteras.
35. Sangre las instrucciones del cuerpo de cada estructura de control
36. Ponga una lnea en blanco antes y despus de cada estructura de control, con el fin de
resaltarlas en el programa.
37. Si hay demasiados niveles de anidamiento puede volverse difcil entender el programa.
Como regla general, trate de evitar codificar ms de tres niveles de sangrado.
38. El espaciado vertical de las estructuras de control, as como el sangrado de los
cuerpos de las estructuras de control dentro de sus encabezados, le da al programa una
apariencia bidimensional que simplifica en gran medida su lectura.
39. Para ayudarle a evitar los errores por diferencia de uno, utilice el valor final en la
condicin de una estructura while o for y el operador relacional <=. Por ejemplo,
para un ciclo que imprime los valores 1 a 10, la condicin de continuacin del
ciclo debera ser contador <= 10, en lugar de contador < 10 (lo que es un error
por diferencia de uno) o contador < 11 (que, sin embargo, es correcta) No obstante,
muchos programadores prefieren el llamado conteo basado en cero, en el que para
contar 10 veces, habra que inicializar contador a cero y la prueba de continuacin
del ciclo sera contador < 10.
40. En las secciones de iniciacin e incremento de las estructuras for slo ponga
expresiones relacionadas con las variables de control. Las manipulaciones de otras
variables deben aparecer antes del ciclo (si slo se ejecutan una vez, como las
instrucciones de inicializacin) o en el cuerpo del ciclo (si se ejecutan una vez por
repeticin, como en el caso de las instrucciones de incremento o decremento)
41. Aunque el valor de la variable de control puede cambiarse en el cuerpo del ciclo for,
evite hacerlo, pues esta prctica puede generar sutiles errores de lgica.
42. Aunque las instrucciones que preceden a un ciclo for y las del cuerpo de ste con
frecuencia pueden insertarse en el encabezado del for, evite hacerlo, pues podra
hacer ms difcil la lectura del programa.
43. De ser posible, limite a una sola lnea el tamao de los encabezados de las estructuras de
control.
44. No emplee variables de tipo float o double para efectuar clculos monetarios. La
imprecisin de los nmeros de punto flotante puede provocar errores que generarn
valores monetarios incorrectos.
a. Nota: estn apareciendo bibliotecas de clases de C para manejar
adecuadamente los clculos monetarios.
45. Agregue un caso default en las instrucciones switch. Los casos no probados
explcitamente en una instruccin switch que no tenga un caso default son ignorados.
Al incluir el caso default se enfoca al programador en la necesidad de procesar
condiciones excepcionales. Hay situaciones en las que no es necesario el procesamiento
default.
46. Aunque las clusulas case y el caso default de la estructura switch pueden suceder
en cualquier orden, se considera una buena prctica de programacin poner la clusula
default al ltimo.
47. En las estructuras switch, cuando la clusula default se lista al ltimo, no es necesaria la
instruccin break. Algunos programadores incluyen este break por claridad y simetra
con los dems case.
48. Algunos programadores siempre incluyen llaves en las estructuras do/while, incluso
cuando no son necesarias. Esto ayuda a eliminar las ambigedades entre la estructura
while y la estructura do/while que contiene una sola instruccin.
49. Algunos programadores sienten que break y continue violan la programacin
estructurada. Y no las utilizan debido a que los efectos de estas instrucciones pueden
lograrse por medio de tcnicas de programacin estructurada.
50. Abra un archivo un archivo para entrada (utilizando ios::in) solamente si el contenido
del archivo no debe ser modificado. Esto impide una modificacin no intencional del
contenido del archivo. Este es un ejemplo del principio de menor privilegio.

Você também pode gostar