2009-03-22 12 views
6

Hay un debate sobre la codificación de JavaScript en mi grupo de trabajo. Algunas personas argumentan que debemos usar el nombre largo para una mejor legibilidad; los otros creen que short-name debería ser favorecido a los mismos bits-en-alambre.¿Deberíamos usar Long-Name o Short-Name en JavaScript Coding?

En general, se trata de la convención de codificación. Un lado cree que el identificador como "fAutoAdjustWidth" está bien, mientras que otros prefieren "fAtAjtW".

Entonces, ¿cuál es la mejor manera? ¿Deberíamos sacrificar la legibilidad por el rendimiento o no?

+2

creo que usted debe tomar todo el que piensa honestamente fAtAjtW es mejor y hacerlos girar en su insignia desarrollador. –

Respuesta

8

Si le preocupan los bits en el cable, siempre puede ejecutar un minificador en su código. Entonces podría desarrollar con nombres largos, y podría lanzar con un archivo mucho más pequeño que tiene una funcionalidad equivalente. El Yahoo YUI Compressor parece que tiene compresión de espacio en blanco y token.

21

Hazlo legible, y si crees que el archivo JS resultante es demasiado grande, utiliza uno de los muchos compactadores JS antes de implementar la versión de producción, mientras mantienes la versión de desarrollo con nombres largos.

BTW. si realmente le preocupa el ancho de banda, use mod_deflate.

+0

... o gzip. Curioso: ¿por qué esta no es la respuesta aceptada? – tim

0

Usa nombres más pequeños donde no afecte la legibilidad de tu código. Los nombres más grandes están bien, pero intente usarlos solo cuando realmente haga que le resulte más fácil a usted y a los demás. Por último (y como se indica en otras respuestas) minify su código, y/o active algún tipo de mecanismo de compresión del servidor como mod_gzip o mod_deflate de apache para reducir el número de bits que fluyen a través de los cables.

Dicho esto, daría prioridad a la legibilidad sobre la compacidad de los nombres de las variables.

1

Recomiendo encarecidamente que no se utilicen identificadores cortos. El solo hecho de leer su ejemplo muestra la cantidad de documentación que se necesita de repente, cuando se usan nombres como fAtAjtW. En algún momento se volverá prácticamente imposible de mantener y esto solo para guardar algunos bytes para transferir.

Si la única razón para considerar nombres "cortos" es hacer que el script resultante sea más pequeño y así ahorrar algo de ancho de banda, recomendaría utilizar la compresión gzip, que le ahorrará más de unos pocos bytes para un identificador.

2

Utilice los nombres largos que son suficientes para describir bien las variables y funciones.

Una de las razones por las que muchos necesitan nombres cortos es para hacer que el tamaño del archivo sea más pequeño, pero puede hacerlo mediante herramientas mientras carga en línea.

3

¿Estas mismas personas abogan por no escribir comentarios en su código? Sea completamente claro y descriptivo con sus nombres de variables.

+0

Esta es la mejor respuesta – Nipuna

2

Tal vez la preocupación no se trata de bits en el cable, sino de la sobrecarga de leer y volver a ver el código.

Tiendo a favorecer nombres cortos dentro de la función y hacer nombres de funciones el tiempo que sea necesario, pero lo más breve posible sin perder el significado útil.

Sin duda, es una solución de compromiso. Depende de si desea que su código se asemeje al lenguaje natural o sea más implícito y compacto.

Algunos nombres de variable de prefijo para insertar información de contexto en ellos.Digo, si eso es necesario, el IDE debe proporcionar tales capacidades de inyección como una superposición visual en el código a través de la simbología de contexto.

La próxima versión de Visual Studio hará que la gimnasia de anotación sea mucho más fácil a través de un mecanismo de extensibilidad de grano fino extendido profundamente en el editor. Aunque no he usado Visual Studio para editar Javascript.

Veo ahora que su preocupación es de hecho el intercambio de espacio. Esto nunca, nunca, nunca será un problema. Siempre siempre siempre a favor de la legibilidad sobre bits en el cable, esp. ya que la compresión existe, como lo notaron los otros comentaristas.

Lo único que agregaría es lo anterior, que es que a veces la comprensión se hace más fácil con nombres compactos sobre nombres excesivamente largos. Pero es más difícil obtener nombres cortos correctos. Los nombres largos son mucho más fáciles y rápidos de corregir en mi experiencia.

El motivo de los nombres cortos nunca debe ser la compresión de datos solo la eficiencia cognitiva. Lo que funciona es individual.

3

mientras que otros prefieren "fAtAjtW"

Incluso si "bits-on-wire" fue un problema (que no lo es), una convención de nombres como esto hará que el código completamente imposible de mantener después de la primera semana de trabajo en el proyecto.

Leer el código será casi imposible, y al escribir el código la gente constantemente tendrá que pensar en cosas como "was 'fAutoAdjustWidth' abreviado 'fAtAjtW' o fue 'fAutAtW'?". Es un gran impuesto mental para pagar mientras se escribe el código que resultará en una productividad mucho más baja.

Además de eso, el problema se ve agravado por el hecho de que en Javascript obtendrá una nueva variable para cada nombre mal escrito.

1

Un lado cree que el identificador como "fAutoAdjustWidth" está bien, mientras que otros prefieren "fAtAjtW".

'fAtAjtW' es un horror ilegible, no tipificable. En serio, ¿alguien prefiere eso? Hilarante e imposible de recordar: ¿es 'AtAjt' o 'AutAdj' ...?

'autoAdjustWidth' sería un nombre de atributo completo adecuado. (No estoy convencido de la notación de prefijo 'f', pero ese es otro problema.) A veces quieres un nombre muy corto para una variable de corta duración (por ejemplo, un temporal en un ciclo pequeño), en cuyo caso personalmente iría directamente a 'var aaw' en lugar de a la pesadilla anterior.

En cuanto a rendimiento, no habrá diferencia. A JavaScript no le importa cuánto tiempo hace que los nombres de las variables, y suponiendo que está desinflando sus secuencias de comandos en el camino hacia el navegador, la compresión eliminará cualquier ventaja de transferencia de los nombres más cortos.

2

Utilice los nombres de las variables grandes porque ayudan al programador.

Para guardar bits a través del cable, minimice su Javascript antes de implementarlo en el servidor de producción. Dean Edwards' packer tiene una opción para comprimir nombres de variables, que se parece a lo mejor de ambos mundos para usted.

1

Quienquiera que piense "fAtAjtW" es preferible está utilizando algún tipo de método de pharmacalogical en su programación. fAutoAdjustWidth es muy fino y muy prudente. Las bibliotecas Javascript no usan nombres como fAtAjtW por algún motivo.Si le preocupa el tamaño, probablemente sus preocupaciones estén fuera de lugar. Sin embargo, recomiendo usar algún tipo de minificador. Sin embargo, dicho esto, no lo use ridículamente largo; probablemente algo más de 25-30 caracteres está yendo un poco lejos.

0

nombres largos y descriptivos.

Y tratar de hacer que los métodos como única posible. Esto ayuda a la navegabilidad. Si usted quiere encontrar todos los usos de un método en particular, hay menos probabilidad de que usted entrar en conflicto con otro método que tiene el mismo nombre.

moderna Javascript IDE también puede hacer método de refactorización (ver: http://blue-walrus.com/2013/08/review-javascript-ides/). Esto es muy difícil si los métodos se llaman igual.

Cuestiones relacionadas