Es difícil de decir sin más contexto, como el lenguaje de elección. Compartiré con ustedes algunos estilos de código que he experimentado (o sufrido) personalmente:
1. inconsistencia
Algunas personas son muy estrictas con las pestañas y solicitan que todos sigan el mismo estilo. Siento que mientras sea consistente, es aceptable. Sin embargo, tener múltiples estilos diferentes presentes en el mismo archivo, o el mismo grupo de fallas, hace que sea realmente doloroso leerlo.
2. Mezclando lógica positiva y negativa
- Supongamos que no tengo idea sobre kickboxing. ¿Hay alguna manera de que yo pueda aprender viendo videos o leyendo libros? Si es así, ¿cómo?
- Cómo disfrutar leer de nuevo si ya no lo disfruto
- ¿Qué libro estás leyendo actualmente o has leído en el que te sumergiste por completo?
- ¿Cuál es el adecuado para leer: lectores de libros electrónicos o tabletas?
- De todas las obras de Shakespeare, ¿cuál debería leer y escribir para una clase de literatura universitaria?
Nuevamente, la consistencia es la clave. A veces, tanto la lógica positiva como la negativa tienen sentido, solo tienes que elegir una. Verifique si hay un puntero nulo y salga de la función, o verifique si hay un puntero no nulo y realice la tarea. Si estos códigos están cerca, elija uno y manténgalo.
3. Sea profesional sobre los nombres
He leído código que contiene nombres de variables y funciones que son nombres de celebridades, frutas, títulos de películas, razas de perros, etc. Y no, el proyecto no tiene nada que ver con todo esto. Estos nombres pueden parecer interesantes al principio, pero resisten el impulso de hacerlo. No todos comparten los mismos pasatiempos, y cuando estoy depurando a las 2 de la mañana, no me divierte.
4. Capas anidadas, anidadas, anidadas, desagradables
Sí, cuando su anidamiento alcanza el 3er nivel, es desagradable. Use funciones, use la instrucción switch en lugar de múltiples if-else, use macro, vuelva a visitar su lógica, etc. Pero si tiene suficientes capas para que una declaración comience en el medio de la pantalla, es demasiado.
5. El nombre de la función debe reflejar lo que realmente hace
Las funciones no siempre son necesarias, es posible escribir todo su proyecto en la función “principal”. Pero existen funciones para dividir lógicamente las cosas para que el programador pueda entenderlas mejor. Tener una función que hace más de lo que anuncia anula el propósito.
Por ejemplo, si tiene una función llamada “tokenizeString”, y la función solo debe tokenizar la cadena de entrada. No debe cambiar la cadena de minúsculas a mayúsculas, aunque el resultado de tokenizeString se utiliza para realizar una búsqueda que no distingue entre mayúsculas y minúsculas más adelante.
6. Mayúsculas y minúsculas
Ok, este es personal. Estaba trabajando en una aplicación multiproceso cuando 2 nombres de funciones difieren en una sola “L”, donde la “L” mayúscula se refiere a una función que pasa el mensaje del subproceso de trabajo, mientras que la pequeña “l” se refiere a una función que hace funciona cuando se recibe el mensaje.
alguna función L ();
somefunctionl ();
El error surge cuando una función de trabajo llama erróneamente a somefunctionl (), lo que produce bloqueos aleatorios debido a problemas de subprocesos múltiples. El error me tomó 3 días para localizarlo, y no hace falta decir que no estaba muy feliz cuando finalmente encontré la causa raíz.