7 pautas de código javascript

La autora del material, cuya traducción publicamos hoy, dice que está obsesionada con escribir código limpio. Ella cree que el código debe escribirse de manera que, en primer lugar, en el futuro, sería conveniente que otros programadores trabajen con él, incluido su autor, y en segundo lugar, teniendo en cuenta la posibilidad de expandir este código. Es decir, debemos esforzarnos para que sea relativamente fácil agregar nuevas funciones a la aplicación y para que sea conveniente mantener su código base. Si los programas se escribieran teniendo en cuenta solo las necesidades de las computadoras, entonces los programadores probablemente podrían expresar sus pensamientos solo con la ayuda de ceros y unos, sin preocuparse por nada más. Este artículo proporciona algunas pautas para escribir código de calidad, ilustrado con ejemplos de JavaScript.



1. Use nombres amigables de variables y funciones


El código es mucho más fácil de leer cuando se escribe usando nombres claros y descriptivos de funciones y variables. Aquí está el código que no está muy claro:

function avg (a) {  let s = a.reduce((x, y) => x + y)  return s / a.length } 

Su legibilidad mejorará significativamente si usa los nombres descriptivos de variables y funciones que reflejan su significado.

 function averageArray (array) { let sum = array.reduce((number, currentSum) => number + currentSum) return sum / array.length } 

No se esfuerce por el minimalismo al escribir textos de programas. Use nombres de variables completos que cualquiera que trabaje con su código en el futuro pueda entender fácilmente.

2. Escribe funciones cortas que resuelvan un problema


Las funciones son más fáciles de mantener, se vuelven mucho más comprensibles y legibles si están destinadas a resolver un solo problema. Si encontramos un error, entonces, cuando utilizamos funciones pequeñas, se hace mucho más fácil encontrar la fuente de este error. Además, se mejoran las capacidades de reutilización de código. Por ejemplo, la función anterior podría llamarse sumAndAverageArray , ya que en ella calculamos la suma de los valores de los elementos de la matriz utilizando el método reduce , y luego encontramos el valor promedio, dividiendo la cantidad resultante por el número de elementos en la matriz. Aquí está la función.

 function sumAndAverageArray(array) { let sum = array.reduce((number, currentSum) => number + currentSum) return sum / array.length } 

Se puede dividir en dos funciones, entonces la función de cada parte del código será más comprensible. Además, si creamos un programa grande, la presencia de la función sumArray puede ser muy útil. Aquí está el código para dos nuevas características. Uno calcula la suma de los elementos de la matriz, el segundo devuelve su valor promedio.

 function sumArray(array) { return array.reduce((number, currentSum) => number + currentSum) } function averageArray(array) { return sumArray(array) / array.length } 

Una señal de que la función se puede dividir en dos es la posibilidad de utilizar la palabra "y" en su nombre.

3. Documente el código


Escriba una buena documentación para su código; luego, alguien que lo encuentre en el futuro comprenderá lo que se está haciendo en este código y por qué. Aquí hay un ejemplo de una función fallida. Aquí se usan algunos "números mágicos", su significado no se explica en ninguna parte.

 function areaOfCircle (radius) { return 3.14 * radius ** 2 } 

Puede agregar comentarios aquí para que este código sea más comprensible para alguien que no conoce la fórmula para calcular el área de un círculo.

 const PI = 3.14 //  ,       function areaOfCircle (radius) { //       : //        return PI * radius ** 2 } 

Este código es solo un ejemplo. Probablemente, en esta situación, en lugar de introducir su propio almacenamiento constante del número Pi, sería mejor usar la propiedad estándar Math.PI

Los comentarios sobre el código deben responder la pregunta "por qué".

Tenga en cuenta que para documentar el código, tiene sentido utilizar herramientas especiales y las reglas correspondientes para comentar el código. Cuando se aplica a Python, me gusta Google Style Docstrings , cuando se aplica a JavaScript, me gusta JSDoc .

4. Piensa en usar las reglas de Sandy Metz


Sandy Metz es una gran programadora de Ruby, hace presentaciones interesantes y escribe libros. Ella formuló cuatro reglas para escribir código limpio en lenguajes orientados a objetos. Aquí están

  1. Las clases no deben tener más de 100 líneas de código.
  2. Los métodos y funciones no deben tener más de 5 líneas de código.
  3. Los métodos no deben pasar más de 4 parámetros.
  4. Los controladores pueden inicializar solo un objeto.

Recomiendo ver su actuación con respecto a estas reglas.

He estado siguiendo estas reglas durante unos dos años, y se han arraigado tan firmemente en mi mente que las sigo, literalmente, "en la máquina". Me gustan y creo que su uso aumenta la conveniencia de mantener el código.

Tenga en cuenta que estas reglas son solo recomendaciones, pero usarlas hará que su código sea mucho mejor.

5. Aplicar las reglas seleccionadas secuencialmente


La aplicación coherente de las reglas para escribir código es muy importante independientemente de si usted mismo escribe el código de un proyecto o trabaja en equipo. En particular, esto se expresa en el hecho de que cualquiera que lea el código que es el resultado del desarrollo del equipo debe percibirlo como un todo. Con este enfoque, la autoría de líneas de código individuales solo se puede establecer contactando a Git. Si, en JavaScript, usa un punto y coma, póngalo donde lo necesite. Lo mismo se aplica a las comillas: seleccione comillas dobles o simples y, si no hay una buena razón, use siempre lo que elija.

Recomiendo aplicar la guía de estilo de código y la interfaz, que le permite llevar el código al estándar seleccionado. Por ejemplo, para JavaScript me gustan las reglas de Standard JS , para Python me gustan las reglas de PEP8 .

De hecho, lo principal aquí es encontrar las reglas de diseño del código y adherirse a ellas.

6. Recuerda el principio SECO


Una de las primeras ideas que las personas intentan transmitir a alguien que quiere convertirse en programador es: "No te repitas, SECO". Si observa fragmentos duplicados en sus proyectos, use construcciones de software que reducirán las repeticiones del mismo código. A menudo aconsejo a mis alumnos que jueguen el juego SET para mejorar sus habilidades de reconocimiento de patrones.

Sin embargo, si decide aplicar fanáticamente el principio DRY o decide abstraer las plantillas mal seleccionadas, la legibilidad del código puede deteriorarse seriamente y, más tarde, es posible que deba recurrir a la creación de copias de las mismas estructuras con mayor frecuencia. Sandy Metz, por cierto, tiene un gran artículo sobre cómo la duplicación de código es menos malvada que una abstracción fallida .

Como resultado, no vale la pena repetirlo, pero tampoco vale la pena, en la lucha por observar el principio DRY, modificar el código hasta el punto de que sea difícil de entender.

7. Use las ideas de encapsulación y modularidad.


Agrupe variables y funciones relacionadas para que su código sea más fácil de entender y mejorarlo en términos de su reutilización. Aquí hay un ejemplo de código no muy bien organizado, en el que la información sobre una persona se presenta en forma de variables separadas.

 let name = 'Ali' let age = 24 let job = 'Software Engineer' let getBio = (name, age, job) => `${name} is a ${age} year-old ${job}` 

Si un programa similar necesita procesar los datos de muchas personas, entonces sería mejor usar algo como la siguiente construcción en él.

 class Person { constructor (name, age, job) {   this.name = name   this.age = age   this.job = job } getBio () {   return `${this.name} is a ${this.age} year-old ${this.job}` } } 

Y si el programa necesita trabajar solo con datos sobre una persona, entonces se pueden organizar como se muestra a continuación.

 const ali = { name: 'Ali', age: 24, job: 'Software Engineer', getBio: function () {   return `${this.name} is a ${this.age} year-old ${this.job}` } } 

De manera similar, uno debería abordar dividir programas largos en módulos, en archivos separados. Esto facilitará el uso del código asignado en archivos separados en diferentes proyectos. En archivos grandes con código de programa, a menudo es difícil de navegar, y los pequeños módulos comprensibles son fáciles de usar en el proyecto para el que fueron creados y, si es necesario, en otros proyectos. Por lo tanto, trate de escribir código modular comprensible combinando elementos relacionados lógicamente.

Resumen


En este artículo, compartimos con usted algunas recomendaciones para escribir código limpio y comprensible. Sin embargo, estas son solo recomendaciones. Estos son consejos para ayudarlo a escribir textos de programas de calidad. Si aplica sistemáticamente reglas similares a las descritas aquí, entonces, en comparación con el código que no usa algo similar, el código escrito usando reglas será más comprensible, será más fácil extenderlo, mantenerlo y reutilizarlo.

Estimados lectores! ¿Qué reglas sigues para tu código?

Source: https://habr.com/ru/post/es418631/


All Articles