javascript - tutorial - el momento adecuado para usar coffeescript
github coffeescript (4)
Así que aquí está lo que pienso sobre el tema:
JS no es una tecnología de soporte (¿soporte para qué?). Es un lenguaje que se usa principalmente en el front-end y hay una nueva tendencia de usarlo en el back-end. Dado que el navegador no es compatible con CoffeeScript de forma nativa, a menos que lo use como back-end, no creo que haya un punto en el uso de CoffeeScript. Aunque aprender un nuevo idioma siempre es una buena idea.
De ningún modo. En realidad, usar CoffeeScript es como usar un lenguaje diferente. Aprender uno no puede volverte tonto en el otro. A menos que dejes de aprender el otro.
No hay evidencia de que CoffeeScript se compile en código lento o con errores. En realidad estoy usando CoffeeScript por algún tiempo y no observé ningún impacto en el rendimiento.
En realidad no es necesario entender por qué se compila de esta manera. Si está utilizando CoffeeScript en el back-end, ni siquiera tiene que mirar el código que compila (solo necesita el código fuente). En cuanto a usarlo para crear scripts del navegador, entonces sí, puede ser un poco difícil trabajar con él (depuración). Es por eso que siempre aconsejo escribir JavaScript normal para los navegadores y usar CoffeeScript en el back-end.
Ahora, en cuanto a la última pregunta: no creo que CoffeeScript haya afectado mi conocimiento de JS en absoluto. Los trato como idiomas separados. Además, no necesita conocer JS para cambiar a CoffeeScript (aunque debería) a menos que desee utilizar CoffeeScript en el front-end.
También dominar JavaScript es siempre una buena idea, no importa qué. :)
Básicamente, tengo una serie de inquietudes que me retienen de coffeescript:
Todavía no soy un experto en js, a pesar de que lo estoy usando durante aproximadamente 3 años, todavía siento que me estoy perdiendo algo importante al respecto. Ya que es principalmente una tecnología de apoyo para mí, nunca encuentro tiempo para profundizar en js (lo cual, admito, podría ser una actitud equivocada).
Mi conocimiento sobre js será aún peor si comenzaré a usar coffeescript
No estoy seguro de si realmente puedo confiar en coffescript, es decir, el código js que compila
A veces no entiendo que js code coffeescript se compile y, lo que es peor, por qué se compila así.
Me gustaría saber sus pensamientos sobre los puntos anteriores. El crucial es: ¿Cómo el uso de coffeescript afectó su conocimiento de js? ¿Y qué tan importante crees que es entender completamente a js antes de cambiar a coffeescript?
Debes entender qué problemas se supone que Coffeescript debe resolver. Y para eso, debes tener un conocimiento básico de las "partes malas" de los javascripts. Sugiero leer esto a Douglas Crawford (hay un libro, pero también muchos recursos en Internet. Simplemente busque en Google "partes malas de javascript"). Básicamente, la idea es que "Debajo de todas esas llaves y puntos y comas incómodos, JavaScript siempre ha tenido un magnífico modelo de objeto en su corazón. CoffeeScript es un intento de exponer las partes buenas de JavaScript de una manera simple". (tomado del sitio de coffeescript).
Existe una herramienta para ayudar a los programadores a evitar errores de javascript llamados jslint. Esta herramienta analiza su código y le advierte sobre errores comunes, como variables globales, inserciones de punto y coma, contaminación del espacio de nombres, etc.
Coffeescript se traduce a javascript. Pero el javascript que genera es un subconjunto canocical, altamente compatible con jslint. Además, genera código javascript válido en todos los navegadores. Entonces, no es solo una buena capa de azúcar sintáctica, realmente ayuda a generar código sólido.
Me gustaría abordar sus preocupaciones.
1) Si ha estado usando JS durante tres años, probablemente tenga una comprensión bastante sólida de JS. Si aún no ha adquirido una comprensión sólida, puede ser el momento de complementar su conocimiento con uno de los buenos libros de JS.
2) El café-guión probablemente no hará que tu conocimiento de JS sea peor. La forma en que diseña las aplicaciones de Coffee-script es la misma forma en que diseñaría una aplicación JS (en su mayor parte), por lo que las habilidades de diseño que obtenga se transferirán. El diseño del programa, en mi opinión, es el aspecto más importante de la programación.
3) ¿Por qué no confías en el JS? ¿Por qué confías en alguno de los otros compiladores / intérpretes / otras herramientas que utilizas? Dudo que Coffee-script esté libre de errores, pero muchas personas lo usan para muchos propósitos. Esto significa que se ha probado un gran conjunto de comportamientos, a menudo en producción, por lo que su caso de uso probablemente ya haya sido probado y probado.
4) Por supuesto, el JS generado por Coffee-script le parecerá extraño, ya que las reglas para generarlo no tienen la legibilidad humana como una prioridad. Sin embargo, leerlo aumentará su conocimiento de JS a medida que vea cómo se ejecutan los programas escritos de forma peculiar. Esto nos lleva de nuevo al punto 1.
Creo que lo crucial a recordar aquí es que Coffeescript ES javascript. Cada declaración de Coffeescript u operador mágico tiene una representación concreta distinta en Javascript. Por ejemplo (x) -> x * x
en Coffeescript se traducirá directamente a la function (x) { return x * x; }
function (x) { return x * x; }
.
Realmente no se puede escribir Coffeescript sin conocer el Javascript que generará. Por un lado, el Javascript generado es lo que tendrá que depurar. En todo caso, creo que escribir Coffeescript podría mejorar tu comprensión de Javascript, porque te obliga a tomar decisiones que son exclusivas de Javascript. Por ejemplo, cuando está en Coffeescript, decide utilizar =>
lugar de ->
en realidad está tomando una decisión sobre si desea o no vincular this
, un problema de JavaScript muy real.
¿Cuándo (o si) para comenzar a usar Coffeescript? Creo que la respuesta a esto depende más o menos de ti. Pruébelo, y si cree que es más fácil realizar sus tareas utilizando Coffeescript, entonces cúmplalo. Si le resulta difícil escribir el código en un idioma diferente del que se ejecuta (y, por lo tanto, el que tiene que depurar), vuelva a Javascript.