El código de calidad es como una prosa inglesa bien escrita. En realidad, utilizas las mismas reglas para juzgar la calidad del código que la calidad de la prosa. Aquí hay algunos consejos.
- Breve: el código de calidad habla en oraciones claras, breves y declarativas, al igual que el buen inglés. No es largo y complicado. Eso significa líneas cortas (menos de 80 caracteres) y funciones breves (menos de 20 líneas). Las declaraciones de flujo de control no están profundamente anidadas. Si tiene más de dos capas de bucle, más una capa de lógica if / else, su código es complicado y difícil de seguir. (Sí, si está atravesando una matriz tridimensional, habrá tres capas de bucle, pero ¿con qué frecuencia sucede eso realmente?) El código con demasiadas capas de anidamiento también tiende a ser más largo, violando la regla de brevedad anterior . ¿Una sola línea larga o una función de más de 20 líneas siempre es incorrecta? No, pero es algo de qué preocuparse.
- Directo: el código de calidad destaca directamente, al igual que la buena prosa en inglés. No es sutil No insinúa ni implica. No anda por las ramas. Los efectos del código son directos. No se basan en los efectos secundarios o el estado global. Una función dada hace una sola afirmación. No hace tres cosas diferentes. El buen inglés usa nombres más que pronombres. Un buen código usa variables más que referencias o punteros. Los nombres son más directos y menos confusos.
- Metáfora: el código de calidad, como la bella prosa en inglés, utiliza metáfora y símil. En lugar de descripciones prosaicas de largo aliento, un buen código usa nombres de funciones que describen brevemente lo que hace un bloque de código sin forzar innecesariamente al lector a ver cómo lo hace. Esto mejora enormemente la legibilidad del código. Del mismo modo, los nombres de las variables pueden ser descriptivos de para qué sirve la variable, en lugar de cómo se implementa. A veces es útil el uso de convenciones metafóricas comunes, como usar i para el índice del bucle externo y j para el índice del bucle interno. Esta es una decisión judicial.
- Eficiente: el código de calidad utiliza un algoritmo eficiente y estructuras de datos eficientes. En general, el algoritmo debe ser obvio por el código, de modo que el código se parezca a todos los demás códigos que usan el mismo algoritmo. El código y los comentarios hacen referencia al algoritmo para mejorar la comprensión de cualquier lector que lo conozca y para enseñar el algoritmo a cualquier lector que no lo conozca. Si el código usa un algoritmo menos eficiente, el lector debe preguntarse por qué fue codificado de manera ineficiente, y si se necesitaba o no eficiencia en alguno de los varios lugares que pueden haber invocado el código. Esto distrae de la comprensión.
- Anotado: Un buen libro tiene una buena tabla de contenido, índice, lista de figuras, notas al pie, etc. Asimismo, el buen código tiene comentarios en lugares donde el código no es lo suficientemente claro. Es cierto que un código muy bien escrito no requiere demasiados comentarios. No es cierto que un buen código no tenga ningún comentario. El código es un lenguaje de muy bajo nivel, apropiado para decirle a un robot muy estúpido exactamente cómo ejecutar el código. No es un nivel de detalle apropiado para explicar por qué un diseño se ve como se ve, o cómo una pieza de código encaja en un sistema más grande. Los comentarios son muy parecidos a las notas al pie de página, explicando fragmentos de código que son oscuros o poco intuitivos. Al igual que las notas al pie, los comentarios pueden ser utilizados en exceso.
Desearía que hubiera un premio Pulitzer por el código, alguna recompensa por escribir un código hermoso, como si hubiera una gran prosa en inglés. Un gran código es como la poesía. Pero por cada poema de código épico, hay 10,000 drab tomes de código no inspirado y difícil de leer.
- ¿Cuánto ganan en promedio los desarrolladores de aplicaciones en publicidad por clic y cuál es el CTR promedio?
- Soy un desarrollador de software apasionado por la escritura. ¿Cómo puedo convertirme en escritor / columnista de una revista / periódico importante mientras avanzo en mi campo?
- ¿Los desarrolladores web también se consideran desarrolladores de software?
- ¿Cómo debe un desarrollador de software socialmente responsable?
- ¿Cuál es el crecimiento en Fiserv para un desarrollador de software?