La guía de estilo de codificación 100% correcta

¿Pestañas o espacios? ¿Soporte rizado en la misma línea o en una nueva línea? 80 caracteres de ancho o 120?

A los programadores les encanta discutir sobre este tipo de cosas. El debate de pestañas vs. espacios incluso se convirtió en un episodio famoso del programa de HBO Silicon Valley .

Bueno, en este artículo, finalmente te daré las respuestas definitivas que buscas.

Al principio de mi carrera, participé en todo tipo de guerras santas. Leía algún artículo sobre por qué una convención en particular era correcta, mientras que otra estaba totalmente equivocada. Me subiría a mi caballo alto y poderoso y proclamaría a cualquiera que escuchara que estaban equivocados y yo tenía razón.

Me tomó años encontrar las respuestas correctas, pero finalmente lo hice y resulta que la respuesta es ...

Estas cosas no importan.

La consistencia importa. La legibilidad importa. Discutir y hacer hincapié en una convención sobre otra no importa.

Durante los últimos 20 años, he seguido todas las tendencias imaginables. He seguido las diferentes convenciones de diferentes idiomas. Nada de esto ha afectado mi recuento de errores ni ha hecho que mi código sea más eficiente.

No me malinterpretes, el código de aspecto limpio y bien formateado será más fácil de cambiar y mantener con el tiempo, y eso es algo bueno.

Tampoco hay nada de malo en querer que su código se vea hermoso. Pero con demasiada frecuencia, esto se usa para justificar lo que esencialmente se reduce a la procrastinación.

Procrastinamos así porque codificar es difícil. Las cosas pueden complicarse rápidamente y nosotros, especialmente aquellos de nosotros que somos nuevos en este nivel de complejidad, podemos sentirnos intimidados por esta complejidad y volvernos inseguros acerca de nuestra capacidad para dominarla.

Es mucho más seguro discutir sobre cosas triviales. Es menos probable que nuestra incompetencia percibida quede expuesta de esa manera.

El fenómeno de debatir trivialidades para evitar problemas difíciles es tan común que hay una serie de teorías populares que lo describen.

Uno de los más populares es la Ley de la trivialidad de Parkinson, que establece que los miembros de una organización dan una importancia desproporcionada a las cuestiones triviales.

Para ilustrar esta ley, Parkinson utilizó el ejemplo ficticio de un comité cuyo trabajo era aprobar planes para una nueva planta nuclear, pero que pasaba la mayor parte de su tiempo discutiendo sobre qué materiales usar para el cobertizo de bicicletas del personal. Descuidaron el diseño propuesto de la planta en sí, que era un tema mucho más importante pero también mucho más complejo.

Debido a la referencia a un cobertizo para bicicletas en este ejemplo canónico, el desarrollador danés Poul-Henning Kamp acuñó más tarde el término "efecto de cobertizo para bicicletas" o simplemente "cobertizo para bicicletas" para describirlo.

Si trabaja en el desarrollo de software, y especialmente si pasa el rato con otros programadores en las redes sociales, es probable que se encuentre con alguna forma de abandono de bicicletas casi a diario.

Si te encuentras en un debate inusualmente acalorado con tus compañeros programadores, en línea o en persona, probablemente también valga la pena recordar la Ley de Sayre ...

“En cualquier disputa, la intensidad del sentimiento es inversamente proporcional al valor de los temas en juego”.

Como consultor, reboto de un cliente a otro, y cada uno tiene sus propias reglas y convenciones. Hace mucho tiempo que decidí que la única forma de tener éxito era dejar de lado las trivialidades y concentrarme en los problemas difíciles. Cuando se trata de estándares de codificación, tomo lo que obtengo y no me enojo.

Si se encuentra en condiciones de elegir su propia guía de estilo, le recomiendo que se haga estas dos simples preguntas:

  1. ¿Hay herramientas que apliquen automáticamente las reglas de estilo a mi código con poca o ninguna intervención por mi parte?
  2. ¿Las herramientas y los estilos subyacentes son mantenidos y / o utilizados activamente por organizaciones acreditadas?

Si puede responder “sí” a ambas preguntas, entonces está listo para comenzar. Simple como eso.

A continuación, se muestran algunas opciones que se ajustan a la factura de algunos de los idiomas web más populares de la actualidad:

Formateador de código DotNet

Java: formato Google-Java

Estilo estándar de JavaScript (NB, este es un nombre de producto, no un estándar oficial de JavaScript real)

PHP Estándares de Codificación Fixe r

Python: YAPF de Google

Rubí: Rubocop

Si te gustó este artículo, aplasta el ícono de aplaudir en la parte inferior de esta publicación repetidamente para ayudar a correr la voz. Y si desea leer más cosas como esta, suscríbase a mi boletín semanal Dev Mastery a continuación.