Foros del Web » Programación para mayores de 30 ;) » C/C++ »

buenas practicas de programacion

Estas en el tema de buenas practicas de programacion en el foro de C/C++ en Foros del Web. Hola muchachos, presento el siguiente problema, voy en el tema de los array, pero poseo problemas con las buenas practicas de programacion, me podrian colaborar ...
  #1 (permalink)  
Antiguo 07/04/2015, 09:56
 
Fecha de Ingreso: septiembre-2012
Ubicación: bogota
Mensajes: 9
Antigüedad: 11 años, 6 meses
Puntos: 0
buenas practicas de programacion

Hola muchachos, presento el siguiente problema, voy en el tema de los array, pero poseo problemas con las buenas practicas de programacion, me podrian colaborar mencionandome las mas primordiales, es que tuve un examen y el profesor me califico duro en ese aspecto
  #2 (permalink)  
Antiguo 07/04/2015, 10:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: buenas practicas de programacion

Es una pregunta un poco abstracta... Cuando se habla de "buenas prácticas en programación" el tema suele ser enormemente extenso.

¿Qué fue exactamente lo que tu profesor te dijo, o qué te criticó?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/04/2015, 13:05
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 5 meses
Puntos: 204
Respuesta: buenas practicas de programacion

Algunos ejemplos básicos:

1. Dividir el código en pequeños fragmentos, cada fragmento con un fin concreto (funciones)
2. Tabular el código con coherencia (todo el código que esté al mismo nivel debería tener la misma tabulación)
3. Utilizar una nomenclatura para nombrar funciones y variables (p.ej CamelCase, separar palabras por guiones '_', notación húngara, ... elijas lo que elijas tienes que mantenerlo en todo el código)
4. Usar nombres descriptivos para las funciones y las variables ('i' esta bien para un contador, 'numeroItems' queda claro para qué la vas a usar, pero 'var12' ¿para qué sirve? pues eso)
  #4 (permalink)  
Antiguo 07/04/2015, 14:52
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 8 años, 11 meses
Puntos: 74
Respuesta: buenas practicas de programacion

http://r0d.developpez.com/articles/buenas-practicas/
  #5 (permalink)  
Antiguo 08/04/2015, 03:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: buenas practicas de programacion

Esta interesante el enlace, pero hay dos cosas que me han chocado:

- Lo de evitar tipos float en favor de double

y sobre todo:

Evitar usar archivos *.cpp e incluir todo en el *.h

¿Qué ventajas puede tener esto?
__________________
Mi calculadora en Qt
  #6 (permalink)  
Antiguo 08/04/2015, 03:36
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 5 meses
Puntos: 204
Respuesta: buenas practicas de programacion

Cita:
Iniciado por dehm Ver Mensaje
Lo de evitar tipos float en favor de double
double tiene mucha más precisión que float. Además la librería estándar suele trabajar con double... con lo que al usar double evitas continuos casts.

Cita:
Iniciado por dehm Ver Mensaje
Evitar usar archivos *.cpp e incluir todo en el *.h
Si incluyes todo el código en el .h le das al compilador vía libre para que convierta en inline todas las funciones que crea convenientes... esto generará un código más rápido pero también más largo.

Yo personalmente no soy partidario de esta práctica ya que, salvo en contadas ocasiones, tal nivel de rapidez no suele compensar la pérdida de legibilidad que supone tener todo en la cabecera.

Otro problema de tener todo el código en la cabecera es que ante cualquier cambio, por pequeño que sea, se obliga a una recompilación en cascada de todos los archivos que dependan del archivo modificado... mientras que una edición en un cpp únicamente obliga a recompilar dicho archivo.
  #7 (permalink)  
Antiguo 08/04/2015, 03:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: buenas practicas de programacion

Ah, pues gracias por las explicaciones.

Sobre lo de evitar el uso de punteros para crear memoria en el heap...ahora que está uno lidiando con Qt, hasta se hace extraño hasta de leer (aunque entiendo la motivación del autor de las recomendaciones)

Saludos
__________________
Mi calculadora en Qt
  #8 (permalink)  
Antiguo 08/04/2015, 03:47
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 5 meses
Puntos: 204
Respuesta: buenas practicas de programacion

Cita:
Iniciado por dehm Ver Mensaje
Sobre lo de evitar el uso de punteros para crear memoria en el heap...ahora que está uno lidiando con Qt, hasta se hace extraño hasta de leer (aunque entiendo la motivación del autor de las recomendaciones)
A ver, para objetos normales, que no sean demasiado pesados, no hay ningún problema en tirar de la pila en vez de acceder al heap... se fragmenta menos la memoria, es más rápido y te despreocupas de las lagunas de memoria... pero hay que tener cuidado con objetos más grandes... o con la recursividad... si la pila se llena tu programa va a reventar con muy poco estilo :)
  #9 (permalink)  
Antiguo 08/04/2015, 03:58
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 5 meses
Puntos: 38
Respuesta: buenas practicas de programacion

¿Que diferencias hay en ficheros .h o .hpp?? :/
  #10 (permalink)  
Antiguo 08/04/2015, 04:01
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 5 meses
Puntos: 204
Respuesta: buenas practicas de programacion

Cita:
Iniciado por vangodp Ver Mensaje
¿Que diferencias hay en ficheros .h o .hpp?? :/
En el sentido estricto ninguna... de hecho puedes usar la extensión que te de la gana a la hora de programar (como si usas .vdp).

Lo que sucede es que la convención dice que la extensión .h es para programar en C y .hpp la utilizada para C++... básicamente para ayudar a estructurar el código.
  #11 (permalink)  
Antiguo 08/04/2015, 04:27
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 5 meses
Puntos: 38
Respuesta: buenas practicas de programacion

Cita:
Iniciado por eferion Ver Mensaje
En el sentido estricto ninguna... de hecho puedes usar la extensión que te de la gana a la hora de programar (como si usas .vdp).

Lo que sucede es que la convención dice que la extensión .h es para programar en C y .hpp la utilizada para C++... básicamente para ayudar a estructurar el código.
ok! Siempre uso .h, lo digo por si el IDE lo tratara de forma distinta a un .hpp, no se si eso puede pasar.

Gracias
  #12 (permalink)  
Antiguo 08/04/2015, 07:53
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: buenas practicas de programacion

Cita:
Iniciado por dehm Ver Mensaje
Evitar usar archivos *.cpp e incluir todo en el *.h ...
No, espera, no es ése el sentido de la frase. El artículo dice:
Cita:
Nunca incluir un fichero .cpp (salvo para los templates, y aun así, aconsejo poner todo el código en el .h, cuando la clase no es demasiado grande).
Ese párrafo se refiere a que no debe "incluirse" un fichero .cpp; es decir, no hay que hacer algo como esto:
Código C:
Ver original
  1. #include "fichero.cpp" // ¡Alerta!
Y la aclaración entre paréntesis se refiere a que acepta el #include de un .cpp si el fichero define un template. Pero en ese caso (y sólo para los ficheros que definen templates), si la clase no fuera muy grande, aconseja poner el código en un .h
  #13 (permalink)  
Antiguo 08/04/2015, 08:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: buenas practicas de programacion

Cita:
Iniciado por lareto Ver Mensaje
No, espera, no es ése el sentido de la frase. El artículo dice:


Ese párrafo se refiere a que no debe "incluirse" un fichero .cpp; es decir, no hay que hacer algo como esto:
Código C:
Ver original
  1. #include "fichero.cpp" // ¡Alerta!
Y la aclaración entre paréntesis se refiere a que acepta el #include de un .cpp si el fichero define un template. Pero en ese caso (y sólo para los ficheros que definen templates), si la clase no fuera muy grande, aconseja poner el código en un .h
¡Pues es verdad! Gracias por la aclaración
__________________
Mi calculadora en Qt

Etiquetas: programa, programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:57.