Robert C. Martin ofrece en el primer capítulo de su libro 'Clean Code' varias definiciones de 'código limpio' de diferentes expertos en software conocidos. ¿Cómo defines el código limpio?Definición de 'código limpio'
Respuesta
- Fácil de entender.
- Fácil de modificar.
- Fácil de probar.
- Funciona correctamente (sugerencia de Kent Beck - muy a la derecha).
Estas son las cosas que son importantes para mí.
El código en el que los diferentes módulos o clases tienen contratos claramente definidos, es un buen comienzo.
Código No tengo miedo de modificar.
Código que no se rompe en varios lugares cuando realiza un único cambio, aparentemente insignificante. También es fácil seguir la ruta de control del programa.
Código que no requiere ningún comentario para ser fácilmente entendido.
Diría uso mínimo de comentarios, en lugar de ninguno: (1) no es imposible tener un algoritmo contrario a la intuición; un comentario puede ser utilizado para que el usuario sepa (2) los comentarios se pueden usar para desglosar el código en secciones lógicas para que el lector tenga una visión general. –
Gracias por este comentario. En cuanto a desglosar tu código en secciones lógicas con comentarios, estoy totalmente en desacuerdo. Si siente la necesidad de dividir su código, use métodos con los nombres correctos. En cuanto a los algoritmos contraintuitivos, si haces lo anterior, dudo que necesites comentarios para describir lo que está sucediendo. Si aún lo necesita, documentar su solución probablemente sea más útil que solo agregar algunos comentarios a su código. –
Código Haskell sin puntos. (No realmente, sin embargo)
Código que se lee lo más parecido posible a un lenguaje humano. Lo digo en todos los niveles: desde la sintaxis utilizada, nombrando la convención y la alineación hasta los algoritmos utilizados, la calidad de los comentarios y la complejidad de la distribución del código entre los módulos.
ejemplo más simple para la convención de nomenclatura:
if (filename.contains("blah"))
frente
if (S_OK == strFN.find(0, "blah"))
Parte de ello depende del entorno/API utilizadas, pero la mayor parte es, por supuesto, la responsabilidad del desarrollador
El código reutilizable también es importante. Por lo tanto, no solo es importante la calidad del código, sino ¿dónde se pone? Ejemplo, la lógica de negocios en un controlador es un código inútil
- 1. Escribiendo código limpio, rendimiento para el iPhone
- 2. ReSharper línea de código limpio rompe con propiedades y campos
- 3. código más limpio de arrastrar y soltar en JavaScript Canvas
- 4. Patrones y más para código gui limpio y sencillo
- 5. ¿Cómo es el código HTML en este sitio tan limpio?
- 6. ¿Cuál es la definición de "código heredado"?
- 7. mvn limpio sin dependencias
- 8. deshacer Git Limpio
- 9. cómo escribir código limpio en lenguaje C# y mejorar la calidad del código
- 10. Ruby daemon con cierre limpio
- 11. Definición de código html dentro de las variables de PHP
- 12. Limpio repositorio git en Heroku
- 13. Pago y envío limpio de TFS 2008
- 14. texto limpio procedente de archivos PDF
- 15. GNU make: objetivo limpio depende de incluye
- 16. ¿Cómo hacer un frente de clang limpio?
- 17. ¿Cuál es un buen ejemplo de código [R] realmente limpio y claro, para fines pedagógicos?
- 18. pequeña redundancia de código dentro mientras que los bucles (no se siente limpio)
- 19. Declaración de función en python para tener un código legible y limpio?
- 20. Haskell records, un enfoque más limpio?
- 21. ¿Cómo hacer un ciclo asincrónico limpio?
- 22. ¿Cuál es la mejor práctica para try catch blocks para crear código limpio?
- 23. ¿Cómo hacer el código más limpio al informar el progreso a un usuario?
- 24. JScriptTypeInfo definición
- 25. TortoiseGit muestra el directorio limpio como conflictivo
- 26. ¿Cómo incluir un objetivo limpio en Makefile?
- 27. Android View.onDraw() siempre tiene un lienzo limpio
- 28. JQuery Garbage Collection: ¿Esto será limpio?
- 29. Delphi IDE Project Comando "Limpio": ¿Qué hace?
- 30. ¿Por qué/cuándo necesito un objetivo "limpio"?
También debería funcionar correctamente. De lo contrario, esto me parece una buena definición. –
Buen punto, lo agregué a la respuesta. – Ree