¿Cuáles son algunas malas prácticas de programación?

Puede escribir un libro completo sobre malas prácticas de programación. Hay muchos para contar, pero aquí están mis cinco mejores opciones:

  1. Sin diseño ni plan. Por supuesto, la primera iteración de su código no tiene que estar perfectamente planificada, pero debe planificar las cosas de todos modos. El código bien estructurado es más fácil de corregir cuando tiene algún tipo de diseño detrás. Su diseño cambiará a medida que lo programe y vea diferentes formas de hacer cosas que son mejores formas de hacer lo que tenía su diseño anterior.
  2. Sin comentarios. En serio, los comentarios son una excelente manera de comunicar a los demás lo que estás haciendo. Hay un gran énfasis en los comentarios, pero nadie los hace lo suficiente. Odio no ver comentarios, pero no me hago comentarios, así que …
  3. Código desestructurado Código que debe ir a clases o funciones pero está escrito en un solo archivo como una gran bestia difícil de manejar. La herencia es tu amiga, úsala. Estructura tu código correctamente. Separa tus preocupaciones. Te pensarás más tarde cuando tengas que mantener el código que escribiste. Esto está relacionado con el número 1.
  4. No estar SECO. En serio, no te repitas. Esto hace que su código sea difícil de entender y mantener. Una vez trabajé en código que tenía seis elementos en una matriz como máximo, en lugar de hacer un bucle for y escribir el código una vez, este tipo copió y pegó el código 6 veces. Ni siquiera puso el código en una función y lo llamó seis veces. Cuando tuve que agregar funcionalidad a ese código, ¿cómo crees que me sentí? Primero tuve que refactorizar el código y luego Agregar la funcionalidad. Fue una pesadilla y tomó más tiempo del que debería.
  5. Y, por último, lo peor de la lista: “ver el mundo como un clavo”. ¿Eh? ¿Qué quiero decir con esto? Es el viejo dicho: dale un martillo a un niño y verá el mundo como solo clavos. Los lenguajes de programación son de la misma manera. Cada uno tiene sus ventajas y desventajas. Hay un momento y un lugar para usar cada uno y decir arbitrariamente que uno es mejor que el otro porque “es más rápido” o “tiene la función x” es peligroso y estúpido. No usaría el ensamblaje para escribir servicios web más de lo que no usaría PHP para el desarrollo de sistemas integrados. Salga de este pensamiento de que este idioma es el fin de todos y todos los demás idiomas apestan. Todos los idiomas apestan. Hasta el último de ellos. Solo tiene que usar el que menos apesta para la tarea en cuestión.

Esos son mis cinco primeros. Estoy seguro de que hay muchos más que otros mencionarán.

Uno que estoy reemplazando ahora en el código que estoy reescribiendo … el “Ir a”.

Cuando estaba aprendiendo a programar (justo después del Jurásico), nos dijeron que los saltos y las etiquetas eran malas noticias. La razón era

  • si te topaste con “ir a”, entonces nadie sabía a dónde saltaste (sí, la etiqueta es “volver a ganar”, pero ¿dónde está?)
  • si te encontraste con la etiqueta, ¿qué código, dónde, saltó a ese lugar?

A medida que crecí, también me volví más arrogante, y creo que las etiquetas y las etiquetas son el signo de una mente perezosa. (“Sí, podría resolver si hacer un ciclo while o un ciclo for … pero este plan funcionará por ahora. Lo limpiaré la próxima vez que esté”)

Algunos de los códigos que reemplazo también han incluido líneas de otro lugar … entonces, ¿tal vez la fuente de la referencia está allí? o tal vez hay otra etiqueta allí …

Esa es la más fácil de detectar.

Otra sería la actitud “si este código es difícil de escribir, entonces también debería ser difícil de entender”. Código inteligente, escrito por una persona inteligente que trabaja con cafeína. Bien, bien por ti. Ahora intente arreglarlo a las 4 am después de una llamada telefónica. Mantenlo simple, estúpido.

Y lo molesto es que estos problemas se conocían hace unos treinta, cuarenta años. La próxima generación está cometiendo los mismos errores que nosotros.

Oh bueno … me mantiene empleado.

More Interesting

¿Cuáles son algunas técnicas de programación inteligentes que no se usan con la frecuencia suficiente?

¿Cómo memorizar todo el patrón de diseño? ¿Cómo puedes entender el patrón de diseño del proyecto de código abierto de alguien?

¿Cuál es la mejor y más rápida forma de obtener una tarjeta verde con una licenciatura en ciencias de la computación (ingeniería de software)?

¿Cuál es el mejor / más fácil / más barato software para hacer una aplicación?

¿Qué es la taxonomía de errores en las pruebas de software?

¿Cuáles son los temas para los modelos SRS?

Se dice que copiar código es malo, pero ¿qué tal copiar solo patrones y arquitectura de software?

Sistemas operativos: ¿cuál es la diferencia entre un sistema operativo original y uno pirateado? ¿Por qué debería uno ir por el original, beneficios como tal?

¿Cómo usan Python las grandes compañías tecnológicas de manera eficiente dada su falta de verificación de tipos estáticos y otros aspectos de la ingeniería de software moderna?

¿Los ingenieros de software de Silicon Valley a menudo tienen una visión inflada de su propia inteligencia?

¿Es posible cambiar a software?

¿WILP (fuera del campus) MS en Sistemas de Software de BITS Pilani es reconocido? ¿Vale la pena hacer este curso?

¿Es el software de estimación de costos como Quick FPA una buena manera de estimar los costos del software, si no tengo experiencia de proyectos anteriores?

¿Podría sugerir algunos temas para una tesis de maestría en ingeniería biomédica-informática que combine software y hardware?

¿Cuál es el mejor actualizador de software para mantener actualizados todos mis programas de Windows?