¿Cuáles son los mejores libros sobre cómo escribir código limpio?

Si bien estoy de acuerdo con la mayoría de las respuestas de que los libros no son (por sí solos), la mejor manera de aprender a escribir código limpio, son un excelente complemento para otras cosas que podría estar haciendo (como leer código, revisar su código, etc) Si eres como yo, además de practicar, te gusta tener una referencia más amplia en la que alguien inteligente haya pasado una cantidad de tiempo no trivial resolviendo la catalogación y el resumen de las cosas. Incluso las cosas que son intuitivas tienen mucho más sentido cuando alguien las ha nombrado, estructurado, etc.

Aquí están mis favoritos:

  1. Código limpio del tío Bob : Una opinión muy obstinada de por qué es importante escribir un buen código y qué constituye un buen código. Documenta claramente las trampas de lo que puede conducir a un código incorrecto, y no pierde palabras (“[el código incorrecto] pondrá de rodillas a una organización” y “los programadores que se satisfacen con un código que simplemente funciona se están comportando de manera poco profesional”). Cubre principios, patrones, heurística y “olores”, e incluye estudios de casos para que pueda ver, de primera mano, cómo se aplica todo a situaciones del mundo real. Lo más importante es que ayuda a enmarcar su mente para lo que es, en mi opinión, la parte más importante de escribir un buen código: empatía (para otros que leerán su código e incluso su futuro yo). Por ejemplo, la “Regla de los Boy Scouts” es un buen principio para trabajar (“deje las cosas en mejor estado de lo que las encontró”). En el lado negativo, es un poco menos “estructurado” que Code Complete, pero eso no me molestó.
  2. Código completo : Me dieron una copia de esto en mi primer día de trabajo en Google. Esta es la guía definitiva para escribir código. Sin embargo, el primer inconveniente es su extensión (tiene aproximadamente 900 páginas y me llevó aproximadamente un año leerlo). También es un poco anticuado. No me malinterpreten, la mayoría de estos principios son universales, pero con el tiempo el proceso de desarrollo de software se ha adaptado, y las compensaciones sutiles como el mantenimiento frente a la velocidad pueden cambiar. Así que definitivamente comenzaría con Clean Code primero.

Una vez se me describió que Code Complete es la Biblia, y Clean Code es el manual. Si recién está comenzando, comenzaría con el manual.

Una nota final: mucha gente señalará que la mayor parte del contenido de estos libros es obvio e intuitivo, pero al final del día, muchas veces el problema no es no saber, no es recordar. He visto a muchos desarrolladores experimentados (incluido yo mismo) hacer malas compensaciones.

Definitivamente recomendaría Clean Code: A Handbook of Agile Software Craftsmanship por Robert C. Martin, pero también me gustaría recomendar algunas pautas y tutoriales:

Pautas de .NET Framework

https://msdn.microsoft.com/en-us

Estas pautas son bastante útiles para crear un estándar que todos en el equipo puedan seguir. La estandarización es clave para hacer código legible. Verá, los estándares ayudan a formar un entendimiento común entre el equipo. El código que no cumple con el estándar crea confusión. Necesitará más tiempo para descubrir por qué hubo un cambio en las “reglas” para un código en particular.

Guía de estilo para aplicaciones Angular 1.x.

https://github.com/johnpapa/angu

Usamos Angular mucho en estos días y estos son consejos sobre cómo usar el marco de una manera más limpia. Vale la pena señalar que Angular hizo un gran progreso al poner orden en el desarrollo de Javascript. Sin embargo, no estás libre de estropear las cosas.

Codificación para humanos

http://www.pluralsight.com/cours

Realmente recomiendo este tutorial porque aborda muchos temas de manera clara y precisa. En este tutorial, Cory recomienda leer en voz alta un algoritmo para ver si se lee bien. Esta técnica enfatiza la similitud entre codificación y escritura (literatura). Si leer su código no se siente bien, probablemente sea porque está “sucio”.

Si está programando en un idioma (lengua) que no es nativo para usted, le recomiendo que le a Importar a Clean Code la importancia que merece donde nuestro CTO aborda este tema!

Escribir código limpio no es un objetivo per se. Lo que realmente quieres hacer es escribir código mantenible . Y el matiz es importante: por ejemplo, cuando Clean Code (el libro) le dice que escriba métodos pequeños, se pierde el punto. Hazlos pequeños cuando el código resultante sea más fácil de mantener (la mayoría de las veces), pero hazlos grandes de lo contrario. Lo mismo ocurre con nombres de variables explícitos, notación húngara, gotos, excepciones, patrones de diseño, interfaces, etc.

Code Complete es el mejor libro que he leído para aprender a escribir código mantenible . Contrariamente a Clean Code, muchas de las recomendaciones que contiene no se basan en los gustos personales del autor sino en datos concretos (estudios). El libro es independiente del lenguaje y cubre todos los aspectos de la escritura de códigos.

De lo contrario:

  • El programador pragmático es una muy buena introducción al código mantenible. Este es un buen primer libro sobre el tema.
  • Si no tiene acceso a Code Complete, Code Craft es otro buen libro para leer.
  • Finalmente, Clean Code sigue siendo un buen libro. Pero lo compraría en cuarta posición. Tenga en cuenta que está orientado a Java.

La mejor manera de aprender a escribir código limpio es a través de guías de estilo, revisiones de código y lectura de código ejemplar.

Puede encontrar guías de estilo de compañías como Google y proyectos de código abierto como Firefox y Linux. Elija uno que coincida con su plataforma e idioma y revíselo, asegurándose de comprender el por qué de cada regla. Hay mucha sabiduría institucional incrustada en las guías de buen estilo y puedes aprender muchos buenos hábitos siguiendo uno religiosamente. Si algo no tiene sentido, la mayoría de los proyectos de código abierto tienen canales IRC donde puede consultar al respecto. O puede publicar una pregunta en Quora o Stack Overflow sobre el razonamiento detrás de una práctica determinada.

Después de eso, escribe un código y haz que lo revisen. Esto puede ser complicado si no está trabajando para una organización, en cuyo caso puede contribuir a un proyecto de código abierto o aprender mirando las revisiones de código público del código de otras personas. Por ejemplo: las revisiones del código de Chromium se pueden encontrar en https://codereview.chromium.org/

Si solo desea leer el código que generalmente es muy apreciado, puede explorar proyectos de código abierto como solicitudes, redis, Chromium, Linux, etc. También puede buscar repositorios populares pero pequeños en GitHub si desea aprender cómo funciona algo. hasta el final manteniendo el código limpio. Por ejemplo: Trending repositorios de Python en GitHub este mes

La mejor manera de aprender a escribir código limpio es leer el código de otras personas. Aprenderá muy rápidamente qué hace que el código sea difícil de leer.

Personalmente, he llegado a preferir referencias lingüísticas a libros introductorios / visitas guiadas / tutoriales. Pero puede encontrar tanto la referencia del idioma de Clean como los libros en el wiki del sitio web oficial:
http://wiki.clean.cs.ru.nl/Docum

“Clean Code” de Robert C Martin es bueno, no estoy de acuerdo con todo lo que dice, pero poner en práctica sus ideas mejorará la calidad del código en casi cualquier tienda.

el mejor libro es Programación efectiva: más que escribir código (libro de 2012). http://www.amazon.com/Effective-…

El arte del código legible de Dustin Boswell y Trevor Foucher es un libro fantástico sobre ese tema (y es una lectura muy agradable)