Código limpio: cinco puntos clave de un libro de lectura obligada para programadores

Recientemente escribí sobre cinco libros que cambiaron mi estilo de programación . En los comentarios, varios lectores recomendaron "Código limpio" de Robert S. Martin. Como resultado, leí el libro y lo encontré digno de una revisión en profundidad.





Acerca del libro



« » 2008 , Amazon. , « », Agile Manifesto . 4,4 Goodreads 13 000 . , , .



.



1. —



, — . , ( ) .



Más bien, comenzaremos con un boceto, agregando detalles gradualmente. Revisamos, perfeccionamos y ampliamos: trabajamos en diferentes niveles de abstracción hasta que el software funciona como lo necesitamos. El software nunca está realmente terminado.



Ésta es la esencia principal del "Código limpio". A lo largo del libro, el autor persigue la idea de que el software es arte y se parece a la pintura. 



Buen código. Fuente: xkcd

Pero, ¿cómo se pasa de escribir código al arte de programar?



Según Martin, las principales herramientas a nuestra disposición son la refactorización continua y el desarrollo basado en pruebas (TDD). Son inseparables entre sí, como las dos caras de una moneda. A continuación se muestran algunas definiciones.



— .



— , , .



, .



  1. . , .
  2. , . .
  3. . . 


« , « ». , «», , . ». 



, , , , — , , .



2. !



« — . , ». 



.

, .



  1. — 20 10 .
  2. , .


. , .



. . (SRP).



— « » , . , , , .



3.



« ». 



.

, , , . :





:





:



  • .
  • .
  • , .
  • , .


« » , , ,



.



  • Use nombres que revelen la intención, por ejemplo, int elapsedTimeInDays, no int days ...
  • Utilice nombres pronunciables, por ejemplo, cliente, no DtaRcrd102
  • Evite las codificaciones: no use el prefijo m_ y no use la notación húngara .
  • Elija una palabra para cada concepto; no use nombres diferentes como buscar, recuperar, obtener para la misma operación en esencia.


4. La abstracción es importante



Abstracción. Fuente: Abstruse Goose

Según Clean Code, si queremos asegurarnos de que nuestras funciones realicen solo una tarea, debemos asegurarnos de que todos los comandos de cada función estén en el mismo nivel de abstracción.



Martin ilustra esto con el siguiente ejemplo de FitNesse :





. — hr , — . , , :





:



  • render () hr.
  • HtmlTag.
  • .


:



« ».



.



5. —



, , , , . , . 



, , , , . « », , « , ».



« . , . , ». 



.

,  , , . , , — . , — .





« » , . , , — , .



  , ,   . , , 13 , . , , , « », 2021 . , .



P.s. Zack Shapiro



. , , – .






All Articles