Guía de estilo de codificación para aplicaciones node.js [cerrado]

130

¿Hay una (o varias) guías de estilo de codificación para node.js? Si no, ¿cuáles son los estilos emergentes utilizados por los principales proyectos de nodo de código abierto?

Estoy buscando una guía (o varias guías) en la línea de PEP 8 , la Guía de estilo de codificación canónica para Python. He visto varias guías de JavaScript que no vale la pena vincular aquí (en su mayoría antiguas y dirigidas a JavaScript del lado del cliente). Me pareció interesante Node.js guía de estilo .

Una guía de estilo de codificación, o convenciones de codificación, debe incluir (pero no se limita a):

  • Diseño de código: sangría (2 espacios, 4 espacios, pestañas, ...), nuevas líneas, saltos de línea, etc.
  • Espacio en blanco, por ejemplo, "función (arg)" vs. "función (arg)"
  • Punto y coma o sin punto y coma, declaración var, ...
  • Nombramiento, por ejemplo, do_this () vs. doThis (), var_name vs. varName, ...
  • modismos de node.js y JavaScript, por ejemplo, == vs. ===, el primer argumento de devolución de llamada es un objeto de error, ...
  • Comentarios y documentación
  • Herramientas de acompañamiento, como el comprobador de pelusas, el marco de prueba de la unidad, ...

Este tema obviamente es muy subjetivo, pero creo que es un paso importante de una comunidad para establecer un estilo de codificación común y ampliamente aceptado en el proceso de maduración. Además, no se trata solo de sabor. En particular, las reglas como "use === en lugar de ==" tienen una influencia directa en la calidad del código.

alienhard
fuente
Supongo que realmente depende del "marco" que uses (si lo hay), por ejemplo, puedes visitar spludo.com/source/coding-standards, sin embargo, otros podrían considerar enfoques ligeramente diferentes
Poelinca Dorin
44
"¿Alguien tiene un buen conjunto de guías de estilo" puede o no ser subjetivo, pero "¿Cuáles son los estilos emergentes" sí lo es. Ya has encontrado la guía de Félix, que, por supuesto, no estoy de acuerdo con aspectos de (en algunos casos) y estoy de acuerdo con otros aspectos de. Y ese es el problema. Muy, muy rápidamente se pone en "¡No, el estilo que veo emerger usa pestañas!" "¡No, el estilo que veo emerger usa cuatro espacios!" "¡No, el estilo que veo emerger usa dos espacios!" Cuando, por supuesto, lo que la gente realmente quiere decir es "el estilo que prefiero", no "el estilo que veo surgir".
TJ Crowder
2
@TJ Croweder ¡El estilo que veo emerger no usa espacios!
Raynos
+1 pregunta impresionante. Desearía tener estos enlaces hace años.
Bryan Downing
Pregunta subjetiva
Niels Abildgaard

Respuestas:

120

Revisaría los estándares de codificación verificados por JSLint o miraría al autor de los estándares de codificación de NPM (Isaac Shlueter) .

También puede ver el estilo utilizado por los codificadores notables de Node.JS:

Voy a tirar la mía allí por si acaso;)

Editar: Sugerencias de @alienhard

En mi opinión, hay algunas reglas de oro que debes seguir:

  • Nunca use withoeval
  • Usar ===sobre==
  • Siempre declare sus variables con varel alcance apropiado; no recurra al alcance global
  • Envuelva su aplicación en un cierre (function(){})()si planea lanzar un código que se ejecute tanto en el lado del servidor como en el navegador
  • Las devoluciones de llamada deben tomar errcomo primer argumento y si ellos mismos toman una devolución de llamada como argumento, debería ser el último, por ejemplocallback(err, param1, param2, callback)

La sangría, el espacio entre llaves y palabras clave y la colocación de punto y coma son cuestiones de preferencia.

chriso
fuente
2
Gracias por la respuesta. Me preguntaba por qué no mencionaste a Ryan;). Pero pensé, desde el wiki oficial de repositorio de nodos, que siguen la guía de estilo JavaScript de Google . No lo conocía antes ...
alienhard
15

Hay un nuevo estándar en la ciudad.

Usar estilo estándar .

js-standard-style

mightyiam
fuente
1
No tengo idea de por qué esto solo tiene 3 votos a favor ...
Luc
44
@Luc quizás debido a la regla "Sin punto y coma". Parece una elección extraña para algo llamado estilo "Estándar".
Daniel Yankowsky
Sin punto y coma no es una buena idea. Romperá alguna minificación.
denov
Este standardpaquete no le gusta el punto y coma. Si te gustan los puntos y comas, hay semiestandar
yesnik
10

Puede aprender muchas buenas prácticas de estilo de codificación de las guías JavaScript orientadas al lado del cliente (la mayoría de ellas se aplican también a node.js en general, ya que la diferencia entre el lado del cliente y el servidor está principalmente en las bibliotecas y no en el lenguaje en sí). Por ejemplo, el libro Patrones de JavaScript dedica a este tema algunas partes del Capítulo 2 . También diría que el sitio web , el libro y los videos de Douglas Crockford son materiales imprescindibles para adoptar estilos de codificación específicos de JavaScript y las mejores prácticas.

yojimbo87
fuente
3
+1 al libro de Douglas Crockford "JavaScript: The Good Parts". Tiene una gran cantidad de información en un libro conciso / pequeño, una lectura pesada, pero uno de los mejores libros que he leído.
Alex KeySmith
7

Al usar el nodo desde la terminal, es útil que su código fuente use espacios para la sangría. De lo contrario, el cursor "error here" no se alineará.

Con pestañas:

        var preps = files.map(function(f) { 
            ^
TypeError: Cannot call method 'map' of null

Con espacios:

        var preps = files.map(function(f) { 
                          ^
TypeError: Cannot call method 'map' of null

Esto podría ser un problema exclusivo de Mac, pero sospecho que no.

Daniel Yankowsky
fuente
OP solicitó una guía de estilo. No es un consejo específico.
mightyiam
@mightyiam Cierto, pero las reglas de sangría son parte de casi todas las guías de estilo. Quizás mi punto puede ayudar a OP a evaluar algunas de las guías de estilo que otros vincularán, o puede ayudarlo a desarrollar su propia guía de estilo.
Daniel Yankowsky
6

Ha pasado un tiempo desde que hice esta pregunta ... y mientras tanto he encontrado esta excelente guía de JavaScript:

Principios de escritura JavaScript coherente e idiomático

https://github.com/rwldrn/idiomatic.js/

alienhard
fuente
2

Para Coffee-Script, donde las sangrías incorrectas significan errores de compilación

utilizar

:set tabstop=2
:set shiftwidth=2
:set expandtab

proyectos populares de café zombie, brunchutiliza esta configuración para hendiduras.

Editar:

En realidad, ¡solo usa esto! https://github.com/paulmillr/code-style-guides (uno de los principales contribuyentes a brunch)

Quang Van
fuente